Unreal Engine 5: Die Entwicklung von Mario | Greg Wondra | Skillshare

Playback-Geschwindigkeit


1.0x


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

Unreal Engine 5: Die Entwicklung von Mario

teacher avatar Greg Wondra, Unreal Authorized Instructor

Schau dir diesen Kurs und Tausende anderer Kurse an

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

Schau dir diesen Kurs und Tausende anderer Kurse an

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

Einheiten dieses Kurses

    • 1.

      Kurswerbevideo

      1:31

    • 2.

      Projekt erstellen

      7:59

    • 3.

      Ebene erstellen

      7:34

    • 4.

      Einrichtung der Spielerkamera

      6:30

    • 5.

      Benutzerdefinierte Kamera für Spieler

      12:35

    • 6.

      Spielerbewegung

      9:42

    • 7.

      Spielersprung

      6:04

    • 8.

      Effekte für Spielersprung

      7:39

    • 9.

      2D-Schnappeinstellungsebenen

      5:56

    • 10.

      Widget für 2D-Übersetzungen

      3:13

    • 11.

      Springen über Plattform (Teil 1)

      7:11

    • 12.

      Springen über Plattform (Teil #2)

      16:22

    • 13.

      Bewegliche Plattform

      15:20

    • 14.

      Startplattform (Teil 1)

      19:25

    • 15.

      Startplattform (Teil #2)

      16:33

    • 16.

      Komponenten für Münzaufnehmer

      8:50

    • 17.

      Münzaufnahmeskript Nr. 1

      5:01

    • 18.

      Spieler-Controller

      3:26

    • 19.

      Münzaufnahmeskript #2

      18:20

    • 20.

      Tongleichzeitigkeit bei Münzaufnahme

      3:49

    • 21.

      Feuerbalken (Teil 1)

      18:31

    • 22.

      Feuerbalken (Teil #2)

      19:57

    • 23.

      HUD-Layout

      17:46

    • 24.

      HUD-Display

      2:38

    • 25.

      HUD-Bindungen

      8:36

    • 26.

      Blueprint-Funktionsbibliothek

      4:50

    • 27.

      Blueprint-Schnittstelle

      1:47

    • 28.

      Punkte-Anzeige-Widget BP

      2:38

    • 29.

      Punkte-Anzeige-Widget Anim

      8:58

    • 30.

      Punkteanzeige Aktorklasse BP

      9:07

    • 31.

      Punktehinzufügen-Funktion

      2:13

    • 32.

      Blockbasis

      12:13

    • 33.

      Block zerbrechlich

      13:52

    • 34.

      Blockmünze

      11:39

    • 35.

      Blockmünze

      12:26

    • 36.

      Block Fake Bruchbar (Münze innen)

      16:17

    • 37.

      Blockieren? (Münze innen)

      1:35

    • 38.

      Unsichtbare Münze blockieren

      9:54

    • 39.

      Blockmünzkasten

      11:44

    • 40.

      Blockfeuerblume #1

      13:48

    • 41.

      Blockfeuerblume #2

      5:49

    • 42.

      Feuerblume-Spielerumwandlung

      18:55

    • 43.

      Feuerball-Entwurf

      7:03

    • 44.

      Feuerbälle abschießen (Grundkenntnisse)

      13:02

    • 45.

      Feuerbälle schießen (Fortgeschrittene)

      17:48

    • 46.

      Basisblockkomponenten und -funktionen

      5:40

    • 47.

      Child Block Tag und Kinderschauspiel

      2:45

    • 48.

      Kamera-Shake-Entwurf

      2:03

    • 49.

      Feedback-Asset erzwingen

      2:21

    • 50.

      P-Block-Materialien und -Sounds

      4:41

    • 51.

      P-Block-Entwurf

      8:13

    • 52.

      P-Block-Skript (Teil 1)

      15:44

    • 53.

      P-Block-Skript (Teil 2)

      4:59

    • 54.

      P Block-Fehlerbehebungen (Teil 1)

      6:22

    • 55.

      P Block-Fehlerbehebungen (Teil 2)

      9:16

    • 56.

      P Block-Fehlerbehebungen (Teil 3)

      3:59

    • 57.

      Goomba-Entwurf

      12:08

    • 58.

      Goomba beschädigt Spieler

      6:44

    • 59.

      Zerstöre Goomba mit Stomp

      15:45

    • 60.

      Zerstöre Goomba mit Feuerball

      4:21

    • 61.

      Goomba Patroller (Teil 1)

      6:05

    • 62.

      Goomba Patroller (Teil 2)

      14:46

    • 63.

      Goomba-Sucher

      10:08

    • 64.

      Entwurf für Warp-Rohre

      11:33

    • 65.

      Skript für die Konstruktion von Warprohren

      6:23

    • 66.

      Warp-Rohreingänge

      7:26

    • 67.

      Warp-Pipe-Skript Nr. 1

      11:42

    • 68.

      Warp-Pipe-Skript Nr. 2

      10:52

    • 69.

      Warp-Pipe-Skript Nr. 3

      11:19

    • 70.

      Warp-Rohrverbindungen

      7:07

    • 71.

      Spielmodus-Entwurf

      6:12

    • 72.

      Checkpoint-Entwurf

      10:21

    • 73.

      Prüfpunktskript

      12:21

    • 74.

      Spielmodus Respawn-Skript

      9:09

    • 75.

      Todessequenz des Spielers #1

      9:34

    • 76.

      Spielertodsequenz #2

      9:52

    • 77.

      Todessequenz und der P-Block

      6:03

    • 78.

      Spielerleben aktualisieren

      11:41

    • 79.

      Sofortige Todesgefahr

      5:14

    • 80.

      Entwurf des Flaggenmastes

      17:55

    • 81.

      Flaggenmast-Skript Nr. 1

      15:55

    • 82.

      Flaggenmast-Skript Nr. 2

      12:19

    • 83.

      Flaggenmast-Skript Nr. 3

      9:52

    • 84.

      Flaggenmast-Skript Nr. 4

      10:49

    • 85.

      Flaggenmast-Skript Nr. 5

      14:42

    • 86.

      Blueprint für Ebeneneinstellungen

      9:26

    • 87.

      Skript Nr. 1 für die Ebeneneinstellungen

      10:24

    • 88.

      Skript Nr. 2 für die Ebeneneinstellungen

      12:29

    • 89.

      Skript Nr. 3 für Stufeneinstellungen

      7:00

    • 90.

      Leveleinstellungen und der P-Block

      5:43

    • 91.

      Ebeneneinstellungen und der Flaggenmast

      10:07

    • 92.

      Flaggenmast und der P-Block

      4:48

    • 93.

      Ebenenübergang

      16:21

    • 94.

      Wolken

      16:17

    • 95.

      Levelteile

      6:47

    • 96.

      Level-Requisiten und Kamera-Tuning

      11:58

    • 97.

      Hauptmenüebene

      2:14

    • 98.

      Layout des Hauptmenüs

      10:52

    • 99.

      Hauptmenü-Skript

      10:31

    • 100.

      Hauptmenü-Widget-Animationen

      12:16

    • 101.

      Hauptmenü-Controller-Interaktion

      3:03

    • 102.

      Layout des Pause-Menüs

      7:35

    • 103.

      Pause-Menü-Skript

      13:32

    • 104.

      BONUS - Spielersprint

      5:11

    • 105.

      BONUS - Feuerblütenzeitdilatation

      3:12

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

369

Teilnehmer:innen

3

Projekte

Über diesen Kurs

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

Im Inneren bringt Ihnen der Videospieldesigner und -pädagoge Herr Wondra alle grundlegenden Konzepte, Fähigkeiten und Techniken bei, die Sie benötigen, um Unreal Engine 5 zu meistern und ein einfaches Spielprojekt zu erstellen.

In diesem Kurs lernst du:

  • So richten Sie ein Projekt in Unreal Engine ein
  • Erstellen einer 2D-Ebene mithilfe von 3D-Objekten
  • So richten Sie eine seitlich scrollende Kamera ein
  • So richten Sie die Bewegungsmechanik eines Charakters ein
  • Erstellen interaktiver Objekte mithilfe von Blueprint Scripting
  • So erstellen Sie Powerups und spezielle Spielerfähigkeiten
  • Implementierung einfacher feindlicher KI
  • Erstellen eines Kontrollpunktsystems
  • Einen Spieler neu spawnen
  • So erstellen Sie ein funktionierendes HUD
  • Erstellen von interaktiven Menüs
  • So erstellen Sie eine dynamische Methode zur Implementierung von "Level-Einstellungen" (z. B. Anpassen von Musik und Zeitlimits pro Level im Handumdrehen!)
  • Wie Sie ein Spielprojekt in den Projekteinstellungen von Unreal architekturieren

Für wen ist dieser Kurs geeignet?

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

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

Los Geht's!

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

Triff deine:n Kursleiter:in

Teacher Profile Image

Greg Wondra

Unreal Authorized Instructor

Kursleiter:in

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

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

My design credits include:

- Wizard 101 (PC)

- Lost Planet 3 (360, PS3, PC)

- MonkeyQuest (PC)

- Sports Champions (PS3)

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

- SpongeBob Moves In (Mobile)

- Grub ... Vollständiges Profil ansehen

Level: All Levels

Kursbewertung

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

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

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

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

Lerne von überall aus

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

Transkripte

1. Kurs-Promo-Video: In diesem Kurs lernen wir, wie man Unreal Engine Five verwendet, um ein Side-Scrolling-Spiel im Mario-Stil zu entwerfen und Mein Name ist Greg Andro. In den letzten 20 Jahren habe ich sowohl als professioneller Spieledesigner als auch als Lehrer gearbeitet Spieledesigner als auch als Lehrer Im Laufe der Jahre habe ich Tausenden von zufriedenen Schülern die Kunst des Spieledesigns beigebracht , sowohl online als auch im Präsenzunterricht. In diesem Teil lernen wir, wie man Pickups, bewegliche Plattformen, hüpfende Plattformen, interaktive Blöcke, Gegner, Power-Ups, Pipes, Checkpoints, Antworten, Leveleinstellungen, ein HUD, ein Hauptmenü, ein Paz-Menü und mehr erstellt bewegliche Plattformen, hüpfende Plattformen, interaktive Blöcke, Gegner, Power-Ups, Pipes, Checkpoints, Antworten, Leveleinstellungen, ein HUD, ein Hauptmenü, ein Paz-Menü . So ziemlich alles, was du brauchst, um loszulegen, um ein Gaming-Projekt zu erstellen Dieser Kurs richtet sich an alle, vom jungen aufstrebenden Spieledesigner bis hin zum Branchenprofi der Saison und allen dazwischen Wir fangen ganz am Anfang an, vorausgesetzt, Sie wissen nichts Am Ende wird dieser Kurs als wertvolle Ressource dienen. Sie können immer wieder nachschlagen und sehen, was Sie lernen und erschaffen können. Ich fordere Sie auf, diesen Kurs auszuprobieren und zu sehen, ob er nicht die beste Bildungserfahrung mit einem guten Preis-Leistungs-Verhältnis ist, die Sie je gemacht haben . Wir sehen uns drinnen. 2. Projekt erstellen: Ordnung, wir fangen hier an, indem ein brandneues Projekt im Epic Games Launcher erstellen. Jetzt sollte im Epic Games Launcher vermerkt werden, wir die Option Unreal Engine ausgewählt haben Auf der linken Seite und hier oben haben wir die Registerkarte „Bibliothek“ ausgewählt Dort bin ich jetzt im Epic Games Launcher, um auf verschiedene Versionen der Engine zuzugreifen oder um eine neue Version der Engine hinzuzufügen Du kannst hier auf diese gelbe Plus-Schaltfläche klicken. Zum heutigen Zeitpunkt habe ich 5.21. Das ist die neueste Version der Engine Beachten Sie jedoch, dass Unreal in Zukunft immer über neuere, neueste und beste Versionen der Engine verfügt und beste Versionen der , mit der Sie dieses Projekt erstellen können Verwenden Sie einfach die neueste Version, aber ich werde 5.21 verwenden, um dieses Projekt zu erstellen Um jetzt unser Projekt zu erstellen, klicke ich auf die Schaltfläche Starten Und irgendwann sollte Ihnen dieses Unreal Project-Browserfenster angezeigt Solange Sie noch kein vorhandenes Projekt hatten und das letzte Projekt beim Start nicht bereits geladen haben, war dieses Kontrollkästchen derzeit im Grunde nicht aktiviert Hier kannst du meine bestehenden Projekte sehen. Neben meinem letzten Projekt , an dem ich gearbeitet habe, werden wir ein Spieleprojekt machen. Lassen Sie uns also weitermachen und Spiele auswählen. Hier können Sie die Art der Projektvorlage auswählen Art der Projektvorlage mit der Sie beginnen möchten. Dafür werden wir die Vorlage für eine dritte Person verwenden, um uns den Einstieg zu erleichtern, sodass wir Charakter aus einer dritten Person steuern. Das wird ein Blueprint-Projekt sein. Unsere Zielplattform wird der Desktop sein. Wir wollen alles so lassen, wie es hier ist, nämlich die Rückverfolgung. Wir werden uns bei diesem Projekt nicht wirklich auf solche Dinge konzentrieren diesem Projekt nicht wirklich auf solche Dinge Sie können das überprüfen oder nicht, aber um sicherzustellen, dass unsere Projekte rechtzeitig geladen werden, werde ich das außerhalb des unsere Projekte rechtzeitig geladen werden, Projektstandorts lassen. Wo soll das auf Ihrem Computer gespeichert werden? Ich werde meins auf meinem Laufwerk belassen und ich werde meinen Projektnamen Platformer haben meinen Projektnamen Platformer Jetzt darfst du hier keine Leerzeichen mehr haben. Unterstriche reichen einfach. Aber wenn du ein Leerzeichen hinzufügst, wird es dich anschreien. Und sobald du deinen Projektnamen und deinen Standort hast , dritte Person, lass uns weitermachen und auf Erstellen klicken Sobald das erledigt ist, sollte dir irgendwann ein Fenster wie dieses angezeigt werden. Willkommen bei Unreal Engine. Sie sollten den Namen Ihres Projekts hier oben rechts sehen Ihres Projekts hier oben rechts Da ist sie, Plattform. Und ich werde hier nur ein paar Dinge tun, um die Lebensqualität zu verbessern. Ich werde hier ganz oben links unter ein Fenster gehen, auf Fenster klicken und ein Layout laden. Ich möchte das klassische UE Four-Layout machen. Das ist das, was ich bevorzuge, und ich denke, es ist auch am besten für Anfänger geeignet. Wenn Sie darauf klicken, wird der Editor neu gestartet. Und was es getan hat, ist, dass es diesen Inhaltsbrowser genau hier unten präsentiert hat. Wir werden während des gesamten Projekts über verschiedene Teile des Editors sprechen . Aber der Inhaltsbrowser ist im Grunde deine Schublade Leckereien, mit denen du dein Level genau hier zusammenstellen kannst dein Level genau hier zusammenstellen Das ist unser Starter-Level Der Name unseres Starterlevels ist Third-Person-Map. Wir werden unsere eigene erstellen, aber das ist es, was euch als Starterlevel präsentiert wird. Jetzt möchte ich gleich noch einige Ordner hier unten in unserem Inhaltsbrowser erstellen , die speziell für dieses Projekt bestimmt sind. Ich werde das nur ein bisschen ansprechen. Du kannst dir diese Fenster schnappen. Leg einfach meine Maus hier hin. Und ich werde zusammenbrechen, wo Starter Content steht. Ich klicke auf meinen Inhaltsordner, klicke mit der rechten Maustaste darauf und erstelle einen neuen Ordner. Ich rufe diesen Platformer an und drücke die Eingabetaste Dann klicke ich mit der rechten Maustaste auf meinen Plattformordner. Und ich werde noch ein paar Ordner erstellen. Klicken Sie mit der rechten Maustaste auf einen neuen Ordner . Dieser erste wird Audio heißen. Ich klicke erneut mit der rechten Maustaste auf den Plattformordner, Neuer Ordner, und ich schreibe klicke erneut auf meinen Plattformordner und ich nenne diesen Ordner Texturen. Jetzt persönlich möchte ich, dass meine Ordner leicht identifizierbar sind , damit sie erkennen können, mit welchem Ordner ich gerade arbeite. Also schreibe ich, klicke auf meine Plattform oder meinen Ordner und füge eine Farbe hinzu. Indem ich Farbe festlege, mache ich so etwas wie eine unausstehliche grüne Farbe, weil sie wirklich Jetzt möchte ich diesen Ordnern etwas Inhalt hinzufügen. Zu diesem Projekt wurden nun einige Inhaltsordner, Texturen, Schriftarten und Audios-Ordner in Zip-Dateiform hinzugefügt einige Inhaltsordner, Texturen, . Ich habe diese gerade in meinem Download-Bereich nur um Ihnen diesen Vorgang zu zeigen Dies sind die Ordner, über die ich jetzt spreche, sind komprimierte Ordner Um die darin enthaltenen Goodies zu extrahieren, müssten Sie lediglich mit der rechten Maustaste auf eine dieser Dateien klicken und einfach Alle extrahieren auswählen Sobald Sie dies getan haben, sieht der komprimierte Ordner so aus Ordner innerhalb von. Hier findest du die Leckereien. Ich fange hier mit Texturen an. Ich werde einfach die Strg - und das Mausrad gedrückt halten - und das Mausrad gedrückt damit ich mit der linken Maustaste klicken und ziehen kann. Ich werde einfach all diese hervorheben, jetzt werde ich mit der linken Maustaste klicken und all diese, alle 31, in meinen Texturen-Ordner ziehen alle 31, . Sobald Sie die Plus-Schaltfläche sehen, können Sie loslassen und es werden all diese hinzugefügt. Es wird sie alle importieren. Wir werden sie während des gesamten Projekts verwenden. Dann werde ich dasselbe für meine Schriften tun. Habe meinen Schriftartenordner ausgewählt. Im Moment können Sie den Pfad genau hier sehen. Alternativ kann ich zu Platformer gehen und sie einfach direkt in diesen Ordner legen Ich gehe zurück zu Downloads Fonts. Ich werde all diese Linksklicks hervorheben und sie in die Schriftarten ziehen. Es wird heißen, möchtest du für all diese Schriften ein neues Font-Asset erstellen ? Wir sagen einfach Ja, bewerben wir uns für alle und klicken auf Ja. Okay. Dann gehe ich zurück zu meiner Plattform oder meinem Ordner. Ich werde noch einmal zu meinen Audiodateien zurückkehren. Doppelklicken Sie hier. Ich werde einige Audiodateien zu diesem Projekt finden. Es gibt eine Menge Audiodateien, wir können im Laufe der Zeit weitere hinzufügen. Und wer weiß, vielleicht verwenden wir nicht einmal alle, aber das wird uns den Einstieg erleichtern. Klicken Sie mit der linken Maustaste und ziehen Sie das in den Audioordner. Und Sie werden feststellen, dass bei all diesen verschiedenen Dateien neben allen ein Sternchen steht , das anzeigt, dass sie noch nicht gespeichert wurden Um all diese Dateien zu speichern, müssen wir hier nur auf „Speichern“ klicken. Alles, was sie sagen, möchten Sie all diese Elemente speichern Sie gerade hinzugefügt haben? Wir werden ja sagen. Dann werden wir als gute Maßnahme unser Projekt speichern. Wenn wir unter Datei stehen, können wir auch eine Datei speichern. Jetzt ist unser Projekt gespeichert und wir können loslegen. Um nun noch einmal auf die Dinge zurückzukommen , die wir für unsere Plattform oder unser Projekt erstellt haben. Wenn ich zum Epic Games Launcher zurückkehren und dann in den Unreal-Bibliotheksbereich zurückkehren Unreal-Bibliotheksbereich zurückkehren Wir können jetzt sehen, dass wir unser Plattformprojekt genau hier haben , allerdings ohne Vorschaubild Aber um zurück zu deinem Projekt zu kommen, sagen wir, wir würden das wieder schließen, müssten wir nur in die Unreal Engine Library gehen und du könntest darauf doppelklicken, um dein Projekt neu zu starten In Ordnung Leute, das reicht für dieses Video. Wir sehen uns im nächsten. 3. Level erstellen: Okay, wir werden hier mit unserem Projekt beginnen , indem wir ein brandneues Level erstellen die Side-Scroller-Kamera für unseren Charakter einrichten Side-Scroller-Kamera für unseren Charakter Kümmern wir uns also zuerst um das Level. Und wir können anstelle unserer Standardkarte für Dritte ein ganz neues Level erstellen , indem wir ganz oben links, wo Datei steht, hineinkommen . Wir wählen eine neue Levelsteuerung und n bringt dich auch dorthin. Diese Tastenkombination hier. Wir haben ein paar Vorlagen, aus denen wir wählen können. Ich werde dieses grundlegende neue Level wählen. Ich werde das wählen , weil ich einen Himmelshintergrund haben möchte. Und ich werde etwas erschaffen. Sobald ich das mache, wechseln wir von unserer Third-Person-Map zu einem Level ohne Titel Jetzt heißt sie Untitled, weil wir sie nicht gespeichert haben. Wir haben ihm keinen Namen gegeben. Wir können unser Level speichern, indem wir hier auf dieses Disc-Symbol klicken. Es wird uns nach einem Ort fragen , an dem wir dieses Level speichern möchten. Nun, lass uns in unseren Plattform-Ordner gehen. Ich werde das nur erweitern. Ich werde auf die Stelle klicken, an der Plattform steht. Wir werden einen brandneuen Ordner erstellen. Ich werde das Levels nennen. mein Platform-Level-Verzeichnis ausgewählt ist, Wenn mein Platform-Level-Verzeichnis ausgewählt ist, nenne ich diese Ebene, ich nenne sie einfach LV-Unterstrich 01 für Ebene eins. Fahren Sie fort und klicken Sie auf Speichern Und in dem Moment, in dem wir das tun, können Sie jetzt oben links sehen, dies jetzt als Level-Unterstrich 01 bekannt ist Jetzt möchte ich noch etwas anderes tun, mein Projekt so einrichten , dass, wenn ich Unreal hier schließen und es dann, sagen wir morgen, wieder öffnen würde, dass es automatisch standardmäßig diese Ebene wieder öffnet So wie es jetzt aussieht, wird es momentan diese Third-Person-Map öffnen Wenn wir den Motor abschalten und wieder öffnen würden, wo könnten wir das ändern? Nun, in unseren Projekteinstellungen können wir auswählen, welche Map standardmäßig geöffnet ist. Wenn wir den Editor öffnen, gibt es einige Orte, an denen Sie auf Ihre Projekteinstellungen zugreifen können. Einer ist hier ganz oben rechts, und ich werde ihn kurz vergrößern. Das ist genau da. Sie können auch darauf zugreifen, indem Sie in Ihr Fenstermenü gehen, genau hier oben. Lass mich einfach da raus. Geh auch. Tut mir leid, kein Fenster. Ich meinte bearbeiten. Wir wollen unter Bearbeiten gehen und wir wollen Projekteinstellungen wählen, nicht Fenster. Und los geht's. Wir haben unsere Projekteinstellungen, und wenn ich unter Karten und Modi komme, lass mich die Projekteinstellungen einfach hier oben andocken . Karten und Modi. Hier haben wir unsere Editor-Startkarte. Sie ist derzeit unserer Third-Person-Map zugeordnet. Lass uns weitermachen und das gegen B austauschen. Ich scrolle einfach weiter bis Level 01 Jetzt gibt es hier keine Schaltfläche zum Speichern oder so, also kannst du das einfach beenden. Und das macht es so, dass, wenn Sie versuchen, Ihr Projekt morgen zu öffnen, es standardmäßig bis zur ersten Ebene geöffnet wird. Ordnung, das nächste, worum ich mich kümmern möchte, ist, unser Level hier ein wenig umzugestalten , sodass es eher eine zerquetschte Im Moment ist das von Natur aus sehr quadratisch. Ich möchte also von meiner perspektivischen Ansicht hier zu einer Ansicht von oben nach unten wechseln meiner perspektivischen Ansicht hier zu einer Ansicht von oben nach unten Und was ich jetzt tatsächlich tun werde, ist auf diese Schaltfläche oben rechts zu klicken, genau hier, sie hat quasi das Rastersymbol. Ich möchte hier auf meine Ansicht von oben zugreifen. Jetzt befindet sich meine Ansicht von oben in einer Ansicht im Wireframe-Stil. Und ich werde einfach hier klicken, um das Ganze zu maximieren. Und dann zoome ich mit meinem Scrollrad heraus. Wenn ich dieses lila Ding hier auswählen würde, das die riesige Plattform, die wir in unserer perspektivischen Ansicht wieder sehen. Also wenn ich das für einen Moment minimieren würde. Hier ist die riesige Plattform, von der ich gerade spreche , wenn wir an diesem Side-Scroller-Level von oben nach unten arbeiten Ich möchte, dass das im Wesentlichen von links nach rechts fließt. Also alles, was ich tun werde, ist , diese Plattform zu zerquetschen , damit sie ein bisschen dünner und länger wird Wenn Sie Ihre Plattform ausgewählt haben, können Sie, wenn Sie die Leertaste drücken, zwischen Bewegungsmodus, Rotationsmodus, Rotationsmodus und Skalierungsmodus wechseln Und mit all diesen drei Schaltflächen werden Sie direkt oben in Ihrem Viewport wechseln Ich benutze gerne die Leertaste, um zwischen diesen umzuschalten. Jetzt gehe ich in den Skalierungsmodus und hole mir diesen grünen Und ich werde das einfach herunterdrücken , so etwas werde ich mit meinem roten Griff nicht besonders präzise sein Dann werde ich mit meinem roten Griff nicht besonders präzise sein, ich werde ihn nur ein bisschen verlängern Im Grunde wollen wir, dass unsere Spieler hier von vorne beginnen und sich dann nach rechts bewegen Das ist von oben nach unten. Lassen Sie uns nun unsere Ansicht von oben nach unten minimieren. Gehen Sie gleich hier, wir gehen zu unserer perspektivischen Ansicht. Ich möchte das jetzt in der Ansicht mit vier Paneelen belassen. Sie können von oben nach unten sehen, dass der grüne Griff nach unten zeigt In meiner perspektivischen Ansicht bedeutet das, dass ich um dieser Ansicht von oben nach unten zu entsprechen, , um dieser Ansicht von oben nach unten zu entsprechen, einfach die rechte Maustaste gedrückt halte und W, S und D verwende, um in diesem Winkel genau hier zu sein, der in etwa dem entspricht, was ich im oberen Bereich sehe. Okay, so werden wir also arbeiten. Ich gehe jetzt in den Vollbildmodus. Und jetzt möchte ich den sogenannten Player-Startdarsteller hier links platzieren . Um die Stelle zu kennzeichnen, an der mein Spieler erscheinen soll, sobald wir auf die Play-Schaltfläche klicken Um das zu tun, benötigen wir einen Startdarsteller für den Spieler. Dieser befindet sich im Bereich „Schauspieler“. Wenn Sie das Panel mit den Schauspielern des Ortes nicht hier haben, Sie es vielleicht verlassen, so etwas Du kannst gleich hierher kommen, du hast das Schauspielerpanel Und wenn dieser Tab als Basis-Tab ausgewählt ist, kannst du einen Spielerstart-Schauspieler finden. Fahren Sie einfach fort und ziehen Sie das in unseren Ansichtsteil. Ich drücke einfach die Taste, um mein Bewegungstool einzuschalten. Und wenn ich es so in die Luft bringe, kann ich die Ende-Taste drücken, das ist die END-Taste, die sich neben Ihrer Löschtaste befindet , um es auf den Boden zu legen. Jetzt werde ich ganz genau angeben, wo ich das in der Y-Ebene platzieren möchte. Das ist die grüne Ebene hier drüben in meinem Detailbereich , wo ich all die verschiedenen Details zu meinem ausgewählten Schauspieler finden kann . Ich werde die Y-Position und die grüne Position dort auf Null setzen . Also werde ich es einfach auswählen, Null drücken und dann Enter drücken. Und beobachte, was mit meinen Spielern passiert. Starte Schauspieler, es wird zu diesem Ort springen. Das wird vorerst gut genug sein. Wenn ich jetzt zum Startdarsteller meines Spielers übergehe, sehe ich genau hier diesen blauen Pfeil , der anzeigt, in welche Richtung unser Charakter schauen wird wenn er in das Level spawnt Wenn ich jetzt hier oben auf den grünen Play-Button klicken würde, kannst du sehen, dass mein Charakter ungefähr an dieser Stelle erschienen ist Jetzt halte ich einfach die rechte Maustaste gedrückt und schwenke um sie herum Sobald Sie in das Darstellungsfenster geklickt haben einfach die Maus bewegen, können Sie die Kamera auf diese Weise schwenken Nun, für eine Side-Scroller-Plattform ist das nicht ideal für ein Side-Scroller-Platformer-Spiel Wir wollen, dass sich die Kamera nach hinten bewegt und wir wollen, dass die Kamera in dieser Art von Seitenansicht fixiert Also darum werden wir uns nächstes Jahr kümmern. 4. Einrichtung der Player-Kamera: Wenn wir jetzt ins Spiel spawnen, spawnen wir als Charakter aus der dritten Person am Startort unserer Spieler Der Grund, warum wir als Charakter aus der dritten Person spawnen, ist , dass dies der Standardcharakter ist, den wir Für diese spezielle Vorlage. Wir verwenden die Vorlage für Dritte. Diese finden Sie jetzt in unseren Projekteinstellungen, und Sie können auf Ihre Projekteinstellungen oben rechts zugreifen , genau hier, wo es Einstellungen heißt. Wenn ich auf Einstellungen klicke und zu meinen Projekteinstellungen gehe, haben wir auf der linken Seite einen Bereich , der als Karten und Modi bekannt ist. Und wenn ich das auswähle, können wir unsere Standardbauernklasse finden, das ist sozusagen die Charakterklasse, die wir in unserem Spiel als Charakter aus der dritten Person kontrollieren als Charakter aus der dritten Person Und wir können zu diesem Asset navigieren, indem wir hier auf dieses Ordnersymbol Dadurch wird im Inhaltsbrowser zu diesem Asset navigiert. Ich mache das, indem ich mit der linken Maustaste darauf klicke. Und Sie können sehen, wo sich dieses Asset in den Ordnern im Ordner mit allen Inhalten für Drittanbieter-Blueprints befindet Ordnern im Ordner mit allen Inhalten für Drittanbieter-Blueprints Jetzt werden wir hier drinnen etwas arbeiten, um mit der Anpassung unserer Charakter-Kamera zu beginnen Doppelklicken wir also darauf, um es zu öffnen. Beim Öffnen wird standardmäßig diese Registerkarte mit dem Ereignisdiagramm angezeigt. Hier befindet sich das gesamte Skript, gesamte Code, der sich auf dieses Zeichen bezieht Wir werden das jetzt ignorieren und zu unserem Viewport-Tab springen Auf unserer Registerkarte „Viewport“ können wir all die verschiedenen Komponenten sehen , aus denen dieser Blueprint besteht Wir haben unser Charaktermodell, das durch diese Mesh-Komponente repräsentiert wird Wir haben auch diese Kamera. Das ist die Linse, durch die wir gerade unseren Charakter betrachten. Unsere Kamera ist derzeit an einer Kamera befestigt, bumm. Was eigentlich als Federarmkomponente bekannt ist. Wir können diese Bindungsbeziehung jederzeit erkennen , wenn wir diese Einrückung sehen Im Moment ist die folgende Kamera an unserer Kamera befestigt, Bum Jetzt wollen wir hier einige Änderungen an unserer Kamera vornehmen , bumm. Unsere Federarmkomponente. Sie können sich diese Federarmkomponente vorstellen , die als unsere Kamera bekannt ist. Bum, das ist der Name dieser Komponente als Selfie-Stick Derzeit wollen wir diesen Selfie-Stick zurückziehen diesen Selfie-Stick zurückziehen Denken Sie jetzt daran, dass unsere Kamera an unserer Kamera befestigt ist. Bum. Hier beträgt die Armlänge, die Länge unseres Selfsticks, derzeit 300 unwirkliche Einheiten Wir wollen das etwas verlängern. Ich habe hier einige Werte für verschiedene Parameter im Kopf. Wir setzen den Wert auf 1.500 und wenn wir die Eingabetaste drücken, werden auf 1.500 und wenn wir die Eingabetaste drücken, wir sehen, dass unsere Kamera jetzt weit hinten ist , dass unsere Kamera jetzt weit hinten Wir wollen unsere Kamera nicht hinter unserem Charakter haben, wir wollen sie hier zur Seite haben. Also werden wir hier unter den Kameraeinstellungen ein paar Kästchen abhaken Wir werden die Häkchen „ Tonhöhe erben“ und „Giern erben“ deaktivieren. Wenn wir jetzt unser Spiel spielen würden , lass mich einfach wieder reinspringen und Ich werde in meinen Viewport klicken. Du kannst sehen, dass ich jetzt weit hinter unserem Charakter zurückliege, weil ich den Selfie-Stick weit nach hinten gesetzt habe Ich klicke in mein Darstellungsfenster und kann das Gieren unserer Kamera ändern Das ist links und rechts, genauso wie die Tonhöhe, das Auf und Ab Und das will ich nicht tun. Ich möchte, dass die Kamera quasi hier verriegelt ist. Ich drücke Escape und springe von hier raus. Ich werde Inherit Pitch deaktivieren und dich erben. Wenn ich jetzt wieder reinspringen und spielen muss und ich in meinem Viewport angeklickt werde, kann ich die Position unserer Kamera eigentlich nicht ändern Wir fixieren es. Als Nächstes möchte ich die Kamera zur Seite nehmen. Ich will nicht, dass es hinterherhinkt. Ich werde die Drehung unserer Kamera ändern Drehung unserer Kamera Bum. Genau hier in der Rotation, der Z-Rotation. Ich möchte den Wert auf minus 90 setzen. Drücken Sie die Eingabetaste. Und jetzt können Sie sehen, dass die Kamera weit drüben springt , quasi in dieser Seitenansicht Wenn ich jetzt auf Abspielen und dann in mein Viewport klicke, kannst du sehen, dass es jetzt unseren Charakter verfolgt Jetzt werden unsere W-, AS- und D-Steuerungen etwas wackelig sein Tatsächlich werden sie ein bisschen rückwärts sein . Mach dir keine Sorgen Wir werden das gleich hier beheben. Aber es gibt noch ein paar andere Kameraeinstellungen, um die ich mich kümmern möchte, da wir schon hier sind. Eine Sache, die ich tun möchte, ist Teil der Kamera zu aktivieren. Also noch einmal, da unser Kamerabohm die Federarmkomponente ausgewählt sind, möchten wir dieses Kästchen für die Aktivierung des Kamerabeins ankreuzen. Normalerweise möchte man keine langbeinige Kamera haben, aber wenn sie unserem Charakter zu eng folgt, kann das ein bisschen verwirrend sein. Das wird also die Bewegung der Kamera ein wenig abschwächen Bewegung der Kamera ein wenig abschwächen Beachten Sie, dass, sobald wir dies einschalten, ein Wert für die Beingeschwindigkeit der Kamera aktiviert wird Ich werde das jetzt bei zehn belassen , aber im Laufe dieses Kurses sollten Sie wissen, dass Sie damit herumspielen können, um mehr oder weniger Kamerabein zu haben . Und ein anderes Kontrollkästchen, das ich deaktivieren möchte, ist dieser Kollisionstest Derzeit ist es aktiviert und ich werde es für einen Moment aktiviert lassen, um Ihnen zu zeigen, wie das funktioniert Ich werde sehr schnell zu meinem Level zurückkehren und du musst diesem Teil nicht folgen. Ich werde es nur demonstrieren. Ich werde einen Würfeldrachen reinbringen und ihn hier reinstecken. Ich werde einfach ein paar Mal die Leertaste drücken und so eine Art Vordergrundblocker erstellen , wenn Sie so Also werden wir unseren Charakter hier nach links oder rechts laufen lassen und unsere Kamera wird daran gehindert, unseren Charakter hier zu sehen Führen Sie damit eine Kollisionsprüfung durch. Führen Sie einen Kollisionstest durch. Aktiviert, ob ich auf Play klicken und WK drücken würde, um voranzukommen Schau, was mit unserer Kamera passiert . Es wird einfach so nach vorne springen . Das ist ein bisschen erschütternd. Wenn Sie diesen Effekt nicht wollen, können wir mit der ausgewählten Kamera, bumm, machen Lassen Sie uns das Häkchen entfernen, damit die Kamera beim Abspielen einfach so läuft Sie wird nicht vor die Wand springen. Das wird nützlich sein, falls wir beim Aufbau irgendwelche Dekorationen im Vordergrund unseres Levels irgendwelche Dekorationen im Vordergrund bauen. In Ordnung, lassen Sie uns weitermachen und dieses Asset speichern. Und das wird alles für dieses Video tun. Im nächsten Video werden wir einige Anpassungen an unserer Kamera vornehmen, sodass Sie sie nach Ihren Wünschen gestalten können. Wir sehen uns dort 5. Benutzerdefinierte Kamera des Players: Willkommen zurück alle. Jetzt, wo wir unsere Side-Scrolling-Kamera eingerichtet haben, passen wir sie ein wenig Ich werde hier wieder in meinen Charakterentwurf für die dritte Person eintauchen meinen Charakterentwurf für die dritte Person Hier ist der Weg dafür, falls du runterspringst, Bauplan für Dritte Person, Charakter aus der dritten Person Und wir werden hier beginnen, indem wir einige Variablen hinzufügen Variablen enthalten die Daten, auf die wir innerhalb von Skripten zugreifen können. Und ich werde hier ein paar verschiedene Variablentypen hinzufügen , angefangen damit, unter Variablen zu kommen auf diese Plus-Schaltfläche zu klicken. Wir werden eine hinzufügen, die heißt, die Kamera kann in Echtzeit angepasst werden. Dann füge ich eine weitere Variable hinzu, ich Camera Distance from Player nenne . Ich werde dies von einer booleschen Variablen, die wahre und falsche Daten enthält, in eine Gleitkommazahl ändern die wahre und falsche Daten enthält, in eine Gleitkommazahl Ein Float ist eine Zahl mit einer Dezimalzahl, 0,2 verschiedene Variablentypen , die wir hinzufügen werden In diesem Fall werde ich eine weitere Variable hinzufügen, als Kamera-X-Offset bezeichnet wird. Jetzt können wir hier mit der rechten Maustaste auf diese Variable klicken und uns entscheiden, ob wir eine neue erstellen möchten. Aber ich werde diesen einfach duplizieren. Strg+D ist der Hotkey dafür. Dieser wird Y-Offset genannt werden. Und deshalb habe ich mich entschieden , es zu duplizieren. Weil ich hier nur einen kleinen Teil des Textes ändern werde, während der Text ausgewählt ist, werde ich Steuerung D verwenden, um ihn zu duplizieren. Und das wird Z-Offset genannt. Wir werden in der Lage sein, das in jede der verschiedenen Richtungen zu verschieben, Y oder Z. Und dann werde ich dieses Steuerelement plus D duplizieren, obwohl ich den gesamten Namen überschreiben werde Das wird Camera Leg Speed heißen. Ordnung, und mit all diesen Variablen werde ich auf diese Augapfel-Symbole klicken Nun, das macht für jede dieser Variablen, wenn wir auf dieses Augapfelsymbol klicken, und momentan habe ich die Beingeschwindigkeit der Kamera als meine ausgewählte Variable drüben im Detailbereich Wenn dieser Augapfel aktiviert ist diese Variable von der Instanz bearbeitet werden Ebenso würden Sie sehen, dass der Augapfel jetzt geschlossen ist, wenn ich das ausschalten würde zwei verschiedene Möglichkeiten, Ihre Variablen instanzeditierbar zu machen Ihre Variablen instanzeditierbar klicken Sie darauf oder klicken Sie auf den Wenn ich also wieder darauf klicke , ist der Augapfel Was bedeutet das überhaupt? Nun, das bedeutet, dass uns diese Variable jetzt zur Bearbeitung zur Verfügung steht wenn wir wieder im Editor sind. Und das werden wir uns gleich hier ansehen. Jetzt werde ich diese Variablen in einem Skript verwenden . Ich werde gleich hier schreiben. Aber bevor ich das mache, möchte ich diesen Variablen einen Standardwert geben. Und bevor ich das tun kann, muss ich, wie wir im Detailbereich sehen, wie wir im Detailbereich sehen, unseren Blueprint kompilieren , bevor ich ihm einen Standardwert geben kann Gehen wir also hier oben links rein und kompilieren unseren Blueprint Beginnen wir mit unserer obersten Variablen Können wir die Kamera damit in Echtzeit anpassen Ich lasse das ungeprüft. Für die Kameraentfernung zum Spieler werde ich den Wert auf 1.500 setzen. Sie werden feststellen , dass dieser Wert unseren Kamerabellen entspricht , der Zielarmlänge Wenn ich unsere Variable erneut auswähle, verwende ich den Kameraversatz Wir werden das auf Null für den Kamera-Y-Offset einstellen. Ich belasse das bei einem Kameraversatz von Null. Ich werde das auf 150 setzen. Und dann Kamera-Beingeschwindigkeit, ich werde das auf zehn setzen. Jetzt werden Sie hier meine Kamera-Beingeschwindigkeit bemerken, den Wert Zehn. Das wird meiner Kamera entsprechen, bumm. Diese Federarmkomponente, sie wird genau diesem Wert hier entsprechen . Beingeschwindigkeit der Kamera. Und ich wollte meine Kamera um 150 in Z-Richtung verschieben. Sie werden das gleich hier im Spiel sehen . Okay, wenn diese Variablen vorhanden sind, springen wir von unserem Viewport-Tab in unser Ereignisdiagramm und verwenden einige dieser Variablen Jetzt möchte ich jedes Bild machen, ich möchte die Position unserer Kamera bei jedem Bild aktualisieren Also werde ich ein Event-Häkchen verwenden. Halten Sie die Strg- und das Mausrad gedrückt, um das Diagramm hier zu vergrößern . Mit der rechten Maustaste schwenken Sie um dieses Transplantat herum. Wenn ich mit der rechten Maustaste klicke, gebe ich das Häkchen für Ereignisse ein. Das wird jetzt bei jedem Frame ausgelöst. Und was ich tun werde, ist, mich hierher zu ziehen und einen Verzweigungsknoten einzubauen. Das Erste, was wir tun werden, bevor wir weitermachen, ist , einen Zustand zu überprüfen. Die Bedingung, die ich überprüfen möchte, ist die Kamera in Echtzeit eingestellt werden kann. Ich kann das per Drag & Drop direkt auf den Zustandsstift ziehen, um es automatisch so anzuschließen. Wenn das stimmt, wollen wir etwas mit unserem Federarm machen. Ich werde unsere Federarmkomponente einsetzen, die Kamera heißt, Boom. Wir werden das hineinziehen , um es zu bekommen. Ich werde hier den richtigen Zweig herausziehen und die relative Position festlegen eingeben . Ich will das für meine Kamera machen, bumm. Und Sie können hier in Klammern sehen, es zeigt Kameraboom Wenn ich also diesen Funktionsknoten einbauen würde, sieh dir das an, er würde meine Kamera einschalten, bumm, sofort Nun, das hatte ich bereits eingebracht. Ich wollte nur zeigen , dass du das kannst. Aber ich werde das löschen. Musste nicht. Ich hätte diesen Bauch auch löschen können. Und wir werden das als Ziel einhängen. Das wollen wir bei jedem Frame aktualisieren. Ich werde das alles nur hierher verschieben. Ich klicke einfach mit der linken Maustaste und ziehe sie alle hierher. Jetzt möchte ich dafür einen neuen Ort festlegen. Jedes Bild werde ich von dieser neuen Position rückwärts ziehen und Make Vector eingeben Wir wollen in der Lage sein, die X -, Y- und Z-Position dieses Objekts zu aktualisieren -, Y- und Z-Position dieses Objekts zu jedem Frame ziehe ich Bei jedem Frame ziehe ich den X-Offset der Kamera in das X, den Y-Offset der Kamera in das Y und den Offset in das Z hinein Sie können diese verschieben. Wie du das organisieren willst, alles nett. Jetzt werden wir den Ablauf der Hinrichtung hier fortsetzen. Wir tun mehr als nur die Position unserer Kamera einzustellen. Bum. Hier werde ich die Beingeschwindigkeit unserer Kamera einbeziehen. Wenn ich das hineinziehe und loslasse, kann ich es abrufen oder einstellen. Ich möchte, dass diese Information in dieser Variablen enthalten ist. Dann ziehe ich es von hier rein, eigentlich werde ich da nicht reinziehen. Ich werde unsere Kamera reinziehen, bumm. Wir ziehen hier raus und geben die Beingeschwindigkeit der Kamera ein. Wir wollen die Beingeschwindigkeit unserer Kamera einstellen. Was wir hier also im Grunde sagen, ist, hey, unsere Kamera, bumm. Wir wollen in der Lage sein, die Beingeschwindigkeit unserer Kamera mit dem hier angegebenen Wert zu aktualisieren . Wir kommunizieren also. Wir sagen im Grunde: Hey Kamera, Bum. Anstatt diesen Standardwert von zehn zu verwenden, machen wir ihn zu dem, was auch immer dieser Wert ist. Derzeit sind es zehn. Aber das werden wir anpassen können. Lassen Sie uns diesen Hinrichtungsablauf fortsetzen. Dann will ich als Nächstes meine Kamera rausziehen, Bum. Noch ein Mal. Und ich möchte die Zielarmlänge angeben. Ich möchte unsere Zielarmlänge noch einmal festlegen können . Wenn ich hier unsere Kameraausleger-Komponente auswählen würde, diese Federarmkomponente, hätten wir diese Zielarmlänge. ist derzeit auf 1.500 festgelegt Wir werden den Ausführungsablauf hier fortsetzen. Und ich kann das bei jedem Bild aktualisieren , indem ich unsere Kamera anschließe Wo ist die Kameraentfernung vom Spieler, direkt in diesen Eingang? Das wird unser letztes Drehbuch sein. Ich werde das einfach einrahmen. Als Nächstes klicke ich mit der linken Maustaste und ziehe ein Auswahlrechteck um all diesen Typ, die C-Taste, um eine Kometenbox einzublenden, und ich nenne das, ermöglicht es Ihnen vorübergehend Ihre Kameraeinstellungen während des Spiels vorübergehend anzupassen Ordnung, lassen Sie uns weitermachen und unseren Entwurf kompilieren , um sicherzustellen, dass unser Code hier Jetzt werde ich weitermachen und hier spielen. Aber ich möchte hier zu meiner Hauptmap zurückkehren, meinem Haupteditor. Und beachte, dass ich es bin. Ich habe gerade auf diese drei Punkte geklickt in meinem ausgewählten Viewport abgespielt Und der Grund, warum ich das mache, ist, dass ich jetzt drüben im Outliner spiele Was Sie sehen werden, ist, dass wir in dieser gelblich-orangen Schrift unseren Charakter aus der dritten Person haben Dies zeigt ein Objekt, das in Asset gespawnt ist, nachdem wir unser Spiel gespielt haben. Alles in Orange Hears ist gerade reingekommen. Sobald wir unser Spiel gespielt haben. Ich kann jetzt unseren Charakter aus der dritten Person im Detailbereich auswählen . Du wirst unten etwas bemerken. Wir haben im Bereich „ Alle“ eine Kategorie namens Standard. Und hier sind all die Variablen, die wir gerade erstellt und in unserem Level-Editor verfügbar gemacht haben. Genau das hat diese editierbare Instanz, Checkbox, das Augapfel-Symbol getan Es hat all diese Variablen hier im Editor zugänglich gemacht hier im Editor zugänglich Und jetzt können wir unsere Kameraposition hier live aktualisieren unsere Kameraposition hier , während wir das Spiel spielen. Erinnert euch an unseren Charakter aus der dritten Person, wir sind momentan gezwungen, weiter voranzukommen. Nur wenn wir die Kameraposition in Echtzeit anpassen können , wenn diese Variable wahr ist, und standardmäßig haben wir, dass sie falsch ist. Also werde ich das zuerst überprüfen weil sonst keine dieser Änderungen hier unten etwas bewirken würde Ich werde das überprüfen und Sie werden sofort sehen, dass sich die Kamera nach oben bewegt hat Und jetzt könnten wir jeden dieser Werte ändern, wie zum Beispiel die Kameraentfernung zum Spieler, indem wir einfach mit der linken Maustaste klicken und ziehen. Und wenn ich es veröffentliche, kannst du sehen, dass es das aktualisiert. Ich könnte das auf etwa 500 einstellen, Enter drücken, es so aktualisieren, dass es live aktualisiert wird. Wenn Sie auf diese Zurück-Schaltfläche klicken, wird der Standardwert wiederhergestellt. Sie können wirklich ein Gefühl dafür bekommen wie viele Anpassungen wir für diese spezielle Kamera haben. Versuchen Sie, den Z-Offset der Kamera auf 400 einzustellen, drücken Sie die Eingabetaste, um sie nach oben zu verschieben. Hier gibt es viele Anpassungen wie Sie das einrichten möchten, Y, lassen Sie uns weitermachen und den Wert auf 200 setzen , die Eingabetaste drücken usw. Stellen Sie diesen Wert auf 222 ein und drücken Sie die Eingabetaste. Sie können es so verschieben. Viele Feinanpassungen. Sie werden jedoch feststellen, dass, sobald Sie aufhören, hier zu spielen , zu Ihren Blueprints zurückkehren und auf Ihre verschiedenen Variablen klicken, keiner dieser Werte tatsächlich aktualisiert wurde Sie sind alle dieselben, wie wir sie standardmäßig festgelegt haben. Ich nenne das, dass Sie Ihre Kameraeinstellungen vorübergehend anpassen können Ihre Kameraeinstellungen vorübergehend anpassen weil, wenn Sie hier Ihre Kameraeinstellungen ändern und sagen, dass Sie etwas ändern möchten, lassen Sie mich einfach meinen Charakter aus der dritten Person mögen. Sie möchten, dass die Entfernung 1.000 beträgt. Sie müssen sich diese Werte merken oder diese Werte kopieren, sodass, wenn Sie aufhören, Ihr Spiel zu spielen und zurück zu deinem Charakter aus der dritten Person kannst du einen neuen Standardwert eingeben. Nur um noch einmal klarzustellen Wenn du dein Spiel spielst und irgendeinen der mit deiner Kamera verknüpften Werte aktualisierst, ist das nur vorübergehend, bis du dein Spiel aufhörst. Und wenn Sie Ihr Spiel beenden und Ihnen diese Werte gefallen, müssen Sie sie hier im Editor selbst aktualisieren , damit diese Änderungen dauerhaft wirksam werden. In Ordnung, da haben wir's. Wir haben eine schöne maßgeschneiderte Kamera, mach sie nach deinen Wünschen. Das reicht für dieses Video. Wir sehen uns im nächsten. 6. Spielerbewegung: In Ordnung, willkommen zurück alle. In diesem Video ist es unser Ziel, die Grundlagen der Bewegungen unseres Spielercharakters in unserem Spiel zu verfeinern die Grundlagen der Bewegungen unseres Spielercharakters in unserem . Dafür werden wir innerhalb unseres BP-Third-Person-Charakters arbeiten . Doppelklicken Sie also auf das Asset, um es zu öffnen. Und ich möchte nur einige Anpassungen an unserem Kamera-Eingabeskript und unserem Bewegungs-Eingabeskript vornehmen. Verdrahten Sie jetzt das Kamera-Eingabeskript. Nun, wenn ich jetzt reinspringen und spielen würde, würde ich meine Maus überhaupt nicht berühren und benutze die W-Taste und die S-Taste Offensichtlich sind diese Steuerungen nicht richtig, und ich benutze W, S und D, sie sind nicht richtig, aber mein Charakter bewegt sich solide in die eine oder andere Richtung Wenn ich jedoch mit der Maus stoßen würde und ich meine Maus hier nur ein wenig stoße, bewege ich sie von rechts nach links, und jetzt benutze ich Sie können sehen, dass es mich ein bisschen aus dem Gleichgewicht bringt , wenn ich schräg renne Was gerade passiert, ist, dass dieses Kameraeingabeskript die Richtung unseres Charakters beeinflusst Da es immer noch angeschlossen ist, um das Problem zu beheben, müssen wir nur dieses Skript beenden Ich könnte die ganze Sache löschen. Ich werde jedoch nur die Alt-Taste, Ol, gedrückt halten und dann mit der linken Maustaste klicken und schon wird das Kabel durchtrennt Wenn ich jetzt hineinspringen und spielen würde und die Tasten W, S und D benutze, würde sich mein Charakter unabhängig davon, wie viel ich meine Maus bewege, solide in die eine oder andere Richtung bewegen solide in die eine oder andere Richtung Jetzt bewegen sie sich offensichtlich nicht in die richtige Richtung. Das müssen wir als Nächstes beheben. Dafür werden wir zu unserem Abschnitt zur Bewegungseingabe übergehen . Derzeit haben wir zwei Arten von Eingaben eingerichtet, eine für links, rechts und vorwärts rückwärts Dies ist jedoch insofern irreführend, als unser Vorwärts-Rückwärtsskript genau hier das ist, was wir verwenden möchten, um nach links und rechts hier das ist, was wir verwenden möchten, um nach zu gehen Dieses kleine Drehbuch hier, wir werden es auslöschen. Und das liegt daran, dass wir uns einfach darum kümmern werden unser Charakter entlang der X-Achse nach links und rechts bewegt. Und wir müssen uns keine Sorgen machen sie sich in alle Richtungen bewegen, wir müssen uns keine Sorgen um die Y-Achse machen. Also werden wir das auslöschen. Wir werden das auch auslöschen. Ein paar davon sind Routenknoten genau hier unten. Und das ist ein bisschen Hackerei, aber ich werde mein Bestes tun, um genau zu beschreiben, was wir hier tun wollen Es interessiert uns nur, wie wir uns entlang der X-Achse bewegen. Ich habe das aus einem bestimmten Grund absichtlich angeschlossen. Wenn wir uns jetzt in einem Spiel befinden, haben wir zum Beispiel unseren linken Steuerknüppel an einem Joystick . Wir können uns vorstellen, unser linker Daumenstick in zwei Achsen aufgeteilt ist Das ist die Y-Achse, genau hier oben. Sie geht geradeaus auf und ab, und das ist die X-Achse. Auch jetzt interessieren wir uns nur für die X-Achse. Unser Charakter wird von links nach rechts rennen. Und genau darum geht es uns bei dieser Eingabeaktion. Wie wir die eingeben und ausgeben Bewegungen unserer Charaktere auf der Grundlage unserer Eingaben Das wird sich in die negative X-Richtung bewegen, und das wird sich in die positive X-Richtung bewegen Wir wollen unseren Vorwärtsvektor hier haben, wobei unserer Charaktere auf der Grundlage der Z-Drehung nach vorne gerichtet Richtung unserer Charaktere auf der Grundlage der Z-Drehung nach vorne gerichtet ist. Das heißt, wenn du eine gerade Linie durch deinen Charakter ziehen würdest, wäre Linie durch deinen Charakter ziehen würdest, unser Vorwärtsvektor unser Charakter, der nach vorne zeigt. Jetzt wollen wir, dass der X-Wert unserer Eingabe hier der tatsächlichen Richtung entspricht , in die sich unser Charakter bewegt. Wir werden unser Skript so modifizieren , dass, wenn wir diese Aktion mit den Tasten A und D auf der Tastatur auslösen . Oder umgekehrt, wenn Sie einen Controller angeschlossen haben, lesen wir den X-Wert ein, also die Tasten A und D , oder links und rechts auf einem oder links und rechts auf einem Werden wir, gehen wir in eine positive Und die Richtung, in die wir unseren Charakter schicken wollen, wird auf dem Vorwärtsvektor unseres Charakters basieren. Im Wesentlichen, in welche Richtung schauen sie? Mit dieser Änderung hier wird es nicht wirklich vorwärts und rückwärts gehen, ich denke, das ist es, relativ zum Standort unseres Charakters Aber was die Art und Weise angeht, wie wir nach links und rechts schauen werden , werde ich das jetzt als unser neues „Links, Rechts“ bezeichnen das jetzt als unser neues „Links, Rechts Wenn unser X-Wert negativ ist, was bedeutet, dass wir die Taste oder die linke Maustaste auf dem linken Thumbstick drücken, gehen wir auf dem Bildschirm nach links und wenn der X-Wert, der mit der D-Taste oder rechts auf dem Thumbstick ausgegeben wird der D-Taste oder rechts auf dem Thumbstick ausgegeben , positiv ist, bewegen wir unseren Charakter rechten Maustaste und klicken hier auf Abspielen. Du kannst jetzt sehen, dass wenn ich die Taste drücke, ich mich nach links bewege, die Taste D sich nach rechts bewegt Und ich habe auch einen Controller angeschlossen, also drücke ich einfach links auf dem linken Thumbstick und rechts auf dem linken Thumbstick hier, um zu zeigen, dass das Als Nächstes möchte ich zeigen, wo Sie mit einigen Bewegungsparametern Ihrer Charaktere herumspielen können mit einigen Und diese können innerhalb der Bewegungskomponente Ihres Charakters angepasst werden , die in Ihrem BP, dem Charakter aus der dritten Person, Viele Parameter können angepasst werden, wenn diese Komponente im Detailbereich ausgewählt wird. Wir werden nicht alle anpassen, aber wir werden einige anpassen. Und ich werde über einige der wichtigsten sprechen der wichtigsten , mit denen sich viele Designer befassen. Jetzt wird der erste, den ich anpassen möchte , weit unten sein. Ich werde mir einfach diesen Slider hier schnappen. Wir suchen nach innerer Bewegung. Jetzt wollen wir nur , dass sich unser Charakter entlang der X-Ebene bewegt und zu unserem Level hier zurückkehrt. Noch einmal, wenn ich in eine Ansicht von oben nach unten gehen würde, das eine Ansicht unseres Levels von oben nach unten. Wir werden uns entlang der X-Achse bewegen. Hier ist unser kleiner Cheat hier unten, die X-Achse, von links nach rechts Wir wollen uns nicht entlang der Y-Achse, der Auf- und Ab-Achse, in den Vordergrund oder in den Hintergrund bewegen entlang der Y-Achse, der Auf- und Ab-Achse, in den Vordergrund oder in den Hintergrund , um sicherzustellen, dass wir auch dann, wenn wir auf Dinge stoßen, nicht von unserer X-Linie abkommen können Ich werde sagen, beschränkte Ebene Ja. Und ich möchte unsere Ebene entlang der Y-Achse einschränken Ich möchte mich nicht entlang der Y-Achse bewegen können . Wenn ich das jetzt mache, wird dieser Wert automatisch auf eins gesetzt . Das bedeutet im Wesentlichen, dass Sie der Y-Achse überhaupt nicht bewegen können. Sie können sich auf der X-Achse , die links und rechts verläuft, sowie auf der Z-Achse, die nach oben und unten verläuft , bewegen . Vielleicht hochspringen, sich nach unten bewegen. In Ordnung, das ist also alles schön und gut. Als Nächstes möchte ich die Rotationseinstellungen unserer Charaktere ändern . Und dafür suche ich hier oben nach Einstellungen für die Rotation der Charakterbewegungen. Diese Rotationsrate bestimmt die Geschwindigkeit, mit der sich unser Charakter umdreht. Wenn ich jetzt auf Abspielen klicken und die Taste oder die Taste drücken würde, kannst du sehen, dass ich mich nicht superschnell umdrehe und ich möchte mich schneller umdrehen. Also werde ich meine Rotationsrate hier auf einen hohen Wert entlang der Z-Achse von 2.500 einstellen hier auf einen hohen Wert entlang der Z-Achse von . Die Z-Achse ist die Richtung , in die unser Charakter zeigt. Stellen Sie sich eine gerade Linie vor , die durch unseren Charakter verläuft. Wir wollen uns also mit dieser Geschwindigkeit schneller um diese Achse drehen , 2.500. Wenn ich also auf „Abspielen“ klicken müsste, drücke die Taste. Sie können sehen, wie schnell ich mich dort umgedreht habe, die Taste D gedrückt habe usw. Also spiel damit nach deinem Geschmack herum. Stellen Sie sicher, dass Sie auch die Option „Drehung an Bewegung ausrichten“ aktiviert haben Drehung an Bewegung ausrichten“ aktiviert Wenn das nicht aktiviert ist, wenn es nicht aktiviert ist und Sie A und D drücken, haben Sie einen solchen Effekt. Stellen Sie also sicher, dass die Drehung an Bewegung ausrichten“ ebenfalls aktiviert ist. Und jetzt möchte ich zum Schluss die Geschwindigkeit anpassen, mit der sich mein Charakter bewegt, also im Wesentlichen, wie schnell er sich bewegt. Und das kann mit einem Parameter namens maximale Gehgeschwindigkeit gesteuert werden. Es ist hier im Bereich Bewegung und Gehen von Charakteren. Lass dich nicht vom Wort Gehen täuschen. Das ist im Wesentlichen, wie schnell dein Charakter fliegen kann. Standardmäßig ist es 600. Ich werde meins auf 1.000 einstellen, aber nach Ihren Wünschen einstellen Wenn ich jetzt reinspringen und spielen muss, kannst du sehen, wie schnell und ich bewege mich jetzt scheint mein Charakter überhaupt nicht zu rutschen, oder? Wenn ich mich jetzt umdrehe, halten sie auf einmal an und ich möchte ein bisschen rutschen Also werde ich meine Bodenreibungseinstellung genau hier anpassen Das ist auf acht eingestellt. Ein niedrigerer Wert hat weniger Reibung zur Folge. Ich werde es auf zwei setzen. Wenn ich jetzt reinspringe und spiele und mich nach rechts bewege und mich dann darauf einstelle, nach links zu gehen , können Sie sehen, dass er nicht sofort aufhört Da ist nur eine kleine Rutsche. Fummeln Sie auch damit nach Ihrem Geschmack. Ein weiterer Faktor, den Sie vielleicht anpassen sollten, heißt Beschleunigung Ich lasse meine vorerst unverändert, aber du findest sie unter Charakterbewegung > Allgemeine Einstellungen > Max. Beschleunigung. Das ist offensichtlich, wie schnell sich dein Charakter auf den neuesten Stand bringen wird, wenn er gestoppt wird. Ordnung, Leute, das wird es für diesen Fall, für unsere Spielerbewegung, reichen. Wir sehen uns alle in der nächsten. 7. Spieler-Sprung: Willkommen zurück alle. In diesem Video ist es unser Ziel, einige der Sprungeigenschaften unseres Spielercharakters anzupassen der Sprungeigenschaften unseres . Lass uns gleich eintauchen. Lassen Sie uns in unseren Blutdruck-Charakter aus der dritten Person eintauchen. Hier drinnen. Wir fangen noch einmal mit dem Event-Graph an. Und wenn wir weiter nach unten scrollen, benutze ich einfach die rechte Maustaste. Wir finden unseren Jump-Input-Abschnitt des Skripts, der standardmäßig hier hätte sein sollen. Derzeit habe ich die Dinge so eingerichtet, wenn wir springen, das heißt, die Leertaste löst dieses Ereignis aus und lässt unseren Charakter über diese Sprungfunktion springen. Wir werden tatsächlich springen. Und wenn wir das tun und ich es im Spiel überspringe und die Leertaste gedrückt und ich sie gedrückt halte, kannst du sehen, wie unser Charakter weiter springt. Und das ist nicht unbedingt das, was wir wollen. Die Taste auf einem Xbox-Controller, die ich gerade gedrückt halte. Wenn Sie das angeschlossen haben, machen wir das auch. Ich möchte das so machen, dass mein Charakter nur springt, wenn wir die Taste drücken Nicht wenn ich es gedrückt halte, springt er weiter. Eine einfache Möglichkeit, das zu beheben, ist, dass wir nur springen wollen , wenn wir anfangen die Leertaste oder die Taste gedrückt zu halten. Ich werde das einfach von ausgelöst ändern, weil wir dieses Sprungereignis ständig auslösen Wenn wir die Taste oder die Leertaste auf einem Controller gedrückt halten , verschiebe ich diesen Draht, indem ich bei gedrückter linker Maustaste bei gedrückter Strg-Taste auf Start Wenn ich jetzt spiele und die Leertaste gedrückt halte, Aber um wieder zu springen, muss ich loslassen und dann erneut drücken Das wird das Problem beheben. Als Nächstes möchte ich nur einige unserer Charaktere anpassen , indem sie ihre Parameter in ihre Eigenschaften springen. Und auch dies kann innerhalb unserer Komponente zur Charakterbewegung angepasst werden . Das erste, was ich anpassen möchte, ist die Höhe unseres Sprungs. Und das ist ein bisschen irreführend. Dies kann mit unserer Sprung-Z-Geschwindigkeit geändert werden. Es gibt keinen direkten Sprungparameter. Das ist der Typ hier, der kontrolliert, wie hoch unser Charakter springt. Derzeit ist es für mich auf 700 eingestellt, ich werde das auf 1.500 ändern. Und wenn ich es jetzt im Spiel überspringe und die Leertaste drücke, kannst du es sehen. Ich springe viel höher. Die Art und Weise, wie sich das Springen anfühlt, hängt jedoch nicht nur mit dieser einzigartigen Eigenschaft Sie können sehen, dass es ein bisschen schwebt, und deshalb möchte ich, dass es ein bisschen flotter ist, mein Charakter schneller wieder auf den Boden fällt Dies kann innerhalb unserer Charakterbewegungskomponente angepasst werden , indem wir unseren Effekt an die Schwerkraft anpassen Diese Eigenschaft der Schwerkraftskala hier oben minus ist derzeit auf 1,75 eingestellt. Ich möchte sie erhöhen, damit die Wirkung der Schwerkraft auf meinen Charakter größer wird, mit einem Wert von 2,5. Wenn ich reinspringe und spiele, erhalte ich dieses Ergebnis Ich springe ein bisschen höher, werde aber auch ein bisschen schneller heruntergefahren Also passe das nach deinen Wünschen an. Nun, ich möchte auch damit herumspielen, wenn ich in die Luft springe und dann Luft bin versuche, mich mit den Tasten A und D zu kontrollieren, während ich in der Derzeit habe ich sehr wenig Kontrolle und normalerweise mag ich es, wenn ich ein bisschen mehr Luftkontrolle habe , die über einen Luftregelparameter eingestellt werden kann , der unter unserer Sprung-Z-Geschwindigkeit liegt unter unserer Sprung-Z-Geschwindigkeit Da ist Sprung Z, da ist Luftregelung. Ich setze den Wert auf 1,0. Wenn ich jetzt reinspringe und spiele, springe ich. Ich versuche, Kurs ein wenig zu korrigieren mit A und D den Kurs ein wenig zu korrigieren, während ich in der Luft bin. Haben Sie ein bisschen mehr Kontrolle, spielen Sie mit, das ist auch nach Ihrem Geschmack Nun gibt es noch einige andere Parameter, die mit Sprüngen zu tun haben und die nicht Teil unserer Charakterbewegungskomponente sind die nicht Teil unserer Charakterbewegungskomponente die ich persönlich nicht anpassen werde Aber ich wollte dich darauf aufmerksam machen, in den Standardeinstellungen deiner Klasse zu finden Dies sind Parameter, die sich auf unsere Charakterklasse beziehen. Wenn ich nach unten scrolle, scrolle ich weiter nach unten. Tatsächlich gebe ich einfach Jump in das Detailfenster ein. Hier oben haben wir zwei, über die Sie bestimmt etwas wissen wollen. Einer ist Jump Max Count. Wenn ich das so ändern würde, drei sage und dann reinspringen und spielen würde, können Sie sehen, dass ich jetzt 123 erreichen kann und ich nur drei machen kann. So kann ich einen Dreifachsprung, Doppelsprung und Fünffachsprung umsetzen Jetzt wird dein Charakter keine weitere Sprunganimation abspielen Wenn Sie diese Zahl auf über eins erhöhen, sollten Sie wissen, dass dafür speziellere Einrichtung erforderlich ist. Aber so können Sie Doppelsprünge oder Dreifachsprünge usw. erstellen . Das ist innerhalb der Klassenstandardwerte, die nach Sprung suchen. Ein weiterer Wert, über den Sie vielleicht etwas wissen möchten, heißt Jump Max Hold Time und ist derzeit auf Null eingestellt Wenn Sie jedoch einen kleinen Rocket-Boost-Effekt wünschen, werde ich ihn hier auf einen Wert von 1 Sekunde einstellen Wenn ich jetzt einspringen und spielen würde, würde ich die Leertaste drücken und sie dann gedrückt halten. Also los geht's, wenn ich darauf drücke, bekomme ich einen kleinen Effekt vom Typ Raketenbeute Ich tippe jetzt einfach drauf. Das ist also ein Wasserhahn. Aber wenn ich es halte, wird es mir einen kleinen Schub geben. Wenn du also beim Springen einen kleinen zusätzlichen Schub willst , kannst du die maximale Haltezeit für den Sprung anpassen. Ich will diesen Effekt nicht, also setze ich ihn wieder auf Null. Das war wieder einmal alles innerhalb Klassenstandards unseres Third-Person-Charakters Ich bin mit all dem zufrieden. Ich werde hier kompilieren und speichern. Und da hast du's. Wir haben gerade einige Parameter für den Charaktersprung angepasst. Wir sehen uns alle im nächsten Video. 8. Player-Jump-FX: Willkommen zurück. Nun, da unser Charakter springt, fügen wir einen Soundeffekt und einen visuellen Effekt, einen Partikeleffekt, hinzu. Um einen Partikeleffekt zu nutzen, gehe ich zu unserem Launcher für epische Spiele. Unreal Engine wurde auf der linken Seite ausgewählt. Marketplace Ich habe hier oben auf dem Marktplatz ausgewählt hier oben auf dem Marktplatz werde nach Infinity Blade suchen Nachdem es hier ein bisschen nachgedacht hat, werde ich nach Infinity Blade-Effekten suchen. Nun, das ist ein etwas älteres Zusatzpaket, aber es hat einen speziellen visuellen Effekt , der unsere Charaktere begleiten wird. Springe wie Staub, der aus seinen Füßen austritt. Um dieses Inhaltspaket hinzuzufügen, muss ich nur klicken, um dieses Projekt hinzuzufügen Und wähle aus, welches Projekt ich hinzufügen möchte. Dies wird mein Plattformprojekt sein. Da ist es. Wählen Sie das aus und klicken Sie auf Zum Projekt hinzufügen. Jetzt wird es diese Dateien, diese Partikeleffekte, zu unserem Projekt hinzufügen . Ich kann hier schließen. Und dann komm zurück zu Unreal Engine. Dies wird je nach Computer eine Weile dauern je nach Computer Dann sollte irgendwann in Ihrem Inhaltsbrowser das Infinity Blade Effects Pack angezeigt werden. Wenn Sie hier nachschauen, finden hier all die verschiedenen Effekte , die sich in diesen Ordnern befinden. Ich werde nach einem bestimmten suchen Sentinel heißt gerade Senti eingegeben hat. Es wird dieser Typ hier sein. Dieser Sprungstartpfad. Es ist ein Staubpartikel , der sich von den Füßen unseres Charakters ablagern wird. Auch hier ist Infinity Blade Effects ausgewählt. Das ist der, den ich hier gleich verwenden werde . Ordnung, nachdem das Inhaltspaket hinzugefügt wurde, möchte ich als Nächstes in unseren Charakterentwurf für Dritte eintauchen unseren Charakterentwurf für Dritte Schauen Sie sich die Baupläne für Dritte an. Ich werde meine Suche hier löschen . Doppelklicken Sie auf einen Charakter aus der dritten Person und ich möchte mein Mesh auswählen. Der Grund, warum ich hier mein Mesh auswähle , ist, dass ich im Detailbereich das Skelettnetz-Asset auswählen möchte mit diesem Doppelklick direkt hier auf das Sumnil-Bild verknüpft , das mit diesem Doppelklick direkt hier auf das Sumnil-Bild verknüpft ist, um es zu öffnen Als Erstes möchte ich . Als Erstes möchte ich einem bestimmten Knochen einen Socket hinzufügen Auf der linken Seite hier habe ich einen Skelettbaum der all die verschiedenen Knochen zeigt, die hier auf unserem Skelett existieren Charakter, ich wähle unseren Beckenknochen, der genau in der Mitte ist, und dann klicke ich mit der rechten Maustaste darauf und wir wählen, ob wir eine Buchse hinzufügen möchten Jetzt können wir diesem Socket einen Namen geben. Es wurde nur Beckensockel genannt. Aber darauf kannst du F zwei drücken. Und ich nenne das einfach kurz VFX und drücke Enter Wenn das ausgewählt ist, kann ich es positionieren. Ich werde hier in meinem Darstellungsfenster die Leertaste drücken. Ich klicke einfach mit der rechten Maustaste hier um dieses Ansichtsfenster zu aktivieren, drücke die Leertaste und dann kannst du es nach oben oder unten bewegen Der Grund, warum ich diese Buchse am Becken befestigt habe , ist, dass ich wollte, dass diese bestimmte Buchse gerade vom Becken aus verläuft und nicht an einem bestimmten Fuß befestigt ist Und ich werde nicht besonders genau darauf eingehen, aber ich werde es genau dort platzieren Das ist ziemlich gut. Okay, du kannst das nach deinem Geschmack abstimmen. Okay, als nächstes hier oben habe ich diese kleine Running Man-Ikone Ich wähle das aus und das gibt mir Zugriff auf die verschiedenen Lass mich einfach diesen neuen Tab oben hier andocken. Die verschiedenen Animationen, die unser Charakter abspielen kann. Derzeit spielen wir diese M, M-Sprung-Animation ab, wenn unser Charakter hochspringt Jetzt möchte ich das pausieren , weil mich das ein bisschen ablenkt Ich kann diese Animation also pausieren, indem ich hier klicke. Ich möchte Ihre Aufmerksamkeit genau hier auf diesen Bereich lenken. Wir möchten eine sogenannte Benachrichtigung hinzufügen, um an einer Sound- und einen Partikeleffekt abzuspielen bestimmten Stelle innerhalb dieser Animation einen Sound- und einen Partikeleffekt abzuspielen. Jetzt können wir das auf diese Weise hin und her schrubben. Damit wir das innerhalb dieser speziellen Sprunganimation so einstellen können, wie wir es haben wollen innerhalb dieser speziellen Sprunganimation Jetzt möchte ich diesen visuellen Effekt mit dem Soundeffekt gleich am Anfang abspielen . Ich werde das hier gleich zu Beginn positionieren. Du musst nicht perfekt sein. Gleich hier unten. Ich werde genau dort klicken, wo es diesen einen Titel gibt. Ich klicke mit der rechten Maustaste und füge eine Benachrichtigung hinzu. Jetzt fügen wir diesen Partikeleffekt gleich hinzu, aber ich möchte zuerst einen Sound hinzufügen. Lassen Sie uns hier in diesem Flyout-Menü einen Sound abspielen. Jetzt können Sie sehen, dass wir diesen Ort hinzugefügt haben Notify. Sie können mit der linken Maustaste darauf klicken und ihn verschieben, bis er sich an einer anderen Stelle in der Animation befindet Wenn diese Option in unserem Detailbereich ausgewählt ist, können wir ihr einen Sound zuordnen. Dies wird ausgelöst, wenn wir abspielen und diesen Punkt in der Animation hier im Soundbereich des Detailfensters erreichen. Vergewissern Sie sich , dass Sie diese Benachrichtigung ausgewählt haben. Ich gebe Mario Jump ein. Ich habe Mario Big Jump oder Mario Jump. Ich werde mich hier einfach für Mario Jump entscheiden. Wir haben diese Soundacts gleich zu Beginn des Kurses importiert . Wenn Sie das nicht getan haben, gehen Sie zurück zum Anfang des Kurses und importieren Sie diese Dateien Dann verschiebe ich meinen Slider hier einfach ein bisschen weiter. Sie können hören, wie der Soundeffekt dort losgeht. Und ich klicke mit der rechten Maustaste und füge eine weitere Benachrichtigung hinzu. Lass mich einfach gleich hier weitermachen. Rechtsklick, Hinzufügen, benachrichtigen. Wir werden einen Partikeleffekt hinzufügen und unseren Partikeleffekt auswählen. Und drüben im Detailfenster geben Sie Su ein, und schon ist es dieser Sprung-Trail. Das möchte ich jetzt spielen. Wir sind noch nicht ganz fertig mit unserem visuellen Effekt, unserer Partikeleffekt-Benachrichtigung, die hier ausgewählt wurde. Drüben im Detailbereich müssen wir angeben, zu welchem Socket das gehört. Und das können wir herausfinden, indem wir zu unserem Skelettbaum zurückkehren. Denken Sie daran, es heißt VFX. Wenn du also einfach VFX eingibst und es alle verschiedenen Buchsen hier findet, dann haben wir es für VFX eingegeben Lass uns weitermachen und das speichern. Kehren Sie zu unserem Level-Editor zurück und spielen Sie. Und ich werde nur einmal die Leertaste drücken. Nachdem ich in das Viewport geklickt habe, sehe ich mein Partikel Ich habe keinen Soundeffekt gehört. Wenn Sie nun keine Partikel sehen oder keinen Ton hören, manchmal einfach die Platzierung dieser Partikel in der Timeline anpassen. Wenn Sie diese zu nah an der Vorderseite platzieren, hören Sie manchmal nicht den Soundeffekt, den Sie sich erhofft oder Sie sehen nicht den visuellen Effekt , den Sie sehen möchten. Ich werde einfach versuchen, den Mario-Soundeffekt hier ein wenig zu verschieben . Ich werde das erneut speichern. Lassen Sie uns das jetzt noch einmal versuchen , indem wir hier noch einmal an diesen Benachrichtigungen in unserer MM-Sprung-Animation zwischen den Kameraschnitten herumspielen in unserer MM-Sprung-Animation zwischen den Kameraschnitten Ich habe festgestellt, dass, wenn ich meinen dritten Audio-Frame mit meinen bald folgenden Partikeln abgespielt habe, sie sich hier ein wenig überlappen Ich habe beide problemlos ausgelöst Wenn du jetzt hineinspringst und spielst, kannst du sowohl den Partikeleffekt sehen als auch den Soundeffekt hören In Ordnung, Leute , das reicht für diesen. Mal sehen, wann der nächste ist. 9. 2D-Snap-Einstellebenen: Willkommen zurück. In nicht allzu ferner Zukunft werden wir hier einige Plattformen und einige Blöcke erstellen . Und wir werden unser Level vergrößern. Die Sache ist nur, wir die Plattformen und Steine, die wir erschaffen werden, innerhalb der Linie unseres Charakters platzieren wollen erschaffen werden, innerhalb der Linie unseres Charakters Um das Ganze einfacher zu machen, wollen wir es so gestalten, dass diese Blöcke und Plattformen, wann immer wir sie in unser Level ziehen , automatisch auf dem Reiseweg des Spielers mitlaufen . Wenn ich zum Beispiel einen Würfel aus dem Bereich „Schauspieler platzieren “ in meinem Level platzieren würde, könntest du sehen, dass ich dort und diesen wieder hier platziere, aber sie entsprechen nicht unbedingt meinem Charakter. Ich möchte es so gestalten, dass, wenn ich eine Plattform oder einen Block in mein Level ziehe , er sich genau in der Tiefe befindet , in der ich ihn haben möchte. In den nächsten beiden Videos werden wir einige Einstellungen aktivieren, um diesen Vorgang erheblich zu vereinfachen. Vertrauen Sie mir, das wird sich später auszahlen. Wir werden damit beginnen, einige zwei Snap-Setting-Ebenen zu aktivieren und einzustellen. Dazu springen wir in unsere Projekteinstellungen, die sich hier ganz oben rechts befinden. Einstellungen, Projekteinstellungen. Und in unseren Projekteinstellungen auf der linken Seite möchten wir nach unten scrollen, bis wir hier unter dem Editor zu der Stelle kommen , an der zwei D steht. Jetzt wollen wir hier in der Lage sein einige Snap-Layer einzurichten. Zuerst müssen wir sie einfach aktivieren, indem wir sie aktivieren Wenn ich hier zu meinem Level-Editor zurückkehren würde, können wir sehen, dass wir das jetzt genau hier in unserem Fenster haben , eine Zwei-D-Snap-Einstellung sowie die Möglichkeit, eine bestimmte Tiefe einzustellen. Im Moment haben wir nur den Vordergrund als Tiefe. Das alles wird in ein bisschen mehr Zeit Sinn machen, aber lassen Sie uns noch einmal in unsere Projekteinstellungen eintauchen. Wenn dies aktiviert ist, möchte ich einige Snap-Layer einrichten. Ich werde auf dieses Drop-down-Menü klicken und hier mehr als nur drei Indizes erstellen. Tatsächlich möchte ich fünf festlegen, also werde ich noch ein paar Mal auf diese Plus-Schaltfläche klicken , dann werde ich sie alle erweitern. Ich klicke einfach mit der rechten Maustaste hier, um dieses kleine Menü aufzurufen und alles zu erweitern. Okay, die erste Ebene, die ich hier einstellen möchte , wird Foreground heißen. Aber in Klammern werde ich Extrem setzen. Und ich werde das auf eine Tiefe von 1.000 setzen und das alles wird hier in Kürze Sinn machen. Im Gegensatz dazu, dass ich dir sage, was es bewirken wird. Ich werde dir zeigen, was es bewirken wird. Der nächste, Index eins. Das nenne ich einfach Vordergrund. Ich werde diese Tiefe hier auf 500 Indic Two setzen. Ich werde das auf Main setzen und die Tiefe auf Null belassen, Indic Drei, ich rufe zurück Ich werde die Tiefe auf minus 500 einstellen. Dann setze ich hier meinen letzten Wert auf vier um wieder extrem zu sein. Und wir werden die Tiefe hier auf minus 1.000 einstellen . Stimmt, all diese Werte eingestellt sind, wenn all diese Werte eingestellt sind, muss ich hier nichts speichern. Ich möchte sicherstellen, dass meine Snap-Achse entlang der Y-Achse verläuft. Jetzt Y, Y-Achse. Lass uns von hier rausspringen, zurück zu unserem Level gehen. Der Grund, warum ich es auf unsere Y-Achse setzen möchte , ist, dass, wenn ich unsere perspektivische Ansicht hier von der Perspektive in eine Ansicht von oben nach unten ändern von der Perspektive in eine Ansicht von oben nach unten und die Ansicht vergrößern würde, meine Spieler hier beginnen Der Schauspieler ist genau hier. Genau hier werden wir uns auf diese Art der Reise fortbewegen. Ich möchte sicherstellen, dass wir unsere Tiefenschichten genau hier entlang dieser Y-Achse festlegen . In Ordnung, lassen Sie uns zurück zu unserem perspektivischen Viewport springen. Und wenn ich jetzt einen einfachen Würfel in unser Level ziehen würde, würde es so aussehen, als ob nichts passiert wäre Mr. Wonder, ich dachte, Sie hätten gesagt, dass sie bis zu einer bestimmten Tiefe einrasten würden. Nun, das ist es. Denn lassen Sie mich diese einfach hier löschen, weil ich meine beiden D-Snap-Einstellungen nicht aktiviert habe. Genau hier oben rechts in meinem Viewport. Eigentlich muss ich das auf Jetzt klicken, wenn ich das in meiner Ebene platziere, egal wo ich es innerhalb der Ebene verschiebe, Sie können sehen, dass es auf meine aktuell gewählte Ebene, die sich im Vordergrund befindet , einrastet meine aktuell gewählte Ebene, die sich im Vordergrund befindet , Sie befinden sich alle innerhalb derselben Tiefe, wenn Sie so wollen, perfekt aufeinander abgestimmt Sie haben gesehen, wie ich dort in meinen Projekteinstellungen mehrere Tiefenebenen eingerichtet habe. Extrem im Vordergrund. Ändern Sie es auf die Standardeinstellung. Lass mich zurück in den Vordergrund gehen. Hier sind Vordergrund, extremer Hintergrund, das sollte Haupthintergrund und extremer Hintergrund heißen. Wie ändere ich diese wieder in meinem Level-Editor? Nun, wenn ich genau hier klicken würde wo Vordergrund extrem steht, können Sie sehen, dass ich Vordergrund und Hintergrund wählen kann. All die verschiedenen Ebenen , die ich gerade eingerichtet habe. Wenn ich sagen würde, extremer Hintergrund. Wenn ich jetzt einen Würfel in meinem Level platziere, kannst du sehen, dass er ihn in dieser, dieser Tiefe platzieren wird . Wenn ich das auf Main ändern würde, würde das genau zu meinem Reiseweg passen. Wenn ich das auf „Extrem im Hintergrund“ setzen würde , nicht auf „Extrem im Hintergrund“. Ich wollte extrem in den Vordergrund gehen. Dadurch wird es auf diese Tiefe gebracht, was es umso einfacher machen wird, unser Level mit Blöcken, Plattformen und Requisiten auszulegen auszulegen umso einfacher machen wird, unser Level mit Blöcken, Plattformen und Requisiten Ordnung, Leute, das wird alles für dieses Video tun Wir sehen uns im nächsten. 10. 2D-Übersetzungs-Widget: Willkommen zurück alle. Nun, im letzten Video haben wir in unseren Projekteinstellungen zwei Snap-Layer aktiviert. Und diese sind in unserem Viewport hier oben rechts zu sehen in unserem Viewport hier oben rechts Wir haben unsere beiden Snap-Layer eingerichtet Und wenn ich genau hier klicke, sind hier die verschiedenen Ebenen , die wir eingerichtet haben Übrigens, Sie können zu diesem Abschnitt der Projekteinstellungen gehen, wo wir sie einrichten, indem Sie hier klicken. Wir haben genau hier auf „ Gehe zu Ebenen bearbeiten“ geklickt, dann wirst du zum richtigen Abschnitt weitergeleitet, dem Bereich mit den zwei D unserer Projekteinstellungen, wo wir diese Snap-Ebenen eingerichtet haben Jetzt wollen wir hier noch etwas anderes machen und das ist, unser kombiniertes 2-D-Widget zum Übersetzen und Drehen zu aktivieren Das ist das Objekt, das Ziel dieses speziellen Videos, das funktioniert sehr gut in Verbindung mit diesen Snap-Layern. Ich werde das einfach hier überprüfen . Auch dies finden Sie in Ihrem Projektbereich Einstellungen zwei D. Und was das bewirken wird, zurück zu unserem Level-Editor zu springen , das wird eine weitere Schaltfläche hinzufügen, wenn Sie so wollen. Genau hier oben in unserem Viewport. Es wurde gerade das hinzugefügt, was es uns ermöglicht, Objekte in zwei D auszuwählen und zu verschieben oder zu drehen . Warum sollten wir das überhaupt auswählen wollen Nun, lassen Sie mich dieses Szenario vorführen. Wir platzieren einen Würfel in unserem Level, und im Moment habe ich ihn auf mein Hauptlevel Und du könntest auf eine Situation stoßen in der du versuchst, ihn auf deinem Level zu bewegen, und vielleicht bewegst du ihn versehentlich entlang der Y-Achse und jetzt ist er nicht mehr wie wir es beabsichtigt haben, Teil unseres Hauptweges Gibt es eine Möglichkeit, sich davor zu schützen? Ja, das gibt es. Wenn wir diese Option auswählen würden , die wir gerade aktiviert haben. Wenn wir jetzt ein bestimmtes Objekt auswählen, unser Widget für die Übersetzungsrotation sieht unser Widget für die Übersetzungsrotation etwas anders aus. Jetzt können wir es nur noch nach oben bewegen, oder in diesem Fall nach links und rechts. Wir können es auch drehen, indem wir einfach auf diesen grünen Pfeil klicken und es dann so bewegen. Jetzt kannst du sehen, dass es einrastet, wenn ich es drehe. Dabei werden unsere Einstellungen für das Angle Snap oder das Rotational Snap Wenn ich es also gleichmäßig bewegen und drehen möchte, kann ich es einfach ausschalten und jetzt den grünen Pfeil nehmen und ihn gleichmäßig drehen. Ebenso kann ich hier immer noch meine Movement Snap-Einstellungen einschalten . Es bewegt sich gerade in Schritten von 100, aber das dient nur zum Schutz davor, dass wir es wieder innerhalb der Y-Achse bewegen Noch einmal, hier in unseren Projekteinstellungen, den Projekteinstellungen, im Bereich zwei D, haben wir gerade unser kombiniertes Widget zum Übersetzen und Drehen mit zwei D aktiviert , indem wir das Häkchen bei „ Es gibt kein Mitspracherecht, keine Schaltfläche oder so“ angekreuzt Es gibt kein Mitspracherecht, keine Schaltfläche oder so Dadurch ist diese Schaltfläche einfach in unserem Darstellungsfenster verfügbar , sodass wir, wenn wir ein Objekt auswählen, es nur um unsere verschiedenen Achsen bewegen oder es so drehen können , indem wir nach dem grünen Pfeil greifen Das wird später ein sehr praktischer Trick sein , wenn wir Blöcke und Plattformen in anderen Objekten innerhalb unseres Levels platzieren Blöcke und Plattformen in anderen Objekten innerhalb unseres In Ordnung, Leute, das wird es für diesen Fall reichen. Wir sehen uns im nächsten. 11. Durch die Plattform springen (Teil #1): Willkommen zurück alle. In diesem Video ist es unser Ziel, eine Plattform zu schaffen durch die unsere Spieler springen oder fallen können. Und nur um dir zu zeigen, was ich meine, werde ich hier auf den Play-Button klicken. Ich habe eine Plattform zwischen den Videos hinzugefügt. Und wenn ich versuche, durch diese Plattform zu springen , kann ich das derzeit nicht tun. Und wenn ich auf der oberen Seite wäre, könnte ich sie momentan auch nicht herunterfallen. Also werden wir eine Plattform bauen, durch die wir springen und durch die wir auch fallen können . Um das zu tun, werden wir einen Plan erstellen. Und wir werden hier unten in unserem Inhaltsbrowser einen neuen Ordner erstellen , in den wir verschiedene Blueprints einfügen, die wir im Laufe dieses Kurses erstellen , wobei Ihr Plattformordner ausgewählt ist. Klicken wir mit der rechten Maustaste darauf Wir werden einen neuen Ordner hinzufügen. Wir werden ihn einfach Blueprints nennen. dieses Verzeichnis ausgewählt ist, können Sie unseren Pfad hier oben sehen Wir klicken mit der rechten Maustaste in eine leere Stelle erstellen eine neue Blueprint-Klasse Wir möchten die Schauspielerklasse wählen, weil dies ein Objekt ist, das wir in unserer Welt platzieren werden Wähle dieses Top. Dann werden wir aufgefordert, ihm einen Namen zu geben. Wir werden das BP Underscore Platform nennen. Unterstreichen. Ich rufe Jump Through an, einfach so Dann machen wir weiter und doppelklicken auf diesen Typen, um ihn zu öffnen. Nun, nur ein kurzer Tipp hier. Ich mag es nicht, wenn meine neuen Assets in einem separaten Fenster wie diesem geöffnet werden. Ich mag es, wenn sie hier oben automatisch geöffnet werden. Also werde ich hier draußen aussteigen. Gehen Sie zu Editor-Einstellungen bearbeiten. In unseren Editor-Einstellungen genau hier. Wenn wir unter der offenen Stelle des Asset-Editors landen, sollte er, wenn Sie so wollen, auf der Titelseite Ihrer Editor-Einstellungen stehen. Ich werde das auf das Hauptfenster umstellen. Dann kann ich hier schließen. Und wenn ich dann darauf doppelklicke, öffnet es sich ganz oben. Wenn Sie jemals etwas sehen, das besagt, dass reine Datenpläne handelt, können wir hier klicken um unseren vollständigen Blueprint-Editor zu öffnen Nun, das ist die Ansicht , die wir sehen wollen. Jetzt wurde standardmäßig unsere Registerkarte mit dem Ereignisdiagramm geöffnet . Hier werden wir die Codierung für diesen Blueprint vornehmen Ich möchte zunächst zu unserem Viewport springen, weil wir einige Komponenten hinzufügen werden , die wir sehen wollen Ordnung, jetzt ist die erste Komponente In Ordnung, jetzt ist die erste Komponente, die ich hier oben links unter dem Komponentenfenster hinzufügen möchte oben links unter dem , ein statisches Netz Obwohl ich ein beliebiges statisches Netz wählen könnte, werde ich einfach einen Würfel wählen. Ich werde hier also den Würfel verwenden, aber wisse, dass wir uns einen Namen geben können, sobald wir ihn hinzugefügt haben. Ich werde diese Plattform einfach anrufen. Wir könnten das von einem Würfel zu einem anderen statischen Netz ändern . Ich meine, du könntest das wie den Stuhl aussehen lassen , wenn du das wirklich willst , oder irgendein anderes statisches Netz, das du willst. Aber der Würfel wird für uns gut funktionieren , weil wir ihn so dimensionieren und formen werden, dass er ziemlich langweilig aussieht, aber auch hier können Sie nach Herzenslust aufpeppen Ich werde die Skala hier so ändern, dass sie drei im X ist, im Y, ich werde sie auch auf fünf ändern Dann werde ich den Wert in Z so ändern, dass er etwas dünner ist, sodass er 0,2 ist. Okay, dann füge ich einige Kollisionen auf der Ober- und Unterseite dieser Plattform hinzu. Okay, also werde ich unter der Werbekomponente auftauchen. Ich möchte noch einmal nach unten scrollen und Box-Kollisionen hinzufügen Also mach weiter und wähle das aus. Es wird mich veranlassen, dem sofort einen Namen zu geben, und ich werde es Kollision nennen. Beachten Sie nun, dass dieser Einzug genau hier ist und ich kann auf dieses Dreieck klicken, um es ein- oder auszublenden Dies zeigt eine Beziehung, die zusammenhängt. Im Moment ist dieser Box Collider an mein Plattformnetz angeschlossen Wenn ich die Plattform bewegen würde, würde die Kollision, der Box Collider mitgehen Ich könnte ihn jedoch unabhängig von der Plattform selbst bewegen unabhängig von der Plattform selbst Ich werde die Größe ändern, indem ich diese Kollisions-Top-Komponente im Detailbereich ausgewählt Ich werde den Maßstab ändern. Ich werde einfach hier auf den Zurück-Pfeil drücken. Es erbt diese relative Skala von der Plattform. Aus diesem Grund hat es diese speziellen Skalenwerte. Ich setze den Wert auf 11,1 zurück und setze meinen Standort hier auf einen Z-Wert von 100 Jetzt können Sie sehen, dass es oben ist. Ich werde hier die Größe der Box ändern. Das ist die Größe, die Ausdehnung dieser Box Anstelle des Standardwerts 302-30-2302 habe ich Ich werde 50 mal 50 mal 50 machen. Was wir jetzt haben sollten, ist ein Box Collider, der der Name schon sagt, genau oben liegt hier, wie der Name schon sagt, genau oben liegt, Collision Top Jetzt werden wir unten noch einen davon hinzufügen unten noch einen davon Wir werden also rechten Maustaste auf unser Collision-Oberteil klicken. Wir werden es einfach duplizieren und ich werde es Collision Bottom nennen . Das Einzige, was ich mit diesem machen werde , ist den Wert, den Z-Wert unseres Standorts von 100 auf minus 100 zu ändern den Z-Wert unseres Standorts von . Und dann drücken Sie die Eingabetaste. Wir haben einen oben und wir haben einen unten. ich mit unserer Kollisionsoberseite hätte machen sollen , bevor ich sie dupliziert habe, weil dann auch die Eigenschaften dupliziert worden wären Was ich mit unserer Kollisionsoberseite hätte machen sollen, bevor ich sie dupliziert habe, weil dann auch die Eigenschaften dupliziert worden wären, ist, einen Parameter in unserem Detailbereich zu setzen Ich werde es zuerst hier unten platzieren. Da ich das im Detailbereich ausgewählt habe, wollen wir in den Kollisionsbereich kommen und hier die Kollisionsvoreinstellung ändern. Klicken Sie auf dieses kleine Drop-down-Menü. Standardmäßig ist es so eingestellt, dass es alle dynamischen Elemente überlappt. Ich möchte das so ändern, dass es benutzerdefiniert ist. Und das wird alle Kollisionskanäle ändern oder besser gesagt, sie beleuchten, sodass wir sie nach unseren Wünschen ändern können Ich werde es für alles auf Ignorieren setzen , außer wir machen es so , dass unsere Spielfigur, unser Charakter, als Bauernobjekt betrachtet wird Wir werden das so einstellen, dass es sich überschneidet, und du wirst sehen, warum wir hier etwas weiter oben ein etwas weiter oben benutzerdefiniertes Kollisions-Preset haben Wir ignorieren Kollision bei jedem anderen Objekttyp außer der Spielfigur, das ist unser Charakter Wir werden eine Überlappung feststellen. Wir wollen das also nicht nur für Kollision unten, sondern auch für die Kollision oben tun. Wie bei Collision Top werden wir die Kollisionsvoreinstellung so ändern , dass sie benutzerdefiniert ist. Wir werden es so einstellen, dass Kollisionen mit jedem anderen Objekttyp ignoriert werden, außer dass wir eine Überlappung durch die Figur erkennen werden. 12. Durch die Plattform springen (Teil #2): Ordnung, lasst uns aus unserem Viewport-Tab in unser Event-Diagramm springen unserem Viewport-Tab in , damit wir ein Skript hinzufügen können , das es unserem Charakter ermöglicht, durch die Unterseite der Plattform zu springen Und ich werde unsere Kollisionskomponente genau hier auswählen Kollisionskomponente genau hier Wir klicken mit der rechten Maustaste darauf und fügen ein Ereignis hinzu. Was wir tun wollen, ist zu erkennen, wenn unser Charakter die untere Komponente der Kollision überlappt die untere Komponente der Kollision wird dieser Knoten bei der Überlappung der Komponente am Anfang und der Name der Komponente genau hier hinzugefügt Überlappung der Komponente am Anfang und der Name der , Kollisionsunterseite Wir werden die Strg-Taste gedrückt halten und Mausrad vergrößern, um das Bild zu vergrößern. Ich werde auch gleich ein weiteres Ereignis hinzufügen. Wir wollen erkennen, wann wir beide beginnen, diesen Kollisionsboden zu überlappen, und wann wir damit enden, diesen Kollisionsboden zu überlappen Also können wir hier ein weiteres Ereignis hinzufügen. Wenn ich unsere Kollisionsunterseite auswähle, könnte ich mit der rechten Maustaste klicken und ein Ereignis hinzufügen. Aber ich möchte auch eine andere Möglichkeit aufzeigen, Ereignisse für verschiedene Komponenten hinzuzufügen . Wenn die Kollisionsunterseite ausgewählt ist. Scrollen Sie im Detailbereich Hier finden Sie auch eine Liste verschiedener Ereignisse. Ich werde End Overlap machen. Wir werden diesen Knoten auch zu unserem Diagramm hinzufügen. Und ich werde sie so positionieren. Okay. Ich möchte erkennen, wann der andere Akteur die untere Komponente der Kollision überlappt Wir wollen etwas tun, wenn unser Spielercharakter der andere Akteur ist, der diese Kollisionsunterseite überlappt oder am Ende überlappt Also schreibe ich, klicke auf ein leeres Feld und hole mir den Spielercharakter Dadurch wird unser Spielercharakter zurückgegeben , als der wir spielen. Und ich werde den anderen Schauspieler hier aus unserer Anfangs-Überschneidung herausziehen . Und wir werden das Gleichheitszeichen eingeben und schauen, ob der andere Akteur, der den Kollisionsboden überlappt hat , diesem entspricht, also, ist es unser Spielercharakter? andere Akteur, der den Kollisionsboden überlappt hat , diesem entspricht, also, ist es unser Spielercharakter Wenn ja, werden wir einen Verzweigungsknoten hinzufügen. Ich werde das B wie bei einem Zweig gedrückt halten und mit der linken Maustaste klicken, um einen Zweigknoten einzufügen. Und das wird unsere Bedingung sein, dass wir überprüfen, ob etwas unseren Kollisionsboden überlappt Wir werden nachschauen, war es der andere Schauspieler? Waren sie gleichwertig? Wenn es wahr wäre, werden wir unsere Plattformkomponente Drag & Drop wie folgt in Ihr Diagramm einfügen. Dann werden wir unserer Plattform sagen, dass sie das tun soll, indem wir das Ganze abziehen, indem wir die Kollision von Texteinträgen aktivieren. Setze das so ein und wir wollen unsere Kollision so einstellen unsere Plattform keine Kollision hat. Nur um ein Backup zu machen und dir genau zu zeigen , was zur Hölle hier passiert, wenn ich unsere Plattform auswähle und weiter nach unten scrolle, hat unsere Plattform auch einige Kollisionseinstellungen Im Moment ist sie so eingestellt, dass sie alle Dynamiken blockiert , und sie ist so eingestellt, dass sie alle Arten von Objekten blockiert, einschließlich unserer Spielfigur. Es wird es blockieren Was wir hier zu Beginn der Überschneidung sagen wollen , ist, wenn es unser Spieler ist, der sie überschneidet, werden wir dieser Plattform sagen, dass es keine Kollisionen geben soll Es geht im Grunde darum, diese Kollisions-Voreinstellung von „Nur dynamisch blockieren“ auf „Keine Kollision“ umzuschalten dynamisch blockieren“ auf „Keine Und du kannst sehen, dass, wenn es hier auf „ Keine Kollision“ gesetzt ist, es unsere Kollision komplett deaktiviert und die Tatsache ignoriert, dass es hier unten nicht so aussieht , als würde es unsere Spielfigur passieren lassen Solange hier die Option Kollision aktiviert ist, also keine Kollision, wird es unserem Charakter tatsächlich ermöglichen, direkt hindurchzugehen Ich werde das zurücksetzen , indem ich hier auf diesen Wert klicke und zurück gehe, um alle Dynamiken zu blockieren. Wenn ich hier weitermache, werde ich einfach diesen Knoten kopieren. Dieser Knoten und dieser Knoten. Ich halte die Taste gedrückt, um diese drei auszuwählen. Wir werden Steuerung C ausführen, um Steuerung V zum Einfügen zu kopieren. Ich werde sie so einbinden, wenn unser Spielercharakter dem anderen Schauspieler ebenbürtig ist. Wenn wir unsere Überschneidung beenden, wird die Plattform hier unten das Ziel sein. Wir werden unsere Kollision hier so einstellen , dass sie kollisionsfähig ist. Dadurch wird die Kollision im Grunde wieder aktiviert , wenn wir damit enden, den Kollisionsboden zu überlappen Ordnung, wenn das alles erledigt ist, können Sie das Video hier pausieren, falls Sie sich das alles ansehen möchten Ich klicke mit der linken Maustaste und ziehe mit der Maus herum. Ich werde auf die C-Taste tippen. C ist im Kommentar, und ich nenne das meinen Sprung nach oben durch Plattform, Plattform, Skript. Lassen Sie uns hier oben auf die Schaltfläche zum Kompilieren drücken, um sicherzugehen , dass unser Code gut aussieht und dass er auch gut aussieht. Dann lass uns weitermachen und das auch speichern. Lass uns eines davon in unser Level ziehen und schauen ob wir durch unsere Plattform nach oben springen können. Los geht's. Zurück zu unserem Level, ich lösche diesen temporären Würfel , dessen Größe ich vergrößert habe. Ich werde das in mein Level aufnehmen. Du kannst sehen, es wird es direkt in meiner Hauptebene platzieren , genau hier. Weil ich gerade meine beiden D-Snap-Einstellungen aktiviert habe. Ich klicke einfach hier, um direkt zu meinem Bewegungs- und Rotations-Widget zu gelangen. Verschiebe es ein wenig über meinen Charakter. Wie. Also klicke ich auf Play, ich versuche zu springen. Und da haben wir's, wir können da direkt hindurchspringen. Okay. Als Nächstes brauchen wir eine Möglichkeit, nachzuverfolgen, ob sich unser Spieler auf der Plattform befindet. Damit wir dann etwas auf unserem Controller oder unserer Tastatur eingeben können , damit unser Spieler auf der Plattform herunterspringt. Um das zu tun, springen wir wieder auf unsere Plattform zurück. Springe noch einmal durch Blueprint. Ich werde hier klicken und mich ein wenig nach unten bewegen. Ich möchte etwas tun, wenn unsere Spieler hier mit diesem Top-Collider kollidieren, werde ich eine boolesche Variable ein Gehen wir in mein Blueprint-Panel, unter Variablen. Wir werden hier auf diese Plus-Schaltfläche klicken. Und wir werden eine brandneue Variable mit dem Namen is on top of platform Question Mark erstellen Namen is on . Eine boolesche Variable enthält wahre oder falsche Informationen. Und wenn ich hier kompiliere, können wir sehen, dass diese Option standardmäßig deaktiviert ist Das heißt, standardmäßig wird es falsch sein. Jetzt werden wir diese boolesche Variable in Kürze verwenden , aber wir werden zu unserem Ereignisdiagramm zurückkehren Wir werden unser Kollisionsoberteil auswählen. Ich werde mit der rechten Maustaste klicken. Wir werden das Ereignis für den Fall hinzufügen, dass wir anfangen, es zu überlappen Außerdem werden wir bei der Überlappung des Ereignisses erneut mit der rechten Maustaste auf die Kollision oben klicken Überlappung des Ereignisses erneut mit der rechten Maustaste auf die Kollision oben Das wird in vielerlei Hinsicht ähneln, was wir oben haben. Tatsächlich werde ich hier einige Knoten von oben stehlen . Ich werde die Strg-Taste gedrückt halten und Linksklick, Linksklick, Linksklick, Linksklick und Linksklick. Wir haben diese fünf genau hier ausgewählt. Ich werde mit der rechten Maustaste darauf klicken und das Steuerelement duplizieren. D würde das Gleiche tun, aber hier werde ich sie duplizieren. Ich werde sie alle mit Control Z dorthin verschieben. Ich hatte tatsächlich auch eine davon hier unten ausgewählt. Klicken Sie bei gedrückter Maustaste auf diese fünf. Ich werde Steuerung D zum Duplizieren verwenden. Und lassen Sie uns diese direkt an die richtige Position hier unten bringen. Sie so anschließen. Alles, was wir mit diesem Skript machen werden, ist, diese Bullion-Variable ein- oder auszuschalten diese Bullion-Variable ein- oder auszuschalten . Wir wollen es einstellen Wenn ich das in mein Diagramm ziehe und loslasse, wird es sagen, willst du diesen Wert bekommen oder willst du ihn setzen? Wir wollen den Wert dieser Variablen festlegen , wenn wir diese Kollision überlappen Wir wollen das auf wahr setzen, wir sind ganz oben auf der Plattform Umgekehrt wollen wir sagen, nein, wir befinden uns nicht mehr auf dieser Plattform, wenn wir die Kollision mit dem höchsten Kollisionsvolumen beendet haben, wenn wir mit der linken Maustaste klicken und das in das Set ziehen mit der linken Maustaste klicken und das in das Set die Kollision mit dem höchsten Kollisionsvolumen beendet haben, wollen wir sagen, nein, wir befinden uns nicht mehr auf dieser Plattform, wenn wir die Kollision mit dem höchsten Kollisionsvolumen beendet haben, wenn wir der linken Maustaste klicken und das in das Dieses Skript eignet sich gut für den nächsten Abschnitt , den wir hier skriptweise schreiben werden. Klicken Sie also mit der linken Maustaste und ziehen Sie, tippen Sie auf die Und wir werden diesen Kommentar als Startschuss verwenden, um festzustellen, ob der Spieler sich auf der Plattform befindet. Ordnung, lassen Sie uns weitermachen und das sofort kompilieren und speichern. Ordnung, als Nächstes wollen wir zurück zu unserem Haupteditor gehen und wir werden unter die dritte Person fallen und wir werden unter die Eingabe kommen. Dies ist das neue Eingabeaktionssystem in Unreal implementiert ist, und wir werden eine neue Eingabeaktion hinzufügen Jetzt werde ich auf diesem bestehenden System aufbauen , damit wir das Rad nicht neu erfinden müssen Tatsächlich werde ich in diesen Aktionsordner klicken. Hier sind einige Eingabeaktionen , die einige Eingabeereignisse auslösen, wie unser Sprungereignis. Und ich werde hier in eine leere Stelle klicken. Und wir werden uns darauf einlassen. Wir werden eine neue Eingabeaktion hinzufügen. Wenn wir das tun, werde ich diese IA in Input Action Underscore umbenennen diese IA in Input Action Underscore Ich werde es Player Down nennen. Ich werde auf dieses Asset doppelklicken, um es zu öffnen. Wir definieren hier eine Eingabeaktion. Ich werde jetzt nicht auf die Einzelheiten all dessen eingehen, weil das ganze System ziemlich umfangreich ist. Wir werden unseren Wertetyp vorerst als Stier belassen . Ist es im Wesentlichen passiert oder nicht? Jetzt klicken wir unter Triggern auf diese Plus-Schaltfläche und klicken dann auf dieses kleine Drop-down-Menü. Und wir werden einfach überprüfen, ob ein bestimmter Eingang gedrückt wurde , der auf Digital Bull eingestellt ist. Klicken Sie hier auf Speichern. Und das ist alles schön und gut. Als Nächstes werden wir hier zu unserem Haupteditor zurückkehren. Und wir werden einen Ordner wieder hochspringen. Wir befinden uns derzeit also in Eingabeaktionen durch Dritte. Wir werden zu diesem Eingabeordner zurückkehren. Ich kann auch darauf zugreifen, indem ich hier klicke. Und wir werden standardmäßig auf dieses I MC doppelklicken. Und hier werden all die verschiedenen Eingabeaktionszuordnungen für unseren Charakter aus der dritten Person eingerichtet , damit unser Charakter aus der dritten Person Hier ist nun unsere Liste der Zuordnungen. Derzeit ist unsere Sprungaktion der Leertaste oder der unteren Taste auf dem Gamepad zugeordnet der Leertaste oder der unteren Taste auf dem Gamepad Das ist der Xbox-Controller mit Tasten . Das werde ich wieder zusammenrollen. Wir werden gleich hier ein neues Mapping hinzufügen , indem wir auf diese Plus-Schaltfläche klicken. Sobald wir das getan haben, haben wir diesen Eintrag hinzugefügt Klicken Sie auf dieses Drop-down-Menü. Wir werden diesen neuen Input hinzufügen, Action Player down. Jetzt müssen wir das gegebenen Eingaben auf einer Tastatur oder einem Controller zuordnen. Was ich tun werde, ist auf dieses kleine Tastatursymbol zu klicken . Und sobald ich das mache, wird es diese orange Farbe annehmen. Ich drücke einfach die Taste auf der Tastatur. Und dabei wird es das als Eingabe eingeben. Das ist großartig für eine Tastatur. Ich werde das auch auf einem Controller machen. Ich werde auf diese Plus-Schaltfläche klicken. Es wird diesen Eintrag genau hier hinzufügen. Wir können den Rest dieser Einträge hier zusammenfassen. Klicken Sie einfach hier auf diese Pfeile. Ich werde auf dieses Tastatursymbol drücken. Jetzt werde ich nur noch auf den linken Daumenstick eines Controllers drücken , den ich angeschlossen habe Dadurch wird überprüft, ob mein Gamepad, linker Thumbstick, irgendeine Art von Eingabe entlang der Y-Achse hat Das ist im Wesentlichen mein linker Daumenstick nach oben oder unten. In Ordnung, wir werden das auch speichern. Nun, nur um klarzustellen , dass dies die Eingaben sind , die unser Charakter verwendet, IMC-Standard Wenn ich in meinen Charakter aus der dritten Person springe , musst du das nicht tun Ich zeige es dir nur. Gehe hier zurück zu meinem Event-Graph-Tab. Dies ist unser Input-Mapping-Kontext. Und hier ist unser IMC-Standard-Asset , das unser Third-Person-Charakter verwendet Lass dich einfach wissen, wo das alles ins Spiel kommt. Das hängt alles von unserem Charakter aus der dritten Person ab. Alles klar, jetzt, wo das alles erledigt ist, gehen wir zurück zu unserer BP-Plattform. Spring durch, wir werden hier ein bisschen weitermachen. Mausrad runter, Rechtsklick runter. Ich klicke mit der rechten Maustaste in ein leeres Feld und gebe Spieler runter ein. Hier ist mein Eingabe-Action-Event für Player down. Das ist dieses Event , das ich gerade erstellt habe. Es wird ausgelöst, indem ich die S-Taste oder die Taste nach unten auf meinem linken Thumbstick Ich möchte den Wert dieses Booleschen Werts überprüfen dieses Booleschen Werts Haben wir die Plattform im Griff oder nicht? Wenn ich das per Drag-and-Drop in unser Diagramm ziehe, möchte ich es dieses Mal haben. Wir wollen den Inhalt der Variablen , die ich hier herausziehen werde , abrufen und einen Verzweigungsknoten einfügen, wenn wir anfangen, das einzugeben, das heißt, wir drücken zunächst die S-Taste oder drücken auf unserem linken Thumbstick nach unten, wir werden es unserer Plattform mitteilen Lassen Sie uns hier mit unserer Plattform sprechen, indem wir einen Verweis auf unser Plattform-Mesh hineinziehen einen Verweis auf unser Plattform-Mesh hineinziehen Wir werden mit dieser Plattform sprechen , dann ziehen wir das Ganze raus und geben hier unten Set Collision Enabled Der neue Typ wird keine Kollision sein. Wir sagen im Grunde, dass wir auf unserem linken Daumenstick S oder nach unten drücken Wir werden nachschauen, ob wir oben auf der Plattform sind? Wenn das stimmt, werden wir sagen, dass die Kollision so abläuft. Lassen Sie uns mit der linken Maustaste klicken und ziehen, auf die Taste C tippen und das Ganze so nennen, dass wir es Spielern ermöglichen , über das Plattformskript nach unten zu gelangen. Lassen Sie uns das kompilieren, sicherstellen, dass es startklar und speichern wir dann Moment der Wahrheit. Wir werden das spielen, aber Sie werden ein Problem feststellen. Ich spiele, indem ich in den Viewport klicke. Ich drücke die Basisleiste, um durch den Viewport zu springen Ich tippe auf den SK. Es scheint nicht zu funktionieren. Das liegt daran, dass uns noch eine Sache fehlt. Das ist das Ding in einem Bauplan der Schauspielerklasse. Diese Eingabeaktionen werden standardmäßig nicht funktionieren. Sie würden standardmäßig innerhalb eines Charakters aus einer dritten Person funktionieren , aber nicht in einem Bauplan der Schauspielerklasse Wie bringen wir das also dazu, solche Eingaben zu erkennen? Nun, wir müssen zu unseren Klassenstandards unserer Jump-Through-Plattform übergehen unseren Klassenstandards unserer Jump-Through-Plattform Hier unten im Detailbereich, wo es „Eingabe“ heißt, werden wir „Automatisch“, „Eingaben empfangen“ von „ Deaktiviert“ auf „Spieler Null“ umstellen Eingaben empfangen“ von „ Deaktiviert“ auf „Spieler Null Das sind im Grunde wir, der Spielercharakter. Lassen Sie uns das noch einmal kompilieren. Spring wieder rein und spiel. Jetzt springe ich durch und wenn ich auf die S-Taste tippe, gehe ich runter. Lassen Sie uns das auch auf dem Controller testen. Ich springe hoch und drücke auf meinen linken Daumenstick nach unten. Und da scheint es gut zu funktionieren. Und da habt ihr es, Leute, einen Sprung durch eine Plattform, wie ich es gerne nenne. Da, Alter, ab für diesen. Wir sehen uns im nächsten. 13. Bewegliche Plattform: Willkommen. In diesem Video werden wir eine bewegliche Plattform bauen. Lassen Sie uns jetzt gleich zur Sache kommen. Um hier anzufangen, werden wir von unserer BP-Plattform erben und das, wir im letzten Video erstellt haben, durchgehen, nur um die Dinge ein bisschen schneller und einfacher zu machen Suchen Sie also diese Plattform, wir klicken mit der rechten Maustaste darauf und erstellen daraus eine Child-Blueprint-Klasse Wenn wir das tun, werden wir aufgefordert, ihr einen Namen zu geben Also werde ich das einfach BP Platform Mover nennen . Dann doppelklicke ich darauf, um es zu öffnen. Nun, da wir das zu einem untergeordneten Element unserer Jump-Through-Plattform gemacht haben, können wir sehen , dass das die Elternklasse oben rechts ist . Das bedeutet, dass sie bereits alle Komponenten enthält , die bereits auf unserer Plattform eingerichtet wurden . Springt durch. Außerdem wird es dasselbe Skript enthalten. Wenn wir zum Event Graft übergehen, werden wir sehen, dass dieses Skript alles vom Elternteil erbt Das ist also schon so eingerichtet, dass man durch die Tabelle springen kann. Wir können durch diese Plattform springen. Es bewegt sich jedoch nicht so, wie wir es gerne hätten. Das ist es, womit wir uns in diesem Video befassen werden. Um es für uns ein bisschen einfacher zu machen , können wir eine Mover-Plattform anhand einer statischen Sprung-Plattform identifizieren eine Mover-Plattform anhand einer statischen Sprung-Plattform Ich gehe zurück zu unserem Viewport hier und wähle unsere Plattform Und ich werde einfach das damit verbundene Material ändern das damit verbundene Material Sie können das gegen Mario-Material oder etwas Ähnliches ändern . Nur um das deutlich zu machen, werde ich hier unter den Materialien Blau eingeben. Ich werde es auf dieses Hellblau ändern. Und dann werde ich eines davon auch in unser Level ziehen , damit wir es leicht als Plattform identifizieren können. Ordnung, lassen Sie uns zurück zu unserem Platform-Mover-Blueprint springen unserem Platform-Mover-Blueprint Lassen Sie uns ein paar Variablen erstellen, damit wir hier drüben im My Blueprint-Panel beginnen Die erste Variable, die wir erstellen werden, ist LOC. Das ist ein Low für den Start mit dem Standort. Das wird eine Vektorvariable sein. Es wird hier den Startpunkt unserer Mover-Plattform bestimmen hier den Startpunkt unserer Mover-Plattform Und dann klicke ich mit der rechten Maustaste darauf und ich werde dieses Steuerelement duplizieren Plus D ist ein Hotkey. Dies wird Lo End the Endpoints heißen , wobei unser Standort, Ende ausgewählt ist. Es gibt ein paar Kästchen, die ich hier ankreuzen werde. Die erste ist Instance Editable. Wenn wir das überprüfen, wird es auch auf diesen Augapfel klicken Sie machen das Gleiche, im Grunde macht das eine das andere und so weiter Und wir werden auch das Three-D-Widget zeigen. Jetzt werde ich das überprüfen und dann werde ich meinen Blueprint kompilieren, damit ich uns einen Standardwert geben kann Drüben im Detailbereich werde ich meinen lokalen Z-Endwert standardmäßig auf 200 ändern standardmäßig auf 200 Der Grund, warum ich das gemacht habe, ist, dass ich jetzt, wenn ich mir diesen Blueprint in unserem Level-Editor hier ansehe, dass ich, wenn er ausgewählt ist, diese Raute am Ende sehe Dies ist das Drei-D-Widget, das ich gerade hier in unserem Platform Mover aktiviert habe, indem ich diese Variable ausgewählt habe und die Option Instanz editierbar ausgewählt habe und drei D-Widgets angezeigt Der Grund, warum es sich hier 200 unwirkliche Einheiten über der Basis unserer Plattform befindet über der Basis unserer Plattform , ist, dass ich den Wert auf 200 gesetzt habe Beachten Sie, dass dieses Ende der Position auch hier im Detailbereich angezeigt wird auch hier im Detailbereich angezeigt Ich könnte die Position ändern indem ich einfach darauf klicke und es ziehe Und Sie sehen, während ich das mache, ändert sich auch die Z-Position genau hier Dies wird den Endpunkt der Bewegungen unserer Plattformen definieren Endpunkt der Bewegungen unserer Plattformen Es wird hier beginnen, es wird dort enden. Dieser Startpunkt wird im Grunde unser relativer Startpunkt sein , genau dort. Ordnung, wenn das alles erledigt ist, gehen wir in unser Event-Diagramm und beginnen mit der Erstellung des Skripts. Klicken Sie mit der rechten Maustaste, ziehen Sie hier zu einem leeren Diagramm und klicken Sie dann mit der rechten Maustaste in eine leere Stelle. Und wir werden nach einem Zeitleistenknoten suchen . Wir werden diesen Zeitleistenknoten Plattformbewegungen nennen Zeitleistenknoten Plattformbewegungen Ein Zeitleistenknoten ermöglicht es uns, den Wert einer Variablen im Laufe der Zeit zu ändern . Dieser Knoten ist insofern besonders, als wir darauf doppelklicken können , um eine Zeitleiste zu bearbeiten. Ich werde darauf doppelklicken, und wenn ich das tue, habe ich einen neuen Tab geöffnet hier können wir einen Track hinzufügen, was ich jetzt tun werde. auf diese Plus Track-Schaltfläche klicken, möchten wir einen Flow-Track hinzufügen. Das heißt, wir werden einen Dezimalwert im Laufe der Zeit ändern und Sie werden gleich sehen , warum wir das tun werden. Ich werde aufgefordert, diesem Track einen Namen zu geben, also nenne ich ihn Bewegung. Ich werde die Länge bei 5 Sekunden belassen, aber jetzt muss ich. Fügen Sie unserer Zeitleiste hier einige sogenannte Keyframes hinzu. Jetzt kann ich mit der rechten Maustaste hier reinklicken und das hin und her ziehen. Verwenden Sie ein Scrollrad , um die Ansicht zu vergrößern und zu verkleinern. Aber ich werde einige Keyframes hinzufügen. Das sind einige Zeitpunkte, an denen ich nicht nur einen Zeitwert, sondern auch einen Wertwert definieren möchte . Ich klicke mit der rechten Maustaste und wir fügen unserer Timeline einen Schlüssel hinzu , der blau ist. Wenn Sie mit der rechten Maustaste klicken, wird das getan. Oder wenn Sie die Umschalttaste gedrückt halten und dann mit der linken Maustaste klicken, funktioniert das auch. Ich wollte hier nur drei Punkte hinzufügen. Im Moment spielt es keine Rolle, wo Sie sie platzieren, denn wir werden jeden von ihnen auswählen und dann eine Zeit in einen Wert eingeben Wählen Sie hier Ihren ersten aus. Ich setze die Zeit auf Null und den Wert auf Null, den Beginn unserer Zeitleiste. Im Wesentlichen werde ich diesen letzten auswählen , diesen letzten genau hier. Ich werde die Zeit auf fünf und den Wert auf Null setzen . Jetzt merke ich, dass es hier einfach vom Rand der Grafik abgesprungen ist. Machen Sie sich darüber keine Sorgen Und dann wähle ich hier unseren mittleren aus. Ich werde die Zeit auf 2,5 und den Wert auf eins setzen. Wenn ich jetzt die Ansicht verkleinere, kann ich alle drei Schlüsselbilder, diese drei Punkte, sehen . Ich klicke einfach mit der linken Maustaste und ziehe um sie herum , um sie alle auszuwählen. Und dann wähle ich diese Pfeile aus, um sie einzurahmen, diese Pfeile genau hier. Nun, das wird die Bewegung unserer Plattform im Laufe der Zeit darstellen . Wenn Sie daran denken, wie ich sage, dass sich eine Tür öffnet, öffnet sie sich und schließt sich wieder Wir möchten, dass sich unsere Plattform in einer Bewegung entspannt und dann zur nächsten Bewegung von einer Seite zur anderen Nicht so starr, wenn man so will. all diese Optionen ausgewählt sind, klicke ich mit der rechten Maustaste und setze meine Key-Interpolation auf Auto entsteht diese glatte Kurve, Dadurch entsteht diese glatte Kurve, bei der wir in eine Seite unserer Bewegung eintauchen und dann nachlassen. Okay, was macht das hier? Nun, das gibt uns, zurück zu unserer Registerkarte „ Ereignisdiagramm“ gehen, eine Bewegungsausgabe, eine Float-Ausgabe, wo wir den sich ändernden Wert dieser Variablen ausgeben werden den sich ändernden Wert dieser Variablen Beachten Sie nun, dass sich der Wert, den diese Ausgabe ausgeben wird , im Laufe von 5 Sekunden ändern Hier wird es bei einem Wert von Null beginnen . Dann wird es im Laufe von zwei und zwei Sekunden auf einen Wert von eins steigen, dann wird es wieder auf Null gehen. Der Grund, warum wir 0-1 auf Null gehen werden , ist, dass wir das nutzen werden, um die Bewegung unserer Plattform voranzutreiben Lassen Sie uns hier aus dem Komponenten-Panel einen Verweis auf unsere Plattform hier aus dem Komponenten-Panel Das ziehen wir mit rein. Wir wollen das Ganze herausziehen, indem wir sagen, relative Position festlegen. Wir werden den relativen Standort unserer Plattform im Laufe der Zeit ändern . Jetzt müssen wir diesem Ort einen neuen Standort zuweisen. Wie werden wir das feststellen? Nun, es gibt einen Knoten, den wir verwenden können, der p-Vektor genannt wird. Ich schreibe, klicke auf eine leere Stelle und tippe P-Vektor ein. Was wir tun werden , ist die Bewegungsausgabe unserer Timeline mit dem Alpha-Wert zu verbinden. Und dann werden wir den Startpositionsvektor in das A und den Ortsendvektor in das B einfügen Dann werde ich beschreiben, wie das alles funktioniert. Wenn Sie sich den Header ansehen, bewege ich die Maus nur über den Header dieses Knotens Es besagt, dass wir linear zwischen der Position und der Position interpolieren werden, diesen Vektorpositionen, die auf dem Alphawert basieren So funktioniert es. Wenn dieser Alpha-Wert , dieser Bewegungs-Float, der Wert Null ist, befinden wir uns ganz an unserer Startposition, während er Wert von Null auf einen Wert von Eins übergeht. Wir werden uns schrittweise an unseren Standort bewegen. Wir werden auf der Grundlage dieses sich ändernden Werts von A nach B , von 0 bis 1 über Null bis Eins gehen Dort werden wir den neuen Standort unserer Plattform aktualisieren Wir werden den neuen Standort unserer Plattform aktualisieren. Jetzt werden wir das durchgehen und wie werden wir das machen? Nun, wir werden das tun, indem wir zu unserem Zeitplan für die Plattformbewegung zurückkehren unserem Zeitplan für die Plattformbewegung Hier. Hier oben haben wir einen Button, mit dem wir diese Zeitlinie durchgehen können. Wir beginnen an unserem A-Standort, unserem Startort, und gehen zu unserem B-Standort über, wenn das ein Wert von eins ist. Zurück zu unserer A-Position, wenn dies ein Wert von Null ist. Und dann wieder von vorne anfangen. Und dann innerhalb von 5 Sekunden wieder von vorne starten . So funktioniert das. Eine weitere nette Funktion der Timeline ist dass sie genau hier oben diese Schaltfläche hat, Autoplay Wir werden das vorübergehend einschalten . Wenn wir zu unserem Ereignisdiagramm gehen, können wir sehen, dass sich das Symbol auch hier befindet. Autoplay in Loop, wir müssen eigentlich keinen Event-Knoten anschließen , damit das alles funktioniert Ich werde kompilieren und speichern. Wenn ich jetzt in mein Level springe, spiele ich das und du wirst feststellen, dass es sich von hier an unser Standort-Ende bewegt. Ich bin da einfach ein bisschen übersprungen. Lass mich das einfach nach unten verschieben . Ich werde hier ein bisschen Bewegung haben. Im Laufe von 2,5 Sekunden. Es wird sich da oben bewegen und dann wird es wieder nach unten gehen. Ich springe rein und spiele, stottere ein bisschen da im Video, aber es bewegt sich eigentlich ganz glatt vor Da sind unsere Bewegungen. Entschuldigung für die schlechte Videoqualität dort. Okay, das ist also nett. Aber was wäre, wenn ich diesen Endstandort weit, weit weg verlegen wollte ? Ich meine, dann wird sich die Plattform wahnsinnig schnell bewegen. Gibt es eine Möglichkeit, diese Zeitleiste so anzupassen diese Zeitleiste so , dass ich die Wiedergabegeschwindigkeit ändern kann? Ja, das gibt es. Das ist unsere provisorische Einrichtung genau hier. Ich gehe zurück zu unserem Platform Mover und wir werden es unserem Plattform-Bewegungsknoten hier mitteilen Doppelklicken Sie einfach darauf, um nicht mehr automatisch abzuspielen. Stattdessen werden wir uns einen Verweis auf unsere Plattformbewegungen holen einen Verweis auf unsere Plattformbewegungen Sobald wir diese Zeitleiste erstellt haben, unseren Verweis darauf genau hier in unserem Variablenbereich des Bedienfelds „Mein Blueprint“ Wir ziehen das hinein, wir holen es uns und dann ziehen wir es raus und geben festgelegte Wiedergabegeschwindigkeit Auf diese Weise können wir die Wiedergabegeschwindigkeit für diese Plattform anpassen. Lassen Sie uns das in das Spiel unserer Timeline integrieren. Jetzt könnte ich hier eine Play-Rate fest programmieren. In der Tat werde ich das 1.0 machen, aber ich möchte das für jede Instanz, jede Kopie unseres Platform Movers einzigartig jede Kopie unseres Platform Movers Was ich hier tun kann, ist mit der rechten Maustaste auf diesen Pin zu klicken. Wir können dies zu einer Variablen heraufstufen. Dabei wird automatisch eine neue Variable vom Typ Float hinzugefügt, und ich nenne das Play-Rate Das Einzige, was ich mit dieser ausgewählten Variablen tun möchte , ist, auf dieses Augapfelsymbol zu klicken , um diese Instanz editierbar zu machen Wenn ich jetzt kompiliere und zu meinem Level-Editor zurückkehre, kann ich bei ausgewähltem Platform-Mover sehen, dass der Playrate-Wert genau hier ist, sodass ich ihn für jede Instanz, jede Kopie dieses Blueprints in meinem Playrate-Wert genau hier ist Level anpassen jede Kopie dieses Blueprints Jetzt muss ich hier noch etwas tun damit es tatsächlich abgespielt wird Weil ich das Autoplay von unserer Plattformbewegung getrennt Ich brauche etwas, um das tatsächlich auszulösen, um unserer Plattform mitzuteilen, dass sie sich tatsächlich bewegen soll ziehe ich das Event einfach in die Länge Dafür ziehe ich das Event einfach in die Länge und fange hier an zu spielen. Falls ihr nicht von eurer BP-Plattform Jumpthrough geerbt habt, könntet ihr einfach ein Event starten lassen. Da das aber von unserer Jump-Through-Plattform übernommen wird, müssen wir es nur so erweitern Auch hier gilt: Wenn Sie nicht von einer Jump-Through-Plattform ein Event erben , beginnen Sie das Spiel hier. Wir werden es dir gut machen Das wird dein letztes Setup sein, dein letztes Drehbuch genau hier. Wenn du das Video hier pausieren möchtest , kannst du dir das ansehen. Lass uns weitermachen und das kompilieren und zurück zu unserem Level-Editor springen. Jetzt können Sie sehen, dass ich einfach die Alt-Taste drücke, mit linken Maustaste klicke und ziehe, um einen weiteren Verweis darauf einzufügen. Ich könnte es so machen, dass diese bestimmte Plattform steigt, sagen wir mal so hoch. Vielleicht wird es auch in einem solchen Winkel verlaufen. Aber ich werde die Wiedergabegeschwindigkeit auf 0,05 ändern . Etwas verrückt langsam Vielleicht diese Plattform, ich werde den Standort ändern, um hierher zu gehen Und ich werde das auf 0,1 ändern . Jetzt habe ich beide ziemlich langsam laufen lassen. Wenn ich einspringen und spielen , würde ich nicht einspringen und spielen. Ich werde mein Spiel simulieren, indem ich auf diese drei Punkte klicke. Durch die Simulation wird das Spiel ausgeführt ohne dass ich tatsächlich einen Charakter kontrolliere Also los geht's. Sie werden sehen, wie sie sich im Viewport bewegen Und da bewegen sie sich. Dieser bewegt sich ziemlich langsam auf der linken Seite. Und auf der rechten Seite bewegt es sich tatsächlich auch, aber sie bewegen sich wahnsinnig langsam. Aber der Punkt ist, dass Sie für jede dieser Plattformen einen Endort sowie die Wiedergabegeschwindigkeit festlegen können . Du kannst es verrückt machen, schnell, verrückt, langsam. Du hast die Wahl. In Ordnung, Leute, das reicht , um diesen anzubieten. Wir sehen uns im nächsten. 14. Launch-Plattform (Teil #1): Willkommen zurück alle. In diesem Video werden wir eine Launcher-Plattform erstellen. Dies wird eine sein, die unseren Spieler in die Luft bringt, wenn er darauf landet Lassen Sie uns jetzt gleich zur Sache kommen. Wenn Sie die Texturen, die wir zu Beginn des Kurses erstellt haben, noch nicht importiert die Texturen, die wir haben, tun Sie das jetzt, da wir einige davon in diesem Video verwenden werden . Wir werden diese Launcher-Plattform irgendwie wie einen riesigen Pilz aussehen lassen. Das ist also unser visuelles Ziel hier. Sobald du diese importiert hast und ich mich in meinem Platformers Textures-Ordner befinde, werde ich ein paar Materialien erstellen Und wenn ich hier nach unten scrolle, werden die, die ich dafür verwenden werde , sowohl diesen T Mushroom One als auch diesen Dirt One Jetzt habe ich beide ausgewählt. Ich habe die Steuerung gedrückt gehalten und diese ausgewählt. Ich klicke dann mit der rechten Maustaste auf eines davon und wir werden Materialien daraus erstellen. Dabei werden wir jetzt zwei verschiedene Materialien herstellen. Hier sind sie. Sie können sehen, dass es sich um Materialien des Labels handelt, gleich hier auf ihrem Vorschaubild Ich werde sie einfach mit ihren aktuellen Namen belassen. Ich werde sie speichern. Alles speichern, um diese Vermögenswerte Wir werden sie gleich hier nutzen. Als Nächstes kehren wir zu unserem Blueprints-Ordner zurück und erstellen einen brandneuen Blueprint von Grund auf, indem wir mit der rechten Maustaste in eine Blueprint-Klasse mit leerem Raum klicken Das wird ein Schauspielerkurs sein, und wir werden diesen einen Kurs BP Underscore Platform nennen Unterstreiche den Launcher. Ordnung, und dann machen wir weiter und doppelklicken darauf, um es zu öffnen Ordnung, das Wichtigste zuerst, wir werden damit beginnen einige Komponenten zu unserem Blueprint hinzuzufügen Klicken Sie unter dem Bedienfeld „ Komponenten“ auf die Schaltfläche „Anzeigen“ Das erste, das wir hinzufügen werden, ist ein instanziertes statisches Mesh Dieses hier, das werden wir gleich nutzen , aber lassen Sie uns das vorerst hinzufügen Ich nenne das, wir nennen es Trunk. Damit soll, wenn Sie so wollen, der Stamm unserer pilzförmigen Plattform hier dargestellt werden. Dann wähle ich meine Standard-Szenen-Root-Komponente aus. Um noch einmal eine weitere Komponente hinzuzufügen, wird diese einfach eine statische Netzkomponente sein. Ich nenne das Mushroom Top. Dann werde ich hier eine Komponente an mein Mushroom Top anhängen . Wenn dieser Typ ausgewählt ist, klicke ich auf Hinzufügen. Dann füge ich einen Box Collider hinzu. Box Collision genau hier. Und wir werden diese Kollision als Tiefpunkt bezeichnen. Ordnung, da alle hier an Ort und Stelle sind, werde ich jetzt die Einzelheiten festlegen. Also beginne ich mit unserem statischen Instant-Mesh hier, drüben im Detailbereich, werde ich ein statisches Netz einbauen und ich möchte eine Zylinderform einbauen. Ich werde silinilindrf eingeben. Ich kann es richtig buchstabieren. Da haben wir's. Da sind mehrere Zylinder drin, der eine, den ich benutzen werde. Und Sie können im Tooltip den Weg dafür sowie die ungefähre Größe sehen. Es ist dieser hier aus dem Pfad zu den Grundformen des Motors. Es hat eine ungefähre Größe von 100 mal 100 mal 100. Wählen Sie diese aus, damit Sie sicherstellen können, dass Sie exakt dieselbe Esme haben und Sie werden sehen, wie diese Population in Kürze hier vorkommt. Im Viewpoint seht ihr noch nichts, aber ihr werdet sehen, dass das in Kürze genutzt wird. Wir werden auch ein Material darauf auftragen und das wird unser Schmutzmaterial haben Wenn du nur Schmutz eintippst, ist es dieses Material. Schmutz ist matt, das ist das Schmutzmaterial, das wir gerade geschaffen haben. Was die Position angeht, werde ich die Z-Position auf 50, 80, 50 setzen. Drücken Sie die Eingabetaste. Und Sie können sehen , dass es an dieser Stelle ungefähr hier platziert wird . Und ich weiß, dass Sie noch nichts sehen, aber wir werden, wenn Sie so wollen, einige Teile des Trunks generieren , wenn wir dazu kommen , diesem Blueprint ein Skript hinzuzufügen Lassen Sie uns gleich als Nächstes unser Mushroom Top auswählen. Was ich für die Form tun möchte, befindet sich unter dem statischen Mesh-Bereich des Detailfensters , wenn Mushroom Top ausgewählt ist. Ich möchte Underscore Wide Capsule wählen. Es befindet sich im Shapes-Ordner für Starterinhalte. Dann füge ich das Material hinzu, dieses Pilzes, ein Material, das wir gerade erstellt haben. Es wird es sich ansehen. Und dann werde ich auch die Z-Position dafür auf 80 ändern . Mach es ein bisschen lauter. Okay. Als Nächstes wähle ich unsere untere Kollisionskomponente aus. Dieses Feld genau dort für Details dazu, wir werden die Form der Box hier auf 5.050,50 einstellen werden die Form der Box hier auf 5.050,50 Wir werden auch die Z-Position auf 35, 35 ändern. bewegen es ein bisschen nach oben hängen die Unterseite unseres Pilzes oben ein bisschen raus . Dann gehen wir runter in den Bereich mit den Kollisionsvoreinstellungen Kollisionsvoreinstellungen, derzeit ist es so eingestellt, dass es alle dynamischen Elemente überlappt Ich werde es so ändern, dass es benutzerdefiniert ist, und wir werden benutzerdefiniert ist, und wir werden alle unsere Boxen hier so einstellen, dass sie ignoriert Klicken Sie also genau hier, um sie alle auf Ignorieren zu setzen, außer dass wir unseren Teich so einstellen, dass er sich überschneidet. Wir werden dafür sorgen, dass diese Plattform durch eine Schale geführt wird, sodass unser Spieler durch den Boden springen und dann von oben herunterspringen kann . So wird das im Grunde funktionieren. Das werden also unsere Kollisionseinstellungen für diese Kollision sein . Hier oben von unten nach oben. Ich werde auch die Kartongröße für das Z ändern . Derzeit sind es 50. Ich glaube, ich werde das auf 60 setzen, also etwas dicker. Ja, das ist ungefähr richtig. Wenn das erledigt ist, lass uns weitermachen und speichern. Okay, als Nächstes werden wir hier unten im Bereich „Mein Blueprint“ einige Variablen hinzufügen hier unten im Bereich „Mein Blueprint“ einige Variablen Und diese Variablen werden es uns ermöglichen , das Aussehen und die Form dieser Pilzplattform stark anzupassen das Aussehen und die Form dieser , da sie Moment sicherlich nicht nach viel aussieht Wenn Sie also genau hier auf die Plus-Schaltfläche für Variablen klicken, wird die erste Variante Mush Top, Underscore Skate heißen Mush Top, Underscore Hoppla, Unterstrichskala, Unterstrich x. Das wird eine Float-Variable sein. Das wird eine Ich werde dieses Kästchen, zum Beispiel Editierbar, sofort ankreuzen Ich werde weitermachen und das kompilieren. Ich möchte sofort einen Standardwert für einen festlegen, eine Skala von 1,0 bedeutet im Grunde 100% seiner normalen Größe. Wenn das erstellt ist, klicke ich mit der rechten Maustaste darauf. Ich werde das duplizieren. Und ich werde es Skala Y nennen. Es wird hier getroffen und kompiliert worden Es wird dieselbe Einstellungsinstanz haben, die mit demselben Standardwert bearbeitet Ich werde Control plus D verwenden, um diese Variable zu duplizieren Das wird mushtpscale z sein. Und noch einmal, wenn Sie kompilieren, können Sie sehen, dass es auch den Standardwert Eins hat, der ebenfalls gesetzt Den nächsten werden wir erstellen, indem wir auf das Plus für die Variable klicken, das wird Geschwindigkeit genannt Dies wird die Geschwindigkeit unseres Starts steuern, wenn wir von der Plattform abprallen Das wird eine Vektorvariable sein. Wir werden dies so einrichten, dass es auch von Instanzen bearbeitet werden kann. Wenn ich das kompiliere, setzen wir unsere Startgeschwindigkeit standardmäßig auf 2.500. Aber aufgrund dieser Checkbox können wir das pro Instanz, pro Kopie dieses Blueprints im Editor ändern pro Kopie dieses Blueprints aufgrund dieser Checkbox können wir das pro Instanz, pro Kopie dieses Blueprints im Editor Wir werden hier eine weitere Variable hinzufügen, indem wir auf diese Plus-Schaltfläche klicken Dieser wird heißen, nennen wir ihn einfach Trunk-Endpunkte Unser Endpunkt im Pilzstamm. Wir werden das verwenden, um den Endpunkt unseres Pilzstammes zu bestimmen. Wir werden einen Stamm haben, der sich von hier aus erstreckt und den wir in kurzer Zeit bauen werden . Lassen Sie uns weitermachen und diese essbare Instanz kompilieren . Wir wollen, dass das überprüft wird. Wir möchten auch, dass dieses Show-Three-D-Widget ebenfalls überprüft wird. So können wir den Endpunkt herausziehen. Wir belassen die Werte jetzt bei 0,00. Ordnung, als Nächstes springen wir zur Registerkarte „Konstruktionsskripte“ unserer Baupläne Jetzt wird die Registerkarte „ Konstruktionsskript“ unserer Registerkarte „ Ereignisdiagramm“ sehr ähnlich sein, auf der Sie ein Skript platzieren können, um Dinge geschehen zu lassen Im Gegensatz zu einer Registerkarte „ Ereignisdiagramm“, auf der das Skript zur Laufzeit ausgeführt wird, wird das Konstruktionsskript jedoch Registerkarte „ Ereignisdiagramm“, auf der das Skript zur Laufzeit ausgeführt wird, zur Entwurfszeit ausgeführt. Das eignet sich hervorragend für die Erstellung eines solchen Entwurfs. Das wird es uns ermöglichen, hochgradig maßgeschneiderte Dinge zu erstellen. Ich zeige dir hier, was ich meine. Als Erstes muss ich einen Hinweis auf unser Champignon-Top hinzufügen. Lassen Sie uns das per Drag & Drop in unser Diagramm ziehen. Damit können wir mit ihm sprechen, wir können einige Eigenschaften daran ändern. Ich ziehe es raus und tippe Set World Scale Three D für unsere Skala ein. Ich ziehe rückwärts und tippe Make Vector ein. Damit können wir nun unsere Pilzskala X, Y und Z eingeben, wenn wir diese Werte im Editor ändern wenn wir einen dieser Werte im Editor ändern, wird das Skript gestartet und die Größe unseres Champignon-Oberteils angepasst. Genau hier. Der Typ da drüben. Okay, wenn ich weitermache, werde ich das an einen Vier-Loop-Knoten anschließen. Jetzt haben Sie jeden Loop-Knoten für jeden mit Pause, wir wollen einen einfachen Vier-Loop-Knoten. Dieser Typ hier, der den Fluss mit vier Schleifen kontrolliert, wir werden diese vier Schleifen verwenden, um zu bestimmen, wie viele Rumpfabschnitte wir hier zur Basis unseres Pilzwerfers hinzufügen wollen . Um das zu tun, werde ich meinen Trunk-Endpunkt einbauen. Wir holen es uns, ich ziehe es raus und tippe die Vektorlänge ein. Wir werden die Länge dieses Vektors ermitteln, im Grunde genommen, wie lang wird dieser Endpunkt sein? Wir werden hier gleich ein Beispiel für diese Mathematik durchgehen . Denken Sie daran, dass unser Stamm im Wesentlichen 100 ist. Denken Sie daran, dass wir unseren Breitstamm daran, dass unser Stamm im Wesentlichen 100 ist. Denken Sie daran, genau hier haben Und diese werden im Wesentlichen in Schritten von gesamte Größe des Zylinders betrug 100 mal 100. Um 100. Wir teilen das, fügen einen Dividierknoten durch die Zahl 100 hinzu. Das wird jetzt einen Gleitkommawert ausgeben. Wir wollen das in einen Integer-Wert umwandeln. Was ich tun werde, ist, hier rauszuziehen und Truncate einzugeben Es wird das auf die nächste Lochnummer runden. Wir werden das in unseren letzten Index aufnehmen. Was ein Knoten mit vier Schleifen macht, wenn er diesen Knoten erreicht , durchläuft er ihn in einer Schleife, wie oft wir das hier angeben, angefangen bei Index Null bis hin zu einem letzten Index. Wenn es 0-9 ist, würde er das Ganze in einer Schleife durchlaufen. Das heißt, das zehnmal auszuführen 012-345-6789 Was wollen wir zehnmal machen? Nun, wir wollen unseren Koffer reinbringen, ihn hineinziehen und dann ziehen wir das ab und sagen, und dann ziehen wir wir fügen ein Exemplar von dem Brei hinzu Ein Exemplar, das ist, wenn Sie so wollen, eine Kopie dieses Zylinders Jetzt müssen wir angeben, wohin diese Instanz gehen soll. Jetzt hat dieser Zylinder wieder die Form eines Stammes. Stellen Sie sich also vor, wenn Sie diese Dinge übereinander stapeln , entsteht im Grunde ein Objekt, das wie ein Stiel aussieht Wir werden spezifizieren, wohin diese gehören, indem wir sie in diese Instanztransformation einbinden Also werde ich das Ganze rückwärts ziehen und transform eingeben Und eine Transformation besteht aus Positions-, Rotations- und Maßstabsdaten Wir werden uns wirklich nur mit diesen Standortdaten befassen Wir ziehen uns hier rückwärts zurück und geben make vector like Lassen Sie mich hier etwas mehr Platz geben. Was wir tun werden, um zu bestimmen, wohin diese Trunks gehen werden, ist, dass wir herausziehen diesen Index herausziehen und ich werde einen Multiplikationsknoten erstellen Wir werden das mit einem Gleitkommawert multiplizieren . Wir könnten das zu einem Integer-Wert machen. Tatsächlich werde ich das als Integer-Wert beibehalten, nein. Ich werde mit der rechten Maustaste darauf klicken. Ich werde diesen Ausgangs-Pin in einen Float umwandeln, das wird ihn auch in einen Float umwandeln. Der Grund, warum ich das in ein Float umwandeln werde , ist , dass ich das als Float in den Make-Vector-Knoten einstecken muss . Ich setze das in den Z-Wert ein und multipliziere diesen Index mit minus 100. Sie werden gleich hier sehen, warum. Um ein mathematisches Beispiel durchzugehen : Sehen heißt glauben und das Ganze macht viel mehr Sinn. Ordnung, ich werde diesen Plan kompilieren und dann in mein Level springen Im Moment sieht unsere Startplattform seltsam aus, aber wir werden sie stark anpassen können Jetzt habe ich meine zwei D-Snap-Einstellungen hier auf meine Hauptebene eingestellt. Ich werde jetzt einfach eines davon hierher ziehen. Ich werde es sogar ein bisschen hier oben platzieren. Jetzt sieh dir das an. Unser Top sieht nicht nach viel aus, aber drüben im Detailbereich stellen wir all diese Variablen zur Verfügung. Mush Top-Skala, Must Y, Push Top-Skala, Z usw. Wir werden sie hier gleich nutzen denn wenn wir sie skalieren, können Sie sehen, wie sich dadurch die Größe unserer Plattform verändert Unser oberster Wert, dieser Wert hier , wird hier wieder in unserem Konstruktionsskript angewendet hier wieder in unserem Konstruktionsskript Immer wenn wir diese Werte bearbeiten, wird dieses Skript sofort ausgelöst. Immer wenn wir an einem der mit diesem Skript verknüpften Werte Änderungen vornehmen , wird dieses Skript ausgeführt und passt so die Größe unseres Pilzkopfes an. So wird dieses Skript ausgelöst. Während der Entwurfszeit, wenn sich etwas an unserem Entwurf hier ändert Beachten Sie, wenn ich in mein Level gehe und hier meinen Endpunkt finden sollte, dieses Drei-D-Widget, können Sie sehen, dass ich es hier unten ausgewählt habe Schau dir an, was passiert , wenn ich das herunterziehe. Alle hundert Einheiten , die ich unternehme, fügen wir ein Stück Kofferraum hinzu. Das macht es also so, dass wir sie kurz oder lang usw. machen können . Also werde ich meinen Trunk-Endpunkt hier auf eine solide Zahl setzen hier auf eine solide Zahl Nehmen wir etwas wie minus 200, ein netter runder Wert, einfach so, minus 200. Da haben wir's. Lassen Sie uns nun zu unserem Konstruktionsskript zurückkehren und es mit diesem Wert minus 200 als Beispiel durchgehen . Hier sind wir in unserem Plattform-Launcher. Unsere gesamte Skalierung der Champignon-Spitze wird genau hier von dem bestimmt, was wir für diese beiden Werte in unserem Editor einstellen , der die Weltskala der Pilze auf der obersten Ebene festlegt. Aber jetzt denken wir über uns selbst nach, mit dieser Vorderschleife. Unser Trunk-Endpunkt ist derzeit auf minus 200 eingestellt, unsere Vektorlänge ist 200. Jetzt entspricht 200/100 zwei. Unser erster Index wird Null sein. Unser letzter Index wird 2012 sein. Das heißt, dieser Loop-Body wird dreimal 012 abgefeuert dreimal 012 abgefeuert Und jedes Mal, wenn es losgeht, spuckt es den Index Null aus, dann eins, dann zwei Beim ersten Auslösen ist der Index Null. Wir werden das mit minus 100 multiplizieren , was Null ist. Und es wird eine Version dieses Must-Trunks an diesem Ort platzieren . es zum zweiten Mal ausgelöst wird, wird es ausspucken, dass der Index 11 mal minus 100 gleich minus 100 ist Und so werden wir einen weiteren Abschnitt, unseren Breischstamm, von der Stelle , an der er sich befindet, auf minus 100 herunterfahren Beim nächsten Mal wird unser Index 22 mal minus 100 ist minus 200 Und so wird er einen weiteren Abschnitt des Rumpfes unter dem vorherigen platzieren , dem 100 unwirkliche Einheiten gegenüberstehen Das können wir hier mit 12,3 Abschnitten des Rumpfes sehen. Jetzt ist es so gebaut, dass wir nicht in die entgegengesetzte Richtung hochfahren können Und tatsächlich, wenn man das in die andere Richtung hochziehen würde, würde es den Stamm immer noch in die andere Richtung vergrößern. Die negative Richtung, wenn man so will. Aber ich bin damit einverstanden, einfach so. Jetzt empfehle ich Ihnen , Ihre obere X- und Y-Skala gleich zu lassen . Wir hätten diesen Wert sogar auf einen einzigen Wert festlegen können, andernfalls können Sie einige seltsam aussehende Effekte wie diesen haben , bei denen der Wert wirklich gestreckt wird. Aber ich wollte Ihnen die Möglichkeit geben, das so anzupassen, wie Sie es möchten. Es ist so, wie es ist. Jetzt könnt ihr auch sehen, dass, wir unseren Pilz oben skalieren, unser Collider an der Unterseite mitskaliert Das ist ziemlich nett. Ich werde diesen ganzen Plan ein wenig aufschreiben, weil ich möchte, dass unser Spieler versuchen kann, hier durch den unteren Teil der Plattform zu springen hier durch den unteren Teil der Plattform 15. Launch-Plattform (Teil #2): Jetzt können wir es noch nicht durchspringen , weil wir kein Skript hinzugefügt haben , um es so zu erstellen, dass wir es durchspringen können. Also lass uns das als Nächstes machen. Gehen wir zurück zu unserem BP Platform Launcher. Dieses Mal gehen wir zu unserem Event-Graph über. Weil wir wollen, dass dieses Skript während der Laufzeit ausgeführt wird. Ich werde mich hier nach rechts bewegen, ein leeres Feld, und wir wollen unseren Kollisionsboden auswählen. Wir klicken mit der rechten Maustaste darauf fügen ein Ereignis für die beginnende Überlappung hinzu. Lassen Sie uns weitermachen und erneut mit der rechten Maustaste darauf klicken. Fügen Sie auch ein Ereignis für die Endüberlappung hinzu. Was wir jetzt tun werden, ist herauszufinden, wer der andere Schauspieler war, der dahinter steckte. Wir können es wie bisher machen, wir können schreiben, auf ein leeres Feld klicken und bekommen wir Spielercharakter. So können wir herausfinden, ob der andere Schauspieler unserem Spielercharakter entspricht. Also kopieren wir das und bringen es für die Endüberlappung hierher. Beide werden an eine Filiale angeschlossen. Also werde ich die B-Taste gedrückt halten und mit der linken Maustaste klicken Das ist unsere Bedingung, dass wir gegen Ähnliches suchen. Also, was wir tun wollen, ist, mit unserem Top-Pilz-Oberteil zu sprechen. Sie einen Verweis darauf hineinziehen, ziehen wir ihn weg und geben dann Set Collision Enabled ein. Wenn wir anfangen , mit dem Kollisionsboden zu kollidieren, wollen wir das auf „Keine Kollision“ setzen so wie wir es hier unten getan haben Wir werden das kopieren und einfügen. Wir können dieselbe Referenz einbauen und wenn es stimmt, dass wir diese Überlappung beenden, wollen wir die Kollision wieder einschalten, wodurch Kollisionen auf diese Weise aktiviert werden. Ordnung, also lass uns weitermachen und das kompilieren und speichern In Ordnung, also lass uns weitermachen und das kompilieren und speichern und schauen, ob wir hier durch das Ende unserer Pilzplattform springen können . Unsere Plattform bewegt sich sehr langsam. Und ja, wir können ihr tatsächlich auf den Grund gehen. Wir werden jedoch noch nicht gestartet. Also lasst uns weitermachen und das in Ordnung bringen. Als Nächstes werden wir unseren Charakter starten wollen wir erkennen, wann unser Charakter auf der obersten Komponente des Pilzes hier drüben landet . Also wollen wir, dass ein Event damit verbunden ist. Klicken wir mit der rechten Maustaste auf unsere Hauptkomponente. Wir werden ein Ereignis hinzufügen. Und was wir tun wollen, ist einen Komponententreffer hinzuzufügen, wenn wir auf diese Komponente treffen , die dieses Ereignis hier unten hinzufügen wird. Ich werde hier ein bisschen nach unten navigieren und einen ganz neuen Abschnitt des Skripts erstellen. Jetzt wollen wir nicht, dass das losgeht oder wir wollen hier keine Hinrichtung fortsetzen. Wenn etwas unsere Pilzspitze trifft, dann nur, wenn es unser Charakter ist. Also werde ich unseren anderen Schauspieler rausziehen. Ich werde das Gleichheitszeichen einsetzen . Und noch einmal werden wir überprüfen ob das dem Spielercharakter-Node entspricht oder ob es sich um einen Spielercharakter handelt, ob der andere Akteur unser Spielercharakter ist, ob das unserem Spielercharakter entspricht, werden wir einen Verzweigungsknoten einfügen, gedrückt halten und mit der linken Maustaste klicken. Wenn das alles stimmt, werden wir einmal etwas tun wollen. Ich kann mit der rechten Maustaste klicken und nach einem Once-Node suchen. Ich werde jedoch die Taste gedrückt halten und mit der linken Maustaste klicken, um einen Once-Node aufzurufen. Was ich einmal machen möchte, ist, unseren Spielercharakter hier abzurufen und nach einem Knoten namens Startcharakter zu suchen . Das ist eine Funktion, die mit dem Charakter verknüpft ist, also musst du in diesem Fall den Charakter aus deinem Get-Player-Charakter herausziehen , um ihn sofort als Ziel einzufügen und diese Funktion zu finden. Wir wollen unseren Charakter also nur einmal starten. Was wird unsere Startgeschwindigkeit sein? Nun, wenn ich hier meine Startgeschwindigkeit auswähle, können wir sehen, dass wir sie in einer Variablen speichern . Ich werde das so auf diese Stecknadel ziehen und dort ablegen . Und derzeit haben wir das auf 2.500 gesetzt . Aber wir haben diese Instanz editierbar gemacht, sodass wir sie für jede Instanz unseres Plattform-Launchers anpassen können jede Instanz unseres Plattform-Launchers Jetzt will ich das abfeuern, nicht nur, wenn unser Charakter auf diese Pilzspitze trifft, sondern auch, wenn er darauf landet Wir wollen das nicht einfach machen, wenn sie die Seite unseres Pilzoberteils treffen. Um das zu überprüfen, wollen wir aus unserem Treffer ohne Komponenten herausziehen hier aus unserem Treffer ohne Komponenten herausziehen und dieses Trefferergebnis aufbrechen. Dieser Pin hier hat uns eine Menge Informationen zu geben. Wir können diese Informationen über einen Break-Hit-Ergebnisknoten extrahieren . Ich werde das weiter ausbauen , damit wir all die verschiedenen Dinge im Zusammenhang mit diesem Treffer sehen können all die verschiedenen Dinge im Zusammenhang mit , über die wir etwas herausfinden können. Was wir für diesen Fall suchen, ist, dass wir die normale Wirkung hinter uns lassen wollen. Das ist im Grunde die Richtung , in der wir auf diese Pilzspitze einwirken Ich werde sie hier rausziehen und einen Vektor einfügen , der dem Vektorknoten entspricht Wir werden nicht exakt den gleichen Vektor verwenden. Eigentlich nein, wir wollen einen gleichen Vektor. Entschuldigung, mein Fehler. Vektor entspricht Vektor. Dafür gibt es das dreifache Gleichheitszeichen. Wir werden einen negativen Z-Wert von Eins eingeben. Das heißt, beeinflussen wir das im Wesentlichen, wenn es nach unten geht? Negativ, das heißt abwärts in Z-Richtung. Okay, wir wollen das auch als Bedingung überprüfen Anstatt das an einen anderen Zweigknoten anzuschließen. Was ich hier tun kann, ist, das Ergebnis dieser Überprüfung abzuziehen das Ergebnis dieser Überprüfung um zu sehen, ob unser anderer Akteur ebenbürtig ist Der Spielercharakter kann das wegziehen und booleschen Wert in einen Knoten Also werden wir nachschauen, ob der andere Schauspieler, der unsere Pilzspitze getroffen hat, unser Charakter ist Und wir werden überprüfen, ob unser Aufprall des Pilzes nach unten gerichtet ist Unser Ablauf wird also so sein. Wir prüfen, ob diese beiden Dinge gleich sind. Und wenn das stimmt, werden wir den Charakter einmal starten. Nun, das sollte alles schön und gut sein, aber ich möchte dem auch ein bisschen Besitz hinzufügen . Ich möchte einen kleinen Emitter-Partikeleffekt hinzufügen. Und dann möchte ich auch, dass die Oberseite des Pilzes so aussieht, als würde er springen, indem ich auch einen kleinen Animationseffekt habe als würde er springen, indem ich auch einen kleinen Animationseffekt Also werde ich meinen Startcharakter hierher ziehen und dort einen Knoten namens Spawn Emitter einsetzen Jetzt geht es darum, einen älteren Partikeleffekt abzuspielen, einen Kaskadenpartikeleffekt einen Kaskadenpartikeleffekt Und der Grund, warum ich nach einem neueren Partikelsystem-Effekt suchen werde, statt nach einem Spawn-System am Standort, das einen Niagara-Effekt abspielen würde statt nach einem Spawn-System am Standort, das einen Niagara-Effekt abspielen würde, ist dass ich einen aus dem Infinity Blade-Effektpaket im Kopf habe Infinity Blade-Effektpaket Um es kurz zu machen, Sie könnten einen Emitter für einen älteren Kaskaden-Emitter erzeugen oder Sie könnten System et, Ort für einen Niagara-Partikeleffekt, erzeugen. Der, an den ich hier denke, heißt Skill Underscore Launch. Das ist eher Skill Leap Launch. Start der Skill Leap-Basis. Skill Leap Base starte den Kerl genau dort. Jetzt muss ich einen Ort angeben , an dem das erscheinen soll verwende ich unseren Einschlagspunkt aus unserem Trefferergebnis, Dafür verwende ich unseren Einschlagspunkt aus unserem Trefferergebnis, wir können ihn bis zu unserem Standort ziehen Ich doppelklicke einfach auf dieses Kabel, um einen kleinen Umleitungsknoten hinzuzufügen , damit das Ganze etwas sauberer aussieht Ich denke, ich werde weitermachen und die Größe dieses Partikels auf das Dreifache seiner üblichen Größe einstellen . Nur um es ein bisschen deutlicher zu machen. Einfach zu erkennen. Okay. Und als Nächstes, was ich tun möchte, und ich werde einfach die rechte Maustaste gedrückt halten und hier nach die rechte Maustaste gedrückt halten und rechts fahren, ist, einen Timeline-Knoten einzufügen, klicken Sie mit der rechten Maustaste. Suchen Sie nach einer Zeitleiste. Fügen Sie hier unten eine Zeitleiste hinzu. Und es wird mich veranlassen, uns einen Namen zu geben. Ich werde das meine Top-Time-Line nennen. Und ich werde das von Anfang an in unser Spiel einbauen. Nun, dieser Knoten genau hier, ich doppelklicke darauf, um eine Zeitleiste zu erstellen. Das wird als Skalenmultiplikator für unsere Skala X, Y und Z dienen Skalenmultiplikator für unsere Skala X, , für unsere Champignon-Spitzenwerte hier drüben. Ich werde sogar sofort alle drei Werte einbauen , höchste Skala X. Ich werde es mit Spaß machen Wenn Sie die Strg-Taste gedrückt halten, linken Maustaste klicken und ziehen, erhalten Sie sofort eine bessere Version davon. So wie das Ich werde jeden dieser Werte multiplizieren. Also kann ich daraus ziehen und das Multiplikationssymbol sofort eingeben. Ich werde all das multiplizieren. Wir werden für all das eine einzigartige Kopie benötigen. Steuern Sie C, steuern Sie V mit einem Multiplikator , den wir gleich unserer Zeitlinie ausspucken Erschaffe und spucke aus unserer Zeitlinie heraus. Doppelklicken wir gleich auf unsere Zeitleiste. Ich möchte hier einen neuen Float hinzufügen. Dies wird unser Skalenmultiplikator genannt. Wir werden hier eine kleine Animation erstellen , die drei Zehntelsekunden lang sein wird drei Zehntelsekunden lang Ich werde einfach die Steuertaste gedrückt halten und hier hineinscrollen, um ein wenig nach oben zu zoomen Und halte die rechte Maustaste auf Reis gedrückt , um das Ganze wieder so anzuzeigen. In Ordnung, ich werde hier vier Schlüsselbilder hinzufügen. Also werde ich die Umschalt-Taste gedrückt halten und so weitermachen, 123,4 ungefähr in diesem Zick-Zack-Muster Sie können diese Schlüsselbilder abrufen, indem rechten Maustaste klicken und auch ein Schlüsselbild hinzufügen Durch Verschieben und Linksklick werden sie ebenfalls angezeigt. Okay, wenn diese vorhanden sind, werde ich jetzt jeden von ihnen einzeln auswählen und eine Zeit hinzufügen. Für diesen ersten Wert wird es Null sein und der Wert wird Eins sein. Ich kann auf diese Pfeile klicken, um das anzuzeigen. Ich werde hier ein bisschen nach hinten zoomen. Ich werde meinen zweiten Keyframe auswählen. Nun zum zweiten, ich füge eine Zeit von 0,1 und einen Wert von 0,8 hinzu. Auch hier handelt es sich um Skalenwerte. Der zweite Wert, den ich auswählen werde, ist eine Zeit von 0,2 und ein Wert von 1,3. Dann hat dieser letzte Wert eine Zeit von 0,3 und einen Wert von eins, wenn er übersprungen ist eine Zeit von 0,3 und einen Wert von eins, wenn er übersprungen Alles außerhalb des Bildschirms, Sie können nach hinten zoomen. Ich klicke mit der linken Maustaste und ziehe, um all diese hervorzuheben. Sie sind alle blau. Jetzt kann ich auf diese Pfeile klicken, um sie einzurahmen, sodass Sie das Zick-Zack-Muster sehen können , für das ich mich entschieden habe. Okay, was wir gerade gemacht haben, ist eine Float-Track namens Scale Multiplikator hinzugefügt Ich werde hier wieder aus unserer Zeitlinie herausspringen, diese Zeitlinie von drei Zehntelsekunden Jetzt wird dieser Skalenmultiplikator innerhalb von drei Zehntelsekunden aus unserer Zeitleiste ausgegeben drei Zehntelsekunden aus unserer Zeitleiste Es wird sich multiplizieren oder es wird ein Gleitkommawert ausgegeben Das wird sich von 1 bis 2 auf 0,8 bis 1,3 auf Dieser Wert wird im Laufe der Zeit geändert. Das ist der Wert, den wir mit den Werten X, Y und Z unserer obersten Pilzskala multiplizieren werden. Jetzt setzen wir all diese Werte in einen Vektorknoten ein. Also klicke ich mit der rechten Maustaste in eine leere Stelle und tippe Make Vector ein. Wir fügen sie so ein, dass ein einziger Vektorwert x, y und z entsteht. Der Grund, warum wir das tun, ist, dass wir unsere Komponenten auf der Oberseite der Pilze einfügen können . Also werden wir das bekommen. Ziehen Sie es dann heraus und geben Set Relative Scale Three D ein. Das wird unser neuer X-, Y- und Z-Wert für unsere Pilzspitze sein. Da dieser Wert im Laufe von 0,3 Sekunden aktualisiert wird, werden wir die Multiplikatoren ändern, die mit der Größe unserer Pilzoberseite verknüpft sind, wodurch ein kleiner Sprungeffekt entsteht. Ordnung, bevor wir das testen, werden wir noch eine Sache machen Derzeit ist dieser ganze Baumwipfelsprung nur für ein einziges Mal geplant. Was wir tun wollen, ist dies auf irgendeine Weise zurückzusetzen , damit es wieder passieren kann Dazu klicke ich mit der rechten Maustaste und füge benutzerdefinierte Ereignisse hinzu. Rechtsklick, benutzerdefiniertes Ereignis. Ich werde diesen Reset-Launcher in Großbuchstaben benennen. Ich werde das an den Reset anschließen . Was ich jetzt tun muss, ist diesen Reset-Launcher ganz am Ende meines Skripts hier aufzurufen , nur um zu versuchen, das ein bisschen besser sichtbar zu machen . Ich werde das Ende von hier in die Länge ziehen, ich werde eine Verzögerung einbauen. Und wir werden es nur um zwei Zehntelsekunden verzögern , bevor wir das zurücksetzen Jetzt kann ich hier wegziehen und dort Reset Launch eingeben dort Reset Launch Es wird, es wird dieses benutzerdefinierte Ereignis genau hier aufrufen damit ich wieder auf meinem Pilz landen und den gesamten Bouncing-Effekt zurücksetzen Ordnung, also zu versuchen, das alles im Blick zu haben , haben wir für unser endgültiges Drehbuch Wenn Sie das Video hier pausieren müssen, lassen Sie uns das kompilieren und speichern. Jetzt spielen wir es ab. Los geht's. Okay, ich werde hier durch die Unterseite meines Pilzes gehen und darauf landen. Bounce, los geht's, hüpfen wieder und spielen den Partikeleffekt spielen Und das ist ziemlich toll. Nur um es Ihnen zu zeigen, wir können sie alle ein bisschen einzigartig machen. Ich werde hier einfach auf meinen Pilz klicken. Ich werde einfach die Alt-Taste gedrückt halten, mit der linken Maustaste klicken und ziehen. Und jetzt, bei dieser Instanz des Pilzes, ändere ich nur meine Startgeschwindigkeit, diese Variable. Anstatt dass mich dieser mit diesem Wert startet, ändere ich sie einfach auf 500. Dieser zweite wird mich also nicht annähernd so stark starten lassen. Also, wenn ich wieder reinspringe und hier spiele, sehe ich, dass der erste Teil mir viel Auftrieb geben wird. Und dann der zweite, nur ein bisschen, du kannst sehen, dass er mir wieder einmal erlaubt. Es setzt den Start zurück, sodass ich immer wieder darauf springen kann immer wieder darauf springen So können wir also eine hochgradig anpassbare Startplattform erstellen eine hochgradig anpassbare Startplattform Es gibt eine Animation, es kann individuell angepasst werden, wie hoch wir starten In der Tat ziemlich cool, Leute, das wird es für diesen Fall reichen Wir sehen uns im nächsten. 16. Komponenten für Münz-Pickups: Willkommen. Im Laufe der nächsten Videos hier werden wir uns mit dem Sammeln von Münzen befassen. Aber bevor wir das tun, möchte ich sicherstellen, dass Sie einige der Texturen und Audiodateien importiert haben , die Sie zu Beginn des Kurses hätten importieren sollen. Denn in diesem Video werden wir uns mit einigen dieser Münztexturen befassen . Wir werden einige davon in Materialien umwandeln und wir werden hier auf dieses Münz-Audio verweisen Wenn Sie diese also zu Beginn des Projekts nicht importiert haben , tun Sie dies bitte jetzt. In Ordnung. das erledigt ist, fange ich tatsächlich in meinem Textures-Ordner hier drüben an. Jetzt habe ich zwei verschiedene Versionen der Münze. Wenn Sie eine neuere Münze oder die Retro-Münze haben möchten, möchte ich eine auswählen, dann die Strg-Taste gedrückt halten und die zweite auswählen. Und wenn beide markiert sind, klicke ich mit der rechten Maustaste und ich werde sie in Materialien umwandeln. Und Sie können sehen, dass es einen genau dort und einen genau dort gibt. Als Nächstes werde ich meinen Platform-Ordner auswählen, der hier ausgewählt ist , Plattform. Ich werde einen neuen Ordner hinzufügen und diesen Ordner Materialien nennen. Ich werde diese Materialien tatsächlich in diesen Ordner ziehen . Momentan habe ich diesen Typen hier, klicke mit der linken Maustaste und ziehe das in die Materialien, sagen wir, hierher verschieben. Und ich habe auch ein paar andere Materialien von der Startplattform hier drin. Ich öffne das, halte die Strg-Taste gedrückt und wähle die drei anderen aus, die du daran erkennen kannst sie diese Kugelsymbole haben. Und ich werde mit der linken Maustaste klicken und diese ebenfalls in den Materialordner ziehen . Wir werden sie hierher verschieben, dann gehe ich in meinen Materialordner und diese beiden Münzmaterialien. Ich werde es einfach öffnen, weil ich in jedem von ihnen einige geringfügige Anpassungen vornehmen möchte. Ich werde auch in die andere springen, die Retro-Münze, je nachdem, welche Sie verwenden werden. Was ich hier machen möchte, ist zunächst, dass ich hier in meinem Viewer eine andere Form haben werde. Hier unten kannst du ein anderes Vorschau-Mesh einstellen. Ich wähle einfach den Würfel aus, auch wenn er auf allen Seiten sein wird. Dann werde ich die linke Maustaste gedrückt halten. Sie konnten sehen, dass ich das auch auf jeder Seite unsichtbar machen werde . Man kann damit den Hintergrund sehen. Also klicken Sie dort auf das Würfelsymbol und das sieht offensichtlich schrecklich aus, aber wir werden das beheben. Okay, was wir hier tun müssen, ist, dass wir hier unseren Master-Material-Knoten auswählen. Und auf der linken Seite, wo Blend Mode steht, werden wir das trainieren. Stellen Sie das auf durchsichtig um. Trainiere das Dann stecken wir diesen einen Stift in den Opazitäts-Pin unseres Master-Materialknotens Jetzt kann ich sehen, dass es durchscheinend ist. Wir sehen nur diese Münze. Wir wollen das auch zweiseitig machen. Ihre Änderungen bestehen also darin, den Mischmodus auf durchscheinend zu ändern den Mischmodus auf durchscheinend zu und ihn auf zweiseitig einzustellen Sie können das sagen und dann dasselbe auch für die Retro-Münze tun dasselbe auch für die Retro-Münze Wir ändern den Mischmodus auf durchscheinend. Wir ändern ihn so, dass er zweiseitig ist. Stellen Sie sicher, dass Sie dieses A, den Alpha-Wert, wie folgt in die Opazität des Master-Material-Nodes Klicken Sie auf „Sicher“ und wir können dort schließen. Wenn ich damit fertig bin, werde ich zu unserem Blueprints-Ordner hier in unserem Inhaltsbrowser wechseln unserem Blueprints-Ordner hier in unserem Inhaltsbrowser Ich klicke mit der rechten Maustaste in eine leere Stelle, neue Blueprint-Klasse Wir werden das auf einem Schauspielkurs aufbauen, weil wir das in unserer Welt platzieren Und ich nenne das BP Pick Underscore Coin und mache dann weiter, doppelklicke darauf, um es im Komponentenfenster zu öffnen , um es im Komponentenfenster . Es gibt ein paar Komponenten, die wir hinzufügen möchten Die erste Komponente wird eine Sphärenkollisionskomponente sein. Wenn Sie jetzt hier klicken, sich nicht verwirren und klicken Sie sofort auf Sphäre. Das ist ein statisches Durcheinander. Du musst nach unten scrollen und wir suchen nach einer Kugelkollision. Ich werde dem den Namen Sphäre geben. Im Detailbereich hier drüben werde ich den Kugelradius jedoch auf 75 ändern. Jetzt verwenden wir das Volumen, das Auslöselautstärke , anhand dessen wir prüfen, ob wir diese Münze einsammeln sollen oder nicht. Jetzt, wo diese Kugelkollision ausgewählt ist, fügen wir eine weitere Komponente und zu dieser fügen wir einen Zylinder hinzu, sodass Sie einfach Zylinder eingeben können und schon haben wir einen Zylinder in der Grundform. Fahren Sie fort und wählen Sie das aus. Drüben im Detailbereich. Es gibt ein paar Dinge, die ich ändern möchte. Im Grunde werde ich das auf die Seite kippen und so zusammendrücken, dass es wie eine Münze aussieht habe einige Einstellungen, die ich im Voraus festgelegt habe , die Rotation Ich werde die X-Drehung auf minus 70 setzen. Wir werden die Y-Drehung auf minus 90 und die Z-Drehung auf minus 20 setzen. Dann werde ich auch die Skala ändern, weil das eine ziemlich fett aussehende Münze wäre. 20,75 in der X. Und ich mache die Tabulatortaste und mache 0,75 in der Y. Und für Z mache ich 0,07 und drücke dann die Es zerquetscht es. Das sieht aus wie eine Münze. Wie Sie sehen können, habe ich ein ziemlich großzügiges Volumen , in dem ich das sammeln kann. Ich werde auch gleich Material drauflegen. Wenn Sie dieses Drop-down-Menü unter Münztyp auswählen, können Sie hier aus einer der beiden Optionen wählen Ich habe die Retro-Münze oder die Neuer-Münze. Ich schätze, ich werde vorerst die Retro nehmen, aber Sie können sehen, dass das auf beiden Seiten gedruckt wird . Ja, wir haben da eine kleine Lücke, aber damit werde ich vorerst leben . Ja, das ist in Ordnung. Nun, etwas anderes, das ich sofort tun möchte, ist, dass dieses Netz kollidiert. Wenn ich nach unten in den Kollisionsbereich scrolle, wird gesagt, dass er die gesamte Dynamik blockiert. Ich möchte nicht, dass der Spieler damit überhaupt kollidiert. Ich möchte, dass sie es einfach aufnehmen, wenn sie sich mit dieser Auslöselautstärke überschneiden Jetzt denkst du vielleicht, hey, sobald wir diese Auslöselautstärke überlappen, lassen wir das Ding sowieso vergehen. Also, was macht es überhaupt aus , wenn es eine Kollision gibt? Nun, wir werden später in der Lage sein, einige Feuerbälle abzufeuern , und wir wollen nicht unbedingt , dass einige Feuerbälle gegen dieses spezielle Netz kollidieren gegen dieses Also werden wir einfach einige Kollisionen deaktivieren. Und das können wir tun, indem wir unter die Kollisions-Voreinstellungen gehen und diese einfach in „Keine Kollision“ ändern Und das wird das beheben. In Ordnung, wir wollen hier oben im Komponenten-Panel eine weitere Komponente hinzufügen . Wir klicken auf Hinzufügen und geben Rotting ein. Und wenn Sie dies auswählen, ist es keiner bestimmten Komponente zugeordnet Vielmehr wird es hier auf unseren gesamten Entwurf angewendet. Dadurch wird es so, dass sich diese Münze dreht und sie wird sich mit der in Ihrem Detailbereich eingestellten Rotationsrate drehen in Ihrem Detailbereich eingestellten Derzeit ist es auf eine Z-Drehung eingestellt um sich um die Z-Achse zu drehen, ein Wert von 180. Und das wird ziemlich gut sein. Und wenn Sie eine Vorschau davon sehen möchten, können Sie einfach Schaltfläche Simulieren klicken und schon können Sie ungefähr sehen, wie es aussieht. Das ist ziemlich gut. Auch hier gilt: Wenn Ihnen das Aussehen dieser Münze nicht gefällt, können Sie sie gegen das andere Münzmodell austauschen. Das neue Münzmodell. Verdammt, ich könnte mich stattdessen dafür entscheiden Das sieht vielleicht ein bisschen besser aus. Ja, das machen wir. Ja, mach weiter und spar dir das auf. Das ist alles, was wir in diesem Video erreichen wollten. nächsten Video, in dem wir mit der Skripterstellung beginnen, steht noch mehr Arbeit bevor. Wir sehen uns dort 17. Münz-Pickup-Skript #1: In Ordnung, mit unserem Plan zur Abholung der Münzen hier, erstellt. Lass uns weitermachen und einen zu unserem Level hinzufügen. Und Sie können sehen, dass ich meine beiden D-Snap-Einstellungen derzeit auf unsere Hauptebene eingestellt habe, das ist unser Hauptreiseweg. Wenn ich eines davon per Drag-and-Drop in unser Level ziehe, haben wir es jetzt direkt vor der Stelle, an der unser Charakter erscheint Wenn ich reinspringen und spielen würde, ziehe es einfach sofort auf den Bildschirm, du kannst sehen, dass es sich dreht Es passiert jedoch nichts, wenn unser Charakter ihn überschneidet. Fügen wir ein Skript hinzu, damit etwas passiert Und um das zu tun, doppelklicken wir auf unsere BP-Münze, nehmen sie und springen wieder rein. Und wir klicken mit der rechten Maustaste auf unsere Kugelkomponente. Weil wir wollen, dass etwas passiert, wenn unser Charakter mit dieser Sphäre überschneidet Um ein Ereignis hinzuzufügen, das sich überschneidet, klicken wir mit der rechten Maustaste auf diese Komponente, fügen ein Ereignis zur Komponente hinzu und beginnen mit der Dadurch gelangen wir von unserem Viewport zur Registerkarte „ Event-Graph Und wir wollen überprüfen, ob der andere Akteur, das andere Ding, das diese Sphärenkomponente überlappt , unser Charakter ist Wir können es wie zuvor machen und mit der rechten Maustaste klicken und einen Knoten „Spielercharakter abrufen“ und „Spielercharakter abrufen“ erstellen Wir können sehen, ob der andere Akteur unserem Spielercharakter entspricht . Ich werde die Taste mit der linken Maustaste gedrückt halten und einen Verzweigungsknoten aufrufen. Das ist ein völlig gültiges Setup. Wir überprüfen, ob der andere Schauspieler unser Spielercharakter ist und wenn ja, können wir Dinge tun. Um zu zeigen, wie das auch gemacht werden könnte, werde ich die Alt-Taste gedrückt halten und die linke Maustaste drücken, um das zu unterbrechen. Ich könnte den anderen Schauspieler hier rausziehen und eine Katze nach BP machen, um den Charakter der dritten Person zu unterstreichen Gehen wir jetzt zurück zu unserem Inhaltsbrowser, unserem Ordner mit Bauplänen für Dritte. Das ist der eigentliche Charakter, den wir gerade im Spiel kontrollieren. Eine weitere Möglichkeit, um zu überprüfen , ob wir diese Münze mit dieser bestimmten Charakterklasse überschneiden, mit dieser bestimmten Charakterklasse ist, es einfach so zu machen Wenn das stimmt, können wir von hier aus weitermachen. Wenn das falsch wäre, würde die Besetzung scheitern und wir könnten von hier aus weitermachen. Beide Methoden würden gut funktionieren. Ich werde diese Besetzung vorerst löschen und einfach mit dieser Methode weitermachen. Was wir tun wollen, ist, wenn es stimmt , dass wir diese Sphäre überlappt haben, ziehe ich sie aus unserem wahren Zweig heraus und tippe Zwei DA2D-Sounds sind also einer, der nicht an einem bestimmten Ort auf der Welt abgespielt wird Es ist einfach großartig, um Audio abzuspielen, das Sie laut hören Hier werde ich unsere Münzgeräusche einbauen. Wenn Sie auf das Drop-down-Menü klicken und einfach die Münze eingeben, werden Sie den Münzsound finden , der den Soundeffekt abspielt. Lassen Sie uns auch einen visuellen Effekt abspielen. Ich ziehe hier raus und tippe den Spawn-Emitter an der Emitter verwendet das ältere Kaskaden-Partikeleffektsystem . Alternativ könnten Sie ein Spawn-System vor Ort einrichten, die Niagara-Partikeleffekte Der Grund, warum ich das verwenden werde, ist, dass wir in unseren Inhalten, die mit Sternen markiert sind, derzeit, ab dem heutigen Datum, Zugriff auf den Explosionspartikeleffekt haben heutigen Datum, Zugriff auf den Explosionspartikeleffekt Ich habe diese Explosion mit Unterstrichen. Jetzt müssen wir angeben , an welchem Ort das gespielt werden soll Derzeit wird es am Standort 000 in meiner Welt abgespielt . Aber das ist ganz einfach. Wenn ich mit der rechten Maustaste klicke, erhalte ich ein leeres Feld, in dem ich den Standort des Schauspielers ermitteln kann . Dieser Knoten hier, das Ziel sind wir selbst. Das heißt im Grunde, lassen Sie uns das an der Position dieses Schauspielers der Waage nach spielen . Sie könnten es vergrößern, ich werde es bei 11,1 belassen aber Sie könnten eine riesige Explosion machen, wenn Sie wollten Und zu guter Letzt werden wir den Ablauf der Ausführung fortsetzen und den Zerstörungsakteur eingeben , der unseren Anführer zerstört Das heißt, dass die BP-Münze abgeholt wird, nachdem wir den Sound abgespielt haben und nachdem wir diesen speziellen Partikeleffekt gespielt haben. Lass uns weitermachen und kompilieren. Das besagt, dass unser Skript gut aussieht. Speichern wir es auch. Und jetzt schauen wir mal, ob wir das tatsächlich abholen können. Hier spielen wir, hören ein Geräusch, sehen ein Bild und es wird wieder zerstört. noch kein Punktestand erforderlich. Das wird noch kommen. Aber Leute, das wird für diesen hier absterben. Wir sehen uns im nächsten. 18. Player-Controller: In Ordnung, willkommen zurück alle. Nun, im letzten Video haben wir ein sehr einfaches Skript erstellt, mit dem wir unsere Münze abholen können. Sie werden jedoch feststellen, dass es nicht wirklich vollständig ist. Als ob wir die Summe der Münzen nicht erhöht oder irgendwelche Punkte oder ähnliches bekommen haben. Und das liegt daran, dass wir uns jetzt eine Auszeit nehmen müssen, um etwas zu erstellen, das als Spieler-Controller-Blueprint bekannt ist Heute ist ein Spieler-Controller-Blueprint ein sehr grundlegender Bauplan , der in realen Projekten zu finden ist Und das ist ein äußerst nützlicher Plan für Dinge wie das Speichern von Punkten, Sie als Benutzer, für das Speichern von Münzen für Sie, Es kann verwendet werden, um das Spiel zu pausieren und die Pause wieder aufzuheben , ganz nach Ihrem Wunsch , dem Benutzer Es kann verwendet werden, um das HUD für dich, den Benutzer, wieder einzublenden. Der Spieler-Controller stellt diese Art von Eins-zu-Eins-Beziehung zwischen dir, dem Benutzer und dem Charakter , den du kontrollierst, Für jeden Charakter, den du kontrollierst, gibt es einen Spieler-Controller-Blueprint gibt es einen Spieler-Controller-Blueprint Ordnung, also Mr. Wonder, dieser Spieler-Controller-Blueprint, wie erstellen wir einen Nun, hier unten in unserem Blueprints-Ordner, Blueprints in Platformer, werden wir einen weiteren Ordner hinzufügen Ich werde mit der rechten Maustaste in eine leere Stelle klicken. Wir werden einen neuen Ordner hinzufügen. Und ich werde dieses Framework nennen, weil der Blueprint, den wir hinzufügen werden, als eine Klasse von Framework-Blueprints bezeichnet wird als eine Klasse von Framework-Blueprints bezeichnet Dies sind sehr grundlegende, wichtige Blaupausen, die in vielen unwirklichen Projekten zu finden Ich werde jetzt in diesen Ordner eintauchen und Sie können sehen, wo wir uns in unserer Ordnerstruktur befinden Dann klicke ich mit der rechten Maustaste hier , Blueprint-Klasse. Hier wollen wir diese Player Controller-Elternklasse verwenden. Und es heißt, ein Spieler-Controller ist ein Akteur, der für die Steuerung einer Spielfigur verantwortlich Das ist ein Charakter, den der Spieler benutzt. Ich werde das BP Underscore Player Controller nennen. Jetzt, wo das fertig ist, müssen wir auf unsere Projekteinstellungen zugreifen und unserem Projekt mitteilen diesen Player-Controller-Blueprint verwenden soll Wir können hier oben rechts auf unsere Projekteinstellungen zugreifen hier oben rechts auf Wir haben hier die Projekteinstellungen in Karten und Modi festgelegt . auf der linken Seite aus, Wähle auf der linken Seite aus, dass du diese Player-Controller-Klasse findest. Auf der rechten Seite können wir dieses Drop-down-Menü anstelle des Standard-Player-Controllers auswählen . Verwenden wir den, den wir maßgeschneidert haben. Jetzt werden wir viele verschiedene Arten von Funktionen und Variablen in unserem BP-Player-Controller speichern Funktionen und Variablen in . Wir wollen also sicherstellen, dass unser Projekt dies verwendet. Im Wesentlichen wird sich unser BP-Player-Controller hier an unseren Charakter aus der dritten Person anhängen Sie werden im Laufe dieses Projekts zusammenarbeiten Laufe dieses Projekts Ordnung, damit kommen wir zurück zu unserem Projekt selbst Lassen Sie uns entscheiden, alles zu speichern. Das ist buchstäblich alles, was wir in diesem Video erreichen wollten. Wenn du einen Dialog wie diesen bekommst, rette einfach alle Leute , die das alles für diesen machen werden. Wir sehen uns im nächsten. 19. Münz-Pickup-Skript #2: In Ordnung, heiße alle willkommen. In diesem Video werden wir unserem BP-Player-Controller ein Skript hinzufügen, um werden wir unserem BP-Player-Controller ein Skript hinzufügen unsere Münzen zu summieren Lassen Sie uns also gleich loslegen. Noch einmal, das ist der Pathway Content Platformer, Blueprint Framework, wo ich diesen BP Player Controller habe Doppelklicken wir darauf, um es zu öffnen. Wenn Sie jemals sehen, dass es sich um einen reinen Daten-Blueprint handelt, können Sie hier klicken, um den vollständigen Blueprint-Editor zu öffnen In diesem Blueprint werden wir jetzt keine Arbeit im Viewport machen Arbeit im Hier wird es nichts zu sehen geben. Das alles wird im Event-Graph gemacht. Das wird das Kraftpaket sein, wenn du so willst, um irgendein Skript in unserem Spiel auszuführen Das wird entscheidend sein. Und der Grund, warum wir dieses Skript in unserem Spieler-Controller unterbringen werden , ist, dass ein Spielercontroller im Gegensatz zu einem Charakter, der sterben kann einem während unserer gesamten Spielsitzung bestehen bleibt Ordnung, als Erstes möchte ich hier ein paar Variablen im Bereich Mein Blueprint hinzufügen , indem ich auf diese Plus-Variablen-Schaltfläche klicke Der erste wird Coins heißen. Der Variablentyp wird hier eine Ganzzahl sein. Zoll bedeutet ganze Zahlen , weil wir keine Zehntelmünze haben Dann schreibe ich, klicke darauf, ich werde das duplizieren und ich werde dieses eine Münze in Leben nennen Ordnung, lassen Sie uns das sofort kompilieren damit wir einige Standardwerte dafür hinzufügen können. Für eine Standardanzahl von Leben im Detailbereich setze ich sie für Münzen auf drei. Ich werde unseren Standardwert festlegen. Nun, lassen wir es bei Null. Wir werden nicht mit irgendwelchen Münzen anfangen . Okay, dann finde hier einen leeren Bereich in deinem Diagramm. Du hast eine Menge davon. Ich werde klicken und ziehen. Und ich werde sofort ein benutzerdefiniertes Ereignis hinzufügen. Klicken Sie mit der rechten Maustaste und geben Sie benutzerdefiniertes Ereignis ein. Jetzt können Sie ein benutzerdefiniertes Ereignis benennen und es wird nur ausgelöst, wenn Sie es manuell aufrufen. Also werden wir das benutzerdefinierte Ereignis hier erstellen und es in Kürze aufrufen. Ich werde dieses benutzerdefinierte Ereignis eine Münze nennen , weil dieses kleine Skript genau das tun wird. dann, wenn dieser Knoten ausgewählt Lassen Sie mich dann, wenn dieser Knoten ausgewählt ist, einfach hier nach oben zoomen. die Strg-Taste gedrückt halte und im Detailbereich hineinzoome , Wenn ich die Strg-Taste gedrückt halte und im Detailbereich hineinzoome, füge ich eine Eingabe hinzu Klicken Sie also hier auf diese Plus-Schaltfläche. Und die Eingabe wird Münzen zum Hinzufügen heißen, und wir werden diese Ganzzahl so machen. Nun, das ist immer ein bisschen irreführend. Wir nennen das eine Eingabe und das erscheint auf der Ausgangsseite dieses Knotens Sie werden sehen, warum dies als Eingabe bezeichnet wird , denn wenn wir dieses benutzerdefinierte Ereignis aufrufen, werden wir die Anzahl der Münzen, die wir hinzufügen möchten , in diesen Knoten eingeben . Okay, also so wird unser Skript ablaufen, wenn es aufgerufen wird. Wir werden ihm eine bestimmte Menge an Münzen zum Hinzufügen geben und wir ziehen daraus heraus und geben die Plus-Schaltfläche ein. Und wir werden einen Anzeigenknoten hinzufügen, egal wie viele Münzen wir hinzufügen möchten. Wir werden hier unsere Gesamtsumme erhöhen. Unsere Gesamtzahl an Münzen wird in dieser Variablen gespeichert, sodass wir sie per Drag-and-Drop direkt auf diesen Pin ziehen können. Also geben wir eine bestimmte Menge an Münzen ein, addieren sie zu unserer Gesamtsumme und wir wollen das im Grunde zu unserer neuen Summe machen. Ich möchte hier jedoch einige Nachforschungen anstellen. Zuerst werden wir prüfen , ob diese Zahl größer oder gleich der Zahl 100 ist , weil wir ein zusätzliches Leben gewähren wenn Sie diesen Wert von 100 überschreiten. Ich werde das Ganze in die Länge ziehen uns das Ergebnis dieser Mathematik geben. Und wir werden ein Größeres als Gleiches zu n Größer-Gleichem hinzufügen. Dann ziehe ich das raus und bringe das in einen Verzweigungsknoten. Also werden wir sagen, wenn unsere Summe hier größer oder gleich 100 ist, werden wir etwas tun. Wenn das wahr ist, werden wir etwas anderes machen , wenn das falsch ist. Wenn es nun falsch ist, dass wir noch keinen Wert von 100 erreicht haben, ziehen wir diese Summe von hier weg. Wir werden einen Klemmknoten einsetzen. Wir werden eine Ganzzahl klammern, wir werden sie zwischen einem Wert von 0,100 klammern . Dann lassen wir das Ganze in einen Münzsetzer fließen So funktioniert es. Wenn wir unsere Coins-Variable hineinziehen, ziehen wir sie so rein, wir können sie bekommen, wie wir es zuvor gemacht haben , oder wir können sie in diesem Fall setzen, wir setzen sie, stecken so ein, also werden wir das so aus dem falschen Zweig herauskommen lassen . Nun, um genau zu besprechen , was dieses aktuelle Skript macht. Wir werden eine Menge Münzen einspeisen, um sie hinzuzufügen. Wir werden das dann zu unserer bestehenden Anzahl an Münzen hinzufügen . Wir werden diese zusammenzählen. Finden Sie heraus, ob diese Zahl größer oder gleich 100 ist. Wenn es falsch ist, dass sie nicht größer oder gleich 100 ist , werden wir sicherstellen, dass diese Summe hier ein Wert von 0-100 ist . Wir stellen sicher, dass sie irgendwo hier drin ist, indem wir sie auf ein Minimum oder Maximum von 100 Und dann werden wir das als unseren aktualisierten Münzwert festlegen unseren aktualisierten Münzwert Wenn wir also eine Münze sammeln würden, würden wir eine nehmen. Es hat zu unserer aktuellen Gesamtsumme beigetragen, die Null ist. Diese Summe wird eins sein. Sie wird nicht größer oder gleich 100 sein. Also verlassen wir diesen falschen Zweig und unsere aktualisierte Summe wird eins sein. Okay, als Nächstes werden wir uns damit befassen, was passiert, wenn wir diesen Schwellenwert von 100 Münzen erreicht haben. Lassen Sie uns das ein wenig nach unten verschieben. Wenn wir diese beiden zusammenfügen, ziehen wir den Vorgang wieder aus diesem Anzeigenknoten heraus. Und dieses Mal werden wir einen Subtraktionsknoten einfügen, also fügen wir einfach ein Minuszeichen ein Und das bringt uns den Operator Subtract Node hierher. Wir werden 100 subtrahieren. Beachten Sie, dass wir hier einen Ad-Node haben Subtrahieren Sie den Knoten genau hier. Und dann werden wir auch einen weiteren Clamp-Inger-Knoten hinzufügen Ich werde das auswählen, Steuerung D ausführen, um das sofort zu duplizieren. Und ich nehme das Ergebnis dieser Mathematik und setze es in unseren Wert ein. Ich werde das Minimum und das Maximum wie folgt belassen. Ich stelle erneut sicher, dass wir diesen Schwellenwert einhalten. Das ist nur, um zu verhindern, dass irgendwelche wackeligen Berechnungen stattfinden. Dann werde ich noch einmal meine Gesamtsumme für Münzen festlegen. Jetzt pass auf, das ist ein weiterer praktischer Trick. Sie können Ihre Coins-Variable hier herausziehen und wenn Sie eine Setter-Version davon einfügen möchten , können Sie sie einfach auf einen Ausgangspin wie diesen legen Und es wird einen solchen Setter reinbringen. Das wird den ganzen Weg von unserem wahren Zweig ausgehen. Was wir hier im Wesentlichen sagen wollen, ist, wenn, sagen wir, wir hätten 99 Münzen hier und wir würden eine hinzufügen, das würde 100 entsprechen. Was also passieren würde, ist genau hier, dass wir sagen würden, ja, es ist größer als oder in diesem Fall gleich 100, also würden wir aus diesem wahren Zweig herausfließen. Und wenn das dann 100 ist, würden wir 100 subtrahieren, was würden wir 100 subtrahieren im Grunde unsere Münzsumme wieder auf Null zurücksetzt, und das wäre dann unsere neu reflektierte Was wir hier tun, ist, dass wir alle 100 Münzen ein Leben hinzufügen wollen Fügen wir also ein Leben hinzu, sollen wir? Ich werde die Steuerung gedrückt halten und das Rad ein bisschen zurückdrehen, nur um mir ein bisschen mehr Platz zu geben . Ich werde unser Leben variabel einstellen. Ziehen Sie es jetzt per Drag & Drop hierher. Wir werden es holen. Und dann ziehe ich es raus und tippe schrittweise ein. Jetzt verhält sich dieser Knoten wie ein Getter und Setter, alles in einem. Wir müssen die Anzahl unserer Leben nicht so festlegen, wie wir es hier getan haben Das wird unsere Anzahl an Leben in Anspruch nehmen , in diesem Fall drei. Und das wird einfach etwas hinzufügen. Ich muss also nicht so weitermachen , um unsere Zahl an Leben zu erhöhen. Es wird es einfach automatisch tun. Das wird also unsere Anzahl an Leben ermitteln und diese Erhöhung wird sie auf den aktualisierten Wert setzen Natürlich müssen wir sicherstellen, dass unser Ausführungsablauf auch tatsächlich in diesen Prozess einfließen wird So wie es ist. Dann wäre es schön , wenn wir damit auch irgendeinen Sound spielen würden. Also werde ich diesen Typ in Sound Two D abziehen . Ich werde nur unsere Optionen hier unten auflisten. Der Sound, den ich spielen möchte, ist unser einziger Sound hier. Sie können auch die Lautstärke des Sounds einstellen. Ich belasse es bei eins, aber du kannst das ein- oder ausschalten, wenn du willst. Ich klicke mit der linken Maustaste und ziehe das ganze Skript hier hin und her, tippe auf die Taste und ich nenne es mein A-Münzen-Skript. Im Detailbereich können Sie eine gemeinsame Farbe festlegen. Normalerweise setze ich diese gerne auf etwas wie Schwarz, weil es einen schönen Kontrast bietet. Lassen Sie uns weitermachen und das kompilieren, um sicherzustellen, dass unser Skript in Ordnung ist. Speichern Sie das. Nun, das ist alles schön und gut, außer dass es noch nichts gibt, was dieses Ad-Coin-Skript tatsächlich auslösen könnte. Denken Sie daran, dass Sie bei einem benutzerdefinierten Ereignis manuell angeben müssen, wann es ausgelöst werden soll. Stelle wird also der nächste Teil davon dieser Stelle wird also der nächste Teil davon ins Spiel kommen. Stellen Sie erneut sicher, dass Sie hier kompiliert und gespeichert haben. Als Nächstes werden wir in unseren Blutdruck springen und Münzen einsammeln. Also finde deinen Weg in diesem Bauplan. Was wir tun werden, ist zunächst, dass wir in kurzer Zeit wieder auf dieses kleine Drehbuch zurückkommen in kurzer Zeit wieder auf dieses kleine Drehbuch Aber ich werde diese beiden Knoten löschen . Ereignis ankreuzen, Ereignis, Akteur, Beginn, Überschneidung. Und ich möchte das Event in die Länge ziehen und das Spiel hier beginnen. Ich möchte einen Verweis auf unseren BP-Player-Controller erstellen , damit ich das benutzerdefinierte Ereignis „ Münzen hinzufügen“ aufrufen kann . Dazu schreibe ich Click in ein leeres Feld und tippe Get Player Controller ein. Was wir dann tun werden, ist das wegziehen und Cast Two BP Player Controller eingeben . Wie. Wir sagen also im Grunde, okay, wenn wir mit dem Spielen beginnen, wollen wir herausfinden, ob der BP-Player-Controller, den wir in unseren Projekteinstellungen festgelegt haben, der ist, den wir tatsächlich verwenden. Dann können wir hier mit der rechten Maustaste auf diesen Pin klicken, rechten Maustaste klicken und wir können ihn zu einer Variablen heraufstufen. Dabei werden Sie in meinem Blueprint-Panel feststellen, dass in meinem Blueprint-Panel feststellen, Sie gerade eine Player-Controller-Variable erstellt haben , in der Ihr BP-Player-Controller gespeichert wird Ihr BP-Player-Controller gespeichert Ich werde den Namen hier einfach kürzen, klicken Sie mit der rechten Maustaste. Ich werde ihn in meinen Player-Controller umbenennen, sodass wir mit der linken Maustaste klicken und die Taste ziehen können. Dies wird mein Skript sein, in dem ich einen Verweis auf meinen Player-Controller erstelle einen Verweis auf meinen Player-Controller , den wir in diesem Projekt verwenden. Ich werde das sofort auf Schwarz einstellen. Schwarz wie meine Seele. Okay, und dann fahren wir weiter zu diesem Bereich unseres Bauplans Und wir werden hier unten ein bisschen mehr Skript implementieren unten ein bisschen mehr Skript Lassen Sie uns weitermachen und das Ganze mit der linken Maustaste verschieben Wir werden also einen Verweis auf unseren Player-Controller einfügen , indem wir mit der linken Maustaste auf Ziehen klicken Wir wollen das jetzt haben weil wir einen Verweis auf unseren Player-Controller haben Wir können das als benutzerdefiniertes Ereignis für Werbemünzen bezeichnen , das innerhalb unseres Player-Controllers existiert. Lassen Sie uns zurück zu unserem BP springen, Münzen aufheben und aus unserem Player-Controller Münzen eingeben. Ich sollte das wirklich Ad Coins nennen. Ich werde das sogar tun. Ich werde hier in den Details auf mein benutzerdefiniertes Ad Coins-Event klicken . Ich werde das aktualisieren, um Münzen hinzuzufügen. Lassen Sie uns das kompilieren und speichern. Und jetzt können Sie in meinem BP Pick Up Coins nachsehen , dass diese ebenfalls aktualisiert wurden. Beachten Sie also, dass dieser Knoten dieses Kundenereignis aufrufen wird . Es wird ihm sagen, es soll losgehen. Beachten Sie nun, dass wir diese Eingabe hinzugefügt haben, unsere Münzen, um sie hier wieder in unsere BP-Pick-Up-Münze einzufügen. Wir können sehen, dass sich dies jetzt auf der Eingabeseite dieses Knotens befindet. Wenn es stimmt, dass unser Spieler oder unser Spielercharakter diese Sphäre überlappt, werden wir das verkabeln Also lass dir das hier nicht entgehen. Stellen Sie sicher, dass Sie aus dem richtigen Zweig kommen, in dem Sie das verkabeln. Jetzt müssen wir uns sagen, wie viele Münzen wir hinzufügen wollen? Ich werde schreiben, klicken Sie auf diese Variable, aber schauen Sie sich zuerst diesen Trick an. Ich werde die Nummer eins in dieses Feld eingeben. Dann werde ich schreiben, klicken Sie auf diesen Pin. Wir werden das zu einer Variablen heraufstufen. Schauen Sie in unserem My Blueprint-Panel nach. Das heißt jetzt Coins to Add. Es hat den gleichen Namen, Münzen zum Hinzufügen. Wenn ich unseren Entwurf kompiliere, können Sie sehen, dass er den Standardwert übernehmen wird , den wir in der Box hatten Nun, hier ist ein weiterer kleiner Bonus. Lassen Sie uns weitermachen und dieses Kästchen für unsere Münzen ankreuzen, um der Instanz Editable eine Variable hinzuzufügen Auf diese Weise können wir anpassen, wie viele Münzen jede Münze wert ist Wenn wir wollten, könnten wir also eine einzelne Münze herstellen , die eine Münze, fünf Münzen, zehn Münzen usw. wert ist. Es wird so hochgradig anpassbar sein. In Ordnung, das wird unser Drehbuch hier sein. Machen wir weiter und klicken mit der linken Maustaste, ziehen und tippen auf das C, dann wird es unser Münzabhol-Skript genannt. Ich werde genau hier klicken. Klicken Sie auf „Okay“. Zoomen Sie hier ein bisschen raus. Sie können das Video hier bei Bedarf pausieren. Lass uns weitermachen und das kompilieren und speichern. Lassen Sie uns nun überprüfen, ob das tatsächlich funktioniert. Ich gehe hier zurück zu meinem Haupteditor. Beachten Sie nun, dass ich, wenn meine Münzen hier in meinem Level ausgewählt sind, die Alt-Taste gedrückt halten, mit der linken Maustaste klicken und ziehen werde . Und ich werde eine weitere Münze hierher zurücklegen. Ich kann die Münze hier wert sein, sieh dir mein Details-Menü an, das auf eins gesetzt ist. Ich kann das auf der linken Seite machen. Ich kann dafür sorgen, dass das 100 wert ist, wenn ich will um zu sehen, wie diese Zahl auf dem Bildschirm erscheint, unsere Gesamtmünzen. Lassen Sie uns unser Player-Controller-Skript vorübergehend anpassen . Wir werden das irgendwann über ein offiziell aussehendes HUD auf unseren Bildschirm ausspucken über ein offiziell aussehendes HUD auf unseren Bildschirm Aber was wir tun können, ist mit der rechten Maustaste in eine leere Stelle zu klicken. Ich werde wieder einen Print-String-Knoten einfügen. Irgendwann werde ich das loswerden, aber lass uns das machen. Immer wenn wir eine Münze einsammeln, stelle ich sie ganz zum Schluss. Wir werden das tatsächlich vom falschen Zweig haben. Im wahren Zweig werde ich im Grunde beide hier einstecken. Ich werde damit aufhören und einen Append-Knoten einfügen. Nochmals, das ist alles vorübergehend. Wir können also sehen, wie sich das auf dem Bildschirm ausspuckt. Ich werde Münzen einwerfen, Basisfläche. Dann gebe ich innerhalb unseres B-Werts einfach unsere Münze ein. Zieh das hier raus, Münzen, wir holen es, stecken es hier rein. Es wird es von einer Ganzzahl in eine Zeichenfolge umwandeln. Lass uns weitermachen und das kompilieren. Speichern und abspielen. Jetzt wirst du sehen, dass ich hier oben links im Viewport unsere erste Münze einsammeln werde. Da steht wieder Münzen eins Schau dir hier die äußerste obere linke Ecke meines Spielfensters an. Sagen wir jetzt noch einmal Münzen eins, denn wir haben alles umgedreht 1-101 gegangen. Nur um das weiter zu demonstrieren, hole ich noch ein paar Münzen heraus, indem ich die Alt-Taste gedrückt halte, mit der linken Maustaste klicke und ziehe, also lass uns nochmal spielen Ich habe oben links in meinem Viewport 123 nachgesehen. Jetzt ist dieser 100 wert, also sollte ich zu drei zurückkehren In Ordnung, und da haben wir es. Wir haben unser Skript zum Sammeln von Münzen fertiggestellt und es hochgradig anpassbar gemacht , sodass wir es für jedes Exemplar unserer Münze so gestalten können, dass wir die Anzahl der Münzen, die jede einzelne wert ist, anpassen können . Und wenn Sie das tun und es visuell etwas übersichtlicher gestalten möchten, können Sie festlegen, dass es zehn Münzen wert ist. Sie könnten in Ihrem Detailbereich das Zylindernetz auswählen , das unsere Münze darstellt. Sie könnten das Material gegen ein anderes Material austauschen, vielleicht eine andere Münze. Vielleicht könntest du den Maßstab für den gesamten Tonabnehmer so einstellen , dass er insgesamt größer ist. Sie könnten es also auf einen Gesamtwert von etwa drei setzen , ungefähr so. Und wenn das gesperrt ist und Sie einen Wert auf drei setzen , werden alle auf drei gesetzt. Also los, Leute, das wird es für diesen Fall erledigen. Wir sehen uns im nächsten. 20. Tongleichzeitigkeit bei Münzaufnahme: Willkommen. In diesem Video ist es unser Ziel, ein solides Nebenläufigkeits-Asset zu erstellen und es dann in unserem Münzabhol-Skript zu verwenden, um zu unser Audio beim Abholen von Münzen durchgeblasen wird , wenn gleichzeitig eine Tonne Münzen gesammelt Nun, ich habe hier ein Beispiel eingerichtet, bei dem mein Spieler ganz oben spawnen und herunterfallen wird ganz oben spawnen und , um eine Menge Münzen einzusammeln Also werde ich das Problem jetzt für Sie aufdecken. Nicht großartig, oder? Um das Problem zu beheben, werden wir dieses Sound-Parallelitäts-Asset erstellen, und ich werde das in meinem Platformer-Audioordner genau Ich habe vor der Aufnahme dieses Videos einen Probelauf gemacht. Ich nehme dieses Video lange nach der Aufzeichnung des Kurses auf. Und ich klicke mit der rechten Maustaste und erstelle ein brandneues Sound-Concurrency-Objekt, indem ich unter Audio-Sound-Parallelität Ich werde diese Warnung von Dell hier loswerden. Und dann werde ich das sofort umbenennen. Wenn ich es auswähle und F zwei drücke, nenne ich diesen einen Münzunterstrich Cc. Wenn ich auf dieses Asset doppelklicke oder es ausgewählt habe, drücke ich einfach die Leertaste Sie werden einige Parameter sehen, die mit diesem Asset verknüpft sind. diesem Asset können wir nun im Wesentlichen einige Regeln für diese Art von Szenario festlegen , in dem möglicherweise eine ganze Reihe von Sounds gleichzeitig abgespielt werden. Und nur um Ihnen zu zeigen, wo wir dieses Sound-Asset irgendwann einbauen werden, werde ich hier zu meinem Level zurückkehren. Und ich werde meinen Münzplan öffnen. Ich könnte hier in meinem Level oder im Outliner einen auswählen. Ich kann sehen, dass ich auch hier unten einen Haufen Münzen habe hier unten einen Haufen Münzen Du kannst einfach auf BP Coin Pickup bearbeiten klicken. Und wo wir das einbauen werden, ist unsere Play Sound TD-Funktion. Das ist unser Skript zum Sammeln von Münzen. Wenn Sie hier auf dieses Drop-down-Menü klicken , werden weitere Parameter angezeigt Und eine davon ist eine Parallelitätseinstellung. Ich werde das gleich eintragen , auch wenn wir hier keinerlei Änderungen an unserem Coin-Parallelitäts-Asset vorgenommen haben . Wählen Sie das aus Da ist die, die ich vor den Dreharbeiten zu diesem Video erstellt habe . Ich werde die Parallelität der Münzen einbauen. Daran wir arbeiten. Also ist es schon eingepasst . Lassen Sie uns nun zu unserem Vermögenswert „Coin Concurrency“ zurückkehren Darin haben Sie einige Parameter, mit denen Sie herumspielen können maximale Anzahl ist die Anzahl der Sounds, die gleichzeitig abgespielt werden können Ich werde das auf drei reduzieren, und diese Zahl habe ich durch einige Spieltests erreicht durch einige Spieltests Drei sind also ziemlich gut für dieses Szenario. Auflösungsregel. Dies gilt für das, was passiert, wenn unsere maximale Anzahl erreicht ist, und Sie haben hier verschiedene Optionen. Und wenn Sie mit der Maus über jedes dieser Elemente fahren, wird es Ihnen genau sagen, was es tut. Um das zu testen, höre ich gerne mit dem ältesten auf. Wenn ich also diese Zahl von drei übertrete, stoppe ich den ältesten Sound , den ich ausgelöst habe, und fange einen neuen an. Und bei dieser erneuten Triggerzeit lasse ich es in Ruhe, aber auch gerne damit herumspielen Noch einmal, der Tooltip sagt dir genau, was das macht Dies ist die Zeit in Sekunden, in der zwischen verschiedenen Sounds gewartet werden muss, bis sie abgespielt werden. Ich werde weitermachen und das speichern. Und da das schon in meiner BP-Pickup-Münze eingesteckt ist, werde ich weitermachen und kompilieren Das Drehbuch ist hier in Ordnung. Speichere das auch, springe zurück in mein Level. Und wenn ich auf Play klicke, wirst du ein ganz anderes Erlebnis hören Jetzt bekommst du beim Spielen dieses Audio-Cacapone nicht mehr , wenn du willst Ordnung, Leute, das reicht, um anzubieten. Wir sehen uns im nächsten 21. Feuerleiste (Teil #1): Willkommen. Im Laufe der nächsten Videos hier werden wir diesen Typen bauen, unsere allererste Gefahr, eine Feuerbar. Und wir werden sie hochgradig anpassbar machen , sodass wir bestimmen können, wann sie in unserem Level-Editor platziert wird, wie lang diese Feuerleiste sein soll, wie schnell sie sich dreht, welche Richtung sie sich dreht, all diese guten Sachen. Lassen Sie uns also gleich loslegen. Alles klar hier und Unreal in meinem Platform-Blueprint-Ordner Ich klicke mit der rechten Maustaste in eine leere Stelle. Ich werde den Blueprint-Kurs wählen. Das wird ein Plan für Schauspielerklasse sein , weil wir ihn der Welt vorstellen werden Das nenne ich BP Underscore Fire Bar. Machen wir weiter und doppelklicken wir darauf, um es zu öffnen. Und wir werden sofort ein paar Komponenten hinzufügen. Die erste, die ich eingeben werde, Box, wird eine Box-Kollisionskomponente sein. Ich belasse es beim Namen der Box. Und ich werde mir jetzt keine Gedanken über den Umfang machen, weil wir das dynamisch anhand eines Konstruktionsskripts berechnen werden , das wir hier später schreiben. Als Nächstes wähle ich wieder unsere Standard-Szenenroute aus, weil ich diese nächste Komponente an die Standard-Szenenroute anhängen möchte, also hier im Wesentlichen der Mittelpunkt, nicht die Box Dies wird ein statisches Instanznetz sein, nicht das hierarchische Instant-Mesh Das statische Instant-Mesh werde ich tatsächlich, lassen wir es einfach stehen Sofortiges statisches Netz ist in Ordnung. Wir könnten es Ball oder so etwas nennen, aber wenn dies im Detailbereich ausgewählt ist, werde ich unser statisches Netz in eine Kugel ändern. auf diese Dropdown-Kugel klicke, möchte ich eine, die einfach Kugel heißt. Dieser Typ hier bei der Größe 100, genau da in der Mitte, da steht die ungefähre Größe 100 mal 100 mal 100. Es ist im Ordner „Engine Basic Shapes“. Sie können diesen Pfad oben sehen. Das ist der, nach dem ich suche. Dann, was das Material angeht, alles dafür reicht. Obwohl ich etwas haben möchte , das ein wenig flammig aussieht, werde ich nach M. suchen. Underscore Fire underscore 03 Es ist dieser hier, der aus dem Infinity Blade Effects Pack stammt Infinity Blade Effects Pack stammt Auch hier ist das Material nicht wirklich wichtig, aber ich möchte etwas, das ein bisschen flammig aussieht Das werden wir auch hinzufügen. Jetzt sehen wir noch keines dieser statischen Instanznetze. Obwohl wir unseren Fireball hier in Kürze dynamisch über das Konstruktionsskript auffüllen dynamisch über werden Jetzt gibt es noch eine weitere Komponente, die ich hier hinzufügen möchte. Aber bevor ich das mache, habe ich eine Sache vergessen, die ich an unserem statischen Instanznetz hier ändern möchte unserem statischen Instanznetz hier ändern im Detailbereich unter den Kollisionseinstellungen nach unten gescrollt , wo Kollisionsvoreinstellung steht Ich werde das von „ Nur dynamisch blockieren “ auf „Keine Kollision“ ändern dynamisch blockieren “ auf „Keine Kollision Der Grund dafür ist , dass unsere Box das Ding sein wird , bei dem wir die Kollision mit einer dieser Instanzkugeln überprüfen mit einer dieser Instanzkugeln , aus denen diese Feuerleiste bestehen wird. Ich möchte nicht, dass etwas damit kollidiert. Das alles wird über unseren Box Collider erledigt. Ordnung, als Nächstes füge ich In Ordnung, als Nächstes füge ich hier oben links eine weitere Komponente hinzu, und das wird unsere Komponente zur Fäulnisbewegung sein. Rotierende Bewegung. Das wird die Komponente sein, sie ist an nichts gebunden. Es ist nur ein bauplanspezifischer Plan, der unsere Feuerwaffe in die eine oder andere Richtung drehen wird unsere Feuerwaffe in die eine oder andere Richtung drehen Ich werde die Rotationsgeschwindigkeit im Detailbereich so einstellen , dass sie eine Rotationsrate von 50 im Y hat. Ich werde sie auf Null setzen Ordnung, als Nächstes werden wir hier ein paar Variablen erstellen ein paar Variablen und auf diese Plus-Schaltfläche klicken Und die erste, die ich will, wird Flame Ball Nummer heißen. Das wird eine Ganzzahl sein. Und das wird bestimmen , wie viele dieser Flammenkugeln unsere Arm- oder Feuerleiste hier ausmachen werden. Ich werde auch im Detailbereich ein paar Dinge ändern. Ich möchte diese Instanz editierbar machen, damit wir deren Anzahl im Editor ändern können Dann möchte ich auch eine Kategorie dafür festlegen , damit wir diese wenigen Variablen haben , die ich innerhalb einer Kategorie in unserem Variablenbereich erstellen werde innerhalb einer Kategorie in unserem Variablenbereich erstellen Wenn ich hier reinklicke, kann ich einfach dort überschreiben, wo Standard steht Und ich nenne das, ich nenne Bar Customization. Da haben wir's. Da haben wir's. Jetzt können Sie in unserem Variablenbereich sehen, dass wir eine Kategorie namens Balkenanpassung haben. Und in dieser Kategorie ist eine Flammenball-Nummer enthalten . Mit dieser ausgewählten. Ich werde D darauf kontrollieren, um es zu duplizieren. Dieser wird Balldistanz heißen. Abgesehen. Ich möchte, dass dies auch in der Instanz bearbeitet werden kann. Wir werden hier gleich einige Standardwerte festlegen. Ich werde hier eine weitere Variable hinzufügen. Dieser wird Flame Ball heißen. Dies wird die Größe jeder dieser Flammenkugeln bestimmen . Ich werde das als Vektorvariable festlegen damit wir deren X-, Y- und Z-Größe bestimmen können . Ich werde es so einstellen, dass es von Instanzen bearbeitet werden kann. Und schauen Sie hier in unserer Kategorie nach, Sie können sehen, dass es nicht wirklich in unserer Kategorie der Balkenanpassung aufgeführt in unserer Kategorie der Balkenanpassung Aber drüben im Detailbereich kann ich die Anpassung der Leisten angeben , indem ich auf das Drop-down-Menü klicke, und jetzt ist es in dieser Kategorie. Die letzte Variable, die wir hinzufügen werden, wird als Rotationsrate bezeichnet. Das wird ein Rotator sein. Im Detailbereich werde ich das überprüfen. Machen Sie eine Instanz auch bearbeitbar, damit wir die Rotationsrate anpassen können Und ich werde das auch auf die Kategorie Balkenanpassung setzen auch auf die Kategorie Balkenanpassung Lassen Sie uns weitermachen und das kompilieren, damit wir einige Standardwerte für meine Flammenball-Nummer festlegen können . Ich werde das einstellen, wir sagen fünf. Wir werden eine Flammenleiste haben, die standardmäßig aus fünf im Abstand voneinander besteht. Ich setze diesen Wert auf 60, 60, weil das ein Wert ist, den ich im Voraus festgelegt habe, die Größe der Flammenkugel. Ich werde diesen Wert pauschal auf 0,5 setzen. Noch einmal, ich lege das im Voraus fest. Die Rotationsrate, ich werde sie mit der Rotationsrate von 50 im Y vergleichen lassen, die ich bei meiner Drehbewegung hatte von 50 im Y vergleichen lassen, die ich bei meiner Drehbewegung . Ich werde sie auch für diese Variable auf 50 im Y setzen . Ich werde sie auch für diese Variable auf 50 im Y Ordnung, lassen Sie uns weitermachen und das sofort speichern , damit wir hier keine Arbeit verlieren Und dann lasst uns zu unserem Konstruktionsskript übergehen. Wir werden hier in unser Konstruktionsskript ein Skript einfügen, weil dies das Aussehen unseres Fireballs während der Entwurfszeit ändern wird das Aussehen unseres Fireballs während der Entwurfszeit ändern , bevor das Spiel tatsächlich läuft Wir haben einige coole Dinge , die wir direkt in diesem Abschnitt machen werden direkt in diesem Abschnitt machen Das erste, was ich tun möchte, ist , unsere Flame-Ball-Nummer einzugeben hierher zu ziehen und dort abzulegen. werden wir uns holen. Wir werden das in die Länge ziehen und abziehen Bringen Sie einen Subtraktionsknoten ein. Wir subtrahieren das von der Zahl eins. Und Sie werden gleich hier sehen, warum. Weil wir den Ausgang davon an einen Vier-Loop-Knoten anschließen werden einen Vier-Loop-Knoten Wir werden vier Schleifen eingeben, nicht vier Schleifen. Bei Break Just Four Loop möchte ich das eigentlich in den letzten Index einbinden Ich werde die Strg-Linksklick gedrückt halten und das Ganze in unseren letzten Index ziehen Ich subtrahiere das um eins, weil wir diese Schleife mit der Zahl Null beginnen Also werden wir das in einer Schleife durchgehen, wir wollen tatsächlich fünf Flammenkugeln hinzufügen , die Zahl Wenn wir bei Null anfangen zu zählen, müssen wir eins subtrahieren, sodass die Ausgabe dieser Vier 01234 ergibt So oft werden wir das wiederholen. Genau genommen fünfmal, aber ab der Zahl Null, okay? Aus diesem Loop-Körper heraus werde ich einen Sequenzknoten einfügen, werde ich einen Sequenzknoten einfügen die S-Taste gedrückt halte und mit der linken Maustaste klicke. Wir werden eine Sequenz einfügen, weil wir hier mehrere Dinge tun werden. Ich werde sofort eine weitere PIN hinzufügen. Das erste, was ich tun werde, ist, diesen Index zu entfernen und einen Multiplikationsknoten einzufügen. Jedes Mal, wenn wir das durchgehen, wird es die Indexnummer hier ausspucken , 0123 usw. Und ich möchte das mit dem Abstand zwischen unseren Flammenkugeln multiplizieren unseren Flammenkugeln Wir können das hier so per Drag-and-Drop hinziehen. Nun, die Ausgabe davon werden wir letztendlich in einen Make-Vector-Knoten einbinden Wir werden gleich darauf zurückkommen, aber in diesem ersten Teil des Skripts werden wir Instanzen unseres Flammenballs hinzufügen Ich werde unsere Instanz Static Meshed hineinziehen. Das waren diese kugelförmigen Flammenkugeln, wenn man so will. Ich ziehe mich hier raus und tippe eine Instanz ein. Jetzt hätten wir das einfach machen können. Jetzt wird es eine weitere Kopie dieser Instanz hinzufügen, statisches Mesh, das ich nicht benötige. Ich werde das löschen . Das ist nur eine weitere Kopie. Letztlich wird der Sequenzknoten hier angeschlossen. Der Sequenzknoten wird es uns ermöglichen, mehrere Dinge fast zur gleichen Zeit zu erledigen , sequentiell, aber für unsere Zwecke fast genau zur gleichen Zeit Jetzt geben wir an, wo eine Instanz hinzugefügt werden wo eine Instanz hinzugefügt Lassen Sie uns das Ganze rückwärts ziehen und transform, make transform eingeben transform, make transform Dadurch werden eine Position, eine Drehung und ein Maßstab angegeben Drehung und ein Maßstab Was nun die Waage angeht, können wir einfach unsere Flammenkugelgröße eingeben. Das wird unsere Skala für jedes dieser statischen Instanzgitter Ich doppelklicke auf dieses Kabel, um einen Umleitungsknoten einzufügen. Lass das jetzt für unseren Standort etwas sauberer aussehen. Ich ziehe zurück und tippe Make Vector ein, weil eine Position aus X-, Y- und Z-Daten besteht Eigentlich möchte ich hier nur den Abstand in der Richtung, der Z-Richtung, angeben hier nur den Abstand in der Richtung, der Z-Richtung, Ich werde das direkt in mein Z stecken und es wird den Integer-Wert , der hier ausgegeben wird, in einen Float-Wert umwandeln , weil dieser Knoten eine solche Float-Eingabe benötigt. Versuche das ein bisschen aufzuräumen. Okay, das wird der erste Teil unseres Drehbuchs hier sein. Okay, das bedeutet Linksklick und Ziehen, Tippen auf einen Himmel. Ich werde sagen, füge Instanzen von Flame Ball hinzu. Okay, das ist das Erste, was wir tun werden. Ich werde versuchen, das einzurahmen. Wenn du das Video hier pausieren willst, kannst du sehen, was das bewirkt. Okay, also wenn ich eine Kopie davon ziehen würde, würde ich das sofort kompilieren und speichern. Ich werde einfach eine Kopie dieser Feuerleiste in unser Level ziehen , okay? Und weißt du was, lass mich das auf die richtige Art machen. Ich werde das hier so einstellen, dass es auf meiner Hauptebene ist. Stellen Sie sicher, dass mein 2-D-Schnappschuss aktiviert ist. Okay. So kannst du ungefähr sehen , wie es dort aussieht. Im Detailbereich könnte ich also eine Anzahl von Flammenkugeln angeben. Und Sie können sehen, dass es sich nach oben ausdehnen wird , was ziemlich toll ist. Wenn ich jetzt den Abstand zwischen den Flammenkugeln einstelle, könnte ich das auch einstellen. Sie werden sehen, wie dynamisch wir das machen können. Das ist ziemlich cool. Wir können sogar die Größe der Flammenkugel ändern. Wenn ich wollte, könnte ich das so ändern, dass es eins ist und 1.1 Es würde es ein bisschen größer machen. Nun, diese Rotationsrate wird noch nichts bewirken, aber lassen Sie mich einfach alle auf die Standardwerte zurücksetzen. Sie werden hier feststellen, dass, wenn ich das ändere, alles schön und gut ist, aber wir werden es mit der Kollision hier, dieser Kollisionsbox, vergleichen. Und das entspricht nicht meiner Anzahl an Flammenkugeln. Das wird unser nächstes Drehbuch hier sein. Lass uns zurück in unsere BP-Feuerbar springen. Was wir tun werden, ist , dieses Ergebnis hier in die Länge zu ziehen und einen Divide-Node einzubauen. Teilen Sie, und wir werden das durch die Zahl zwei teilen. Dies wird für einen Teil unserer Berechnungen verwendet , um die Größe unserer Box-Komponente hier anzupassen. Lassen Sie uns weitermachen und die Box genau hier einfügen, unsere Box-Komponente. Und dann ziehen wir das weg und geben die festgelegte Box-Ausdehnung ein. Im Wesentlichen wollen wir hier unsere Box-Extent-Parameter direkt hier per Skript ändern . Okay, bring das rein. Wir werden diesen Typ auch an festgelegter relativer Position wegziehen . Die Box wird unser Ziel für beide sein. Okay, was unsere Box-Position angeht, werde ich von der neuen Position rückwärts ziehen und Make Vector eingeben Also nehme ich das Ergebnis dieser Mathematik hier und setze es in unseren Wert Stellen wir sicher, dass wir diesen Sequenzknoten sofort einhängen, damit dieses Teil des Skripts tatsächlich ausgelöst wird. Jetzt ist es nicht wirklich wichtig, ob wir das zuerst hier einstecken, aber wir wollen, dass beide ausgelöst werden. Stell sicher, dass es egal ist, ob du zuerst diesen oder jenen einhängst , okay. Dann wollen wir auch einen Make-Vektor für unsere Box-Ausdehnung angeben. Geben wir hier make vector ein. Wir nehmen das Ergebnis derselben Mathematik, das wir aus derselben Ausgabe herausholen können. Wir setzen das in unser Z und ändern unser X auf einen hartbeschichteten Wert von zehn und ein Y von 50. Lassen Sie uns weitermachen und das noch einmal kompilieren . Wenn wir jetzt in unserem Level-Editor zurückschauen, werden Sie feststellen, dass dieses kleine Skript unsere Kollisionsbox tatsächlich erweitern wird. Sie können sich vorstellen, dass es quasi alle Bälle dort dynamisch durchschneidet . Wenn ich also, sagen wir, die Anzahl der Flammenkugeln hier erhöhen würde, können Sie sehen, dass sich auch diese Box anpasst. Auch hier werde ich es dünn halten, aber wenn ich um diesen Winkel peitsche, können Sie in dieser Reiseansicht sehen, dass ich es etwas dicker mache , damit es unseren Spieler nicht verfehlt , wenn es versucht, mit unserem Spieler zu kollidieren. Okay, noch ein kleines Drehbuch, das wir in unserem BP Fireball machen müssen Spring da wieder rein. Wir werden unsere Rotationsgeschwindigkeit anpassen. Lassen Sie mich einfach mit der linken Maustaste auf all diese Knoten klicken und die Strg-Taste gedrückt halten. Ich ziehe einfach zur Seite, drücke hier die C-Taste und ich nenne das „Box Extent Sizing“ wie. Also schieb das her. Okay, lassen Sie uns unsere rotierende Bewegungskomponente einbauen. Das ziehen wir mit rein. Wir ziehen das in die Länge, wir geben die festgelegte Rotationsrate ein. Im Wesentlichen wollen wir mit dieser rotierenden Bewegungskomponente unsere Rotationsrate manuell anpassen. Derzeit haben wir unsere Rotationsratenvariable. Lassen Sie uns das per Drag-and-Drop direkt in diesen Knotensatz ziehen. Das ist genau derselbe Wert, aber da wir diese Variableninstanz editierbar gemacht haben, können wir dies pro Instanz dieser Flammenleiste anpassen Das wird ziemlich toll sein, also werden wir das mit der linken Maustaste markieren Und ich nenne das „Meine benutzerdefinierte Rotationsrate zulassen In unserem endgültigen Skript wird das ungefähr so aussehen. Ich werde versuchen, alles so zu gestalten. In Ordnung, lass uns weitermachen und das kompilieren und speichern. Lass uns hier ein paar dieser Flammenstäbe reinbringen. Ich halte die Alt-Taste gedrückt, klicke mit der linken Maustaste und ziehe die zweite Taste hierher. Ich werde die Anzahl der Flammen einfach auf zehn erhöhen. Ich werde die Rotationsrate ändern. Gehen wir bei minus 100. Es wird also in die entgegengesetzte Richtung gehen und es wird ein bisschen schneller gehen. Wenn ich jetzt reinspringen und spielen würde, können Sie sehen, dass wir zwei Flammenbalken haben sich in entgegengesetzte Richtungen drehen. Sie tun mir noch nichts an, aber sie drehen sich wie beabsichtigt. Sie drehen sich unterschiedlich schnell, sie haben unterschiedliche Längen usw. Wir haben also einen ziemlich guten Start unseren Flame Bar-Blueprint Hier gibt es jetzt noch mehr zu tun da wir das tatsächlich auf unseren Spieler auswirken Aber Leute, das wird alles für diesen machen. Wir sehen uns im nächsten. 22. Feuerleiste (Teil #2): In Ordnung, willkommen zurück alle. Jetzt haben wir unseren BP-Feuerbalken und er dreht sich, aber er schadet unseren Spielern nicht wirklich . Teil zwei hier wird sich also damit befassen. Wir werden ein Skript erstellen, um unserem Spieler Schaden zuzufügen. Dafür werden wir hier in unseren Ordner für Dritte eintauchen . Die dritte Person entwirft unseren BP, den Charakter aus der dritten Person. Machen wir weiter und doppelklicken auf diesen Typen, um ihn zu öffnen Als erstes möchte ich mein Ich auswählen. Ich gehe in meinen Viewport-Tab, damit wir unseren Charakter tatsächlich sehen können Und ich werde das Material unseres Charakters hier im Detailbereich ändern , hier haben wir Materialien, wir haben ein Element Null und Element eins Diese entsprechen verschiedenen Aspekten dieses Farbcodes. Die Bilder unseres Me One sind für das Logo in der Mitte und der Rest ist im Grunde genommen für diese Rüstung, wenn man so will Ich werde hier das Element Null durch Blau ersetzen. Ein geteiltes Blau, so etwas ganz Blaues. Okay, was wir hier tun werden, ist, wenn unser Charakter beschädigt wird, werden wir dieses Material einfach austauschen. Nur ein einfacher optischer Schalter , der anzeigt, dass unser Spieler beschädigt wurde. Ordnung, als Nächstes gehen wir zu unserem Event-Diagramm und fügen ein benutzerdefiniertes Event hinzu. Wir klicken mit der rechten Maustaste in ein leeres Feld geben „Benutzerdefiniertes Ereignis hinzufügen“ ein. Und wir werden dieses Ereignis Just Hit Points nennen. Und wenn dies im Detailbereich ausgewählt ist, fügen wir eine Eingabe hinzu, indem wir auf diese Plus-Schaltfläche klicken. Und wir werden das Hit Points Modifier nennen. Und ich werde das von einem Goldbarren in eine Ganzzahl ändern , die eine ganze Zahl ist Als Nächstes erstellen wir eine Variable. Im Detailbereich hier drüben erstellen wir eine Variable Das wird einfach als Trefferpunkte bezeichnet. Ich werde den Typ hier auf eine Ganzzahl ändern, das wird eine ganze Zahl sein. Ich werde hier meinen Blueprint kompilieren und den Standardwert für den Anfang auf 22 Trefferpunkte ändern für den Anfang auf 22 Trefferpunkte Ordnung, wir werden hier ein Drehbuch erstellen und wir werden einige Dinge tun, die auf der Anzahl der Trefferpunkte basieren , die unser Charakter hat Also lass uns das hier zur Seite verschieben. Wir werden unsere Kundenveranstaltung „Trefferpunkte anpassen“ in die Länge ziehen . Und wir werden einen Sequenzknoten hinzufügen. Einen Sequenzknoten, weil wir anhand dieses benutzerdefinierten Ereignisses, wenn es irgendwann aufgerufen wird, einige Dinge tun werden dieses benutzerdefinierten Ereignisses, wenn es irgendwann aufgerufen wird, einige Dinge . Ordnung, als Erstes ziehen wir den Modifikator für die Trefferpunkte und die Zahl heraus , die wir letztendlich übergeben durch diesen Aufruf dieses benutzerdefinierten Ereignisses Wir werden das hinzufügen, wir werden das zu unseren Trefferpunkten hinzufügen , die unser Spieler derzeit haben wird Ziehen Sie das einfach dorthin. Wir nehmen dann die daraus resultierende Mathematik und wir werden das zusammenfassen. Wir werden diese Ganzzahl zwischen einem Wert von Null und einem Höchstwert von zwei klammern zwischen einem Wert von Null und , um sicherzustellen, dass unsere Mathematik hier niemals diese Grenzen überschreitet Wir werden das dann wieder in unsere Trefferpunkte einrechnen. Wir werden unsere Trefferpunkte festlegen. Wenn ich meine Trefferpunkte per Drag-and-Drop auf diesen Rückgabewert ziehe, wird ein Setter angezeigt Wir werden das auf diese Weise mit unserem Null-Pin machen. Okay, dann ziehen wir das in die Länge und fügen einen Gleichheits-Knoten hinzu Wir werden herausfinden, ob unsere Trefferpunkte gleich Null sind. Und ich werde einen Zweig hinzufügen, wenn unsere Trefferpunkte gleich Null sind, werden wir etwas tun. Und wenn es nicht gleich Null ist, werden wir etwas anderes tun. Wenn es gleich Null ist, dann wollen wir nur wahren Zweig abziehen und Destroy Actor eingeben , wobei das Ziel wir selbst sind. Grundsätzlich gilt: Sobald du null Trefferpunkte erreicht hast , zerstöre dich selbst Du bist fertig. Tschüss. Nun, wenn wir noch nicht Null Trefferpunkte erreicht haben, wollen wir unser, unser Netz besteht aus Material, ändern . Dieses Material ist mit diesem Netz verknüpft. Okay, beachten Sie, dass es sich um Element Null handelt. Dieses blaue Element Null. Unsere Arme und Beine hier. Okay? Also ziehen wir einen Verweis auf unser Mesh rein. Ziehen Sie das, was ich hier rausziehen werde, per Drag-and-Drop. Und ich werde Setmaterial eintippen. Wenn es falsch ist, dass unsere Trefferpunkte es nicht sind, werden wir Element Null unseres Netzes ändern , Element Null. Wir werden das Material ändern eine andere Farbe annehmen. Welche andere Farbe wird nun davon abhängen, wie viele Hüftpunkte wir letztendlich noch übrig haben. Wir werden dafür einen ausgewählten Knoten verwenden, und das ist einer der coolsten Knoten im gesamten Blueprint-Scripting Ich ziehe das Ganze rückwärts und tippe Select und So wird dieser Knoten auf Grundlage einer Indexnummer funktionieren, in diesem Fall unserer Anzahl von Hitpoints. Wir werden das gleich hier einbauen. Wir werden ein anderes Material wählen. Wenn das Null sein wird, wir unsere Option ändern. Wenn das Null ist, wird es rot. Ich gebe Anum Red ein, um ein gerades rotes Material zu finden Wenn unser Eingangsindex, die Anzahl der Trefferpunkte, eins ist, ändern wir diesen Wert in einen gemeinsamen grünen Wert In Option zwei fügen wir hier einen weiteren Pin hinzu. Wenn unsere Anzahl an Hüftpunkten zwei ist, wählt es aus, es wird das Material ausgegeben, das hier mit Option zwei verknüpft ist. Und das wird unser Anum Blue sein. Je nachdem, was dieser eingehende Index ist, geben wir die zugehörige Option 01 oder zwei Wenn der Index Null ist, wird er dieses Anum in dieses Material ausgeben, um unser Nachrichtenmaterial zu ändern Wenn es eins ist, wird es dieses ausgeben. Wenn der Index zwei ist, wird das zugehörige Material ausgegeben. Ziemlich cool. Als Nächstes wollen wir uns mit einigen Soundeffekten befassen, die mit dem Erreichen oder Verlieren eines Trefferpunkts verbunden sind. Wir werden also hier zu unserem Modifikator für die Trefferpunkte zurückkehren Und wir werden das in die Länge ziehen, ich werde einen Knoten mit mehr als einbauen Wir werden sagen, wenn dieser Modifikator für eingehende Trefferpunkte größer als Null ist, wenn das der Fall ist, werden wir einen weiteren Zweig hinzufügen Also werden wir dafür sorgen, dass unser einziger Schmerz von der Sequenz abweicht, Schlangen genau hier unten Wenn das stimmt, spielen wir ein Geräusch ab, ziehen es von hier ab und geben Play Sound Two D. Der Sound , den wir dafür spielen werden, wird ein Power-Up-Sound sein. Klicken Sie auf das Drop-down-Menü, geben Sie Power Up, Mario Power Up ein. Sie können darauf klicken und die Lautstärke anpassen, wenn Sie möchten. Ich werde das zusammenklappen. Okay. Wenn es falsch ist, dass es nicht größer als Null ist, werden wir das an einen anderen Zweig anschließen , den wir verwenden werden. Okay, kommen Sie gleich wieder hoch Wenn wir einen Trefferpunkt erreicht haben, werden wir im Grunde einen Power-Up-Sound-Drag von hier abspielen , wieder einmal, den Hitpoints-Modifikator Und wir werden einen Knoten einsetzen, der kleiner als ist. Wir werden sagen, wenn es weniger als Null ist, was bedeutet, dass wir getroffen wurden, ziehen wir einen Trefferpunkt Im Grunde werden wir das mit einem Und-Knoten und einem Booleschen Wert verbinden Wir werden hier auch eine weitere Bedingung überprüfen. Wenn beides zutrifft, nehmen wir unsere Trefferpunkte, ziehen sie rein, wir holen sie, dann ziehen wir sie raus und geben ungleich gleich, ungleich Null Und dann werden wir das an unseren Zweigknoten anschließen . Dann werden wir uns hier aus unserem wahren Zweig herausholen und ein weiteres Theaterstück einbauen. klingt nach D. Dafür ist er da, Mario Warp. Lass uns damit weitermachen Das Drehbuch hier unten sagt im Wesentlichen, dass, wenn wir einen Trefferpunkt verloren haben, also weniger als Null, wir einen Trefferpunkt verloren haben, wenn unsere aktuelle Anzahl an Trefferpunkten nicht Null ist, was bedeutet, dass wir noch hier unten sagt im Wesentlichen, dass, wenn wir einen Trefferpunkt verloren haben, also weniger als Null, wir einen Trefferpunkt verloren haben, wenn unsere aktuelle Anzahl an Trefferpunkten nicht Null ist, was bedeutet, mindestens einen Hüftpunkt übrig haben Wenn beides zutrifft, werden wir diese Art von negativem Soundeffekt spielen , diesen Mario Warp Sound diesen Mario Warp Lassen Sie mich einfach weitermachen und gleich zur Sache kommen. Und so, wie ich dazu komme, ist, dass ich genau dort auf diese Lupe geklickt Es wird nach diesem Asset suchen, und hier ist es, damit Sie sehen können, wie sich das anhört Okay, lassen Sie mich ein bisschen zurückzoomen. Ich werde versuchen, das alles zu erklären. Stellen Sie sicher, dass Sie sich all diese Knoten sorgfältig angesehen haben. Stellen Sie sicher, dass Sie die richtigen Werte in den richtigen Feldern haben , es ist so einfach, hier einen Fehler zu machen. Gehen Sie das also sorgfältig durch und kompilieren wir dann dieses Skript. Und speichere es. Machen wir weiter und klicken Sie mit der linken Maustaste und ziehen Sie auch um all diese Knoten. Ich werde auf die C-Taste tippen damit wir dazu einen Kommentar hinzufügen können. Und ich werde das mein Skript zum Ändern von Hit Points nennen. Und ich werde das noch einmal kompilieren und speichern. Okay, das ist alles schön und gut, aber noch einmal, dieses benutzerdefinierte Ereignis, es muss gesagt werden, wann es losgehen soll. Lassen Sie uns also zu unseren Fire-Bar-Blueprints springen , um ein bisschen mehr Arbeit zu erledigen Jetzt kann ich darin navigieren , indem ich zu unserem Blueprints-Ordner gehe und wie folgt darauf doppelklicke Sie können jedoch auch hier im Outliner darauf zugreifen. Wenn du es in deinem Level platziert hast, klicke auf Bearbeiten, BP, Feuerleiste, beides reicht Das öffnet es sofort. Jetzt wollen wir im Variablenbereich beginnen ein paar weitere Variablen hinzufügen. Klicken Sie auf diese Plus-Schaltfläche. Die erste Option, die wir hinzufügen werden, heißt Punkte, Spieleranpassungen. Und ihr könnt sehen, dass bei jeder Änderung unser Konstruktionsskript ausgelöst wird, weil es mit jeder Änderung ausgelöst wird. Wir werden daraus eine Ganzzahl machen. Wir werden sofort eine weitere hinzufügen. Das wird als Spielertreffgeschwindigkeit bezeichnet. Das wird ein Vektor sein. Dann wird der dritte, den wir hinzufügen werden, Hit Down heißen. Sie werden gleich sehen, wofür all diese verwendet werden. Ich werde das in einen Gleitkommawert ändern. Ich werde das sofort kompilieren. Dann kann ich einige Standardwerte dafür hinzufügen, unsere Trefferpunkt-Anpassung. Fangen wir mit dem Typen an. Wir werden das auf einen negativen Wert setzen . Im Grunde genommen verlieren Sie, wenn Sie getroffen werden, hier einen negativen Trefferpunkt. Okay, für die Treffergeschwindigkeit unseres Spielers . Lass uns weitermachen und das auswählen. Ich werde diese Instanz essbar machen, falls ich das im Editor ändern möchte. Und ich werde die Treffergeschwindigkeit des Spielers auf 500 ändern . Im Grunde wird der Spieler dadurch nur ein kleines bisschen aufgedreht, wenn er getroffen wird. Das ist die Idee, dass sie getroffen werden und der Spieler dadurch nur ein bisschen auftaucht Dann dieser letzte, unser Treffer, abkühlen, ich werde ihn auf 1,0 ändern und das werden im Wesentlichen 1,0 Sekunden sein Ordnung, bei jeder Änderung haben Sie wieder gesehen, wie mein Bauskript abgefeuert wurde. Denn dann wird das Bauskript zur Entwurfszeit gestartet. Wann immer Änderungen an Ihrem Blueprint vorgenommen werden, springe ich von hier weg und gehe zu unserem Ereignisdiagramm weil wir wollen, dass hier das Laufzeitskript ausgelöst wird Jetzt wollen wir, dass etwas passiert, wenn wir dieses Feld überlappen Erinnerst du dich, unsere Kiste ist diese Kiste, genau hier ist sie, unsichtbare Kiste, die wir nicht sehen können, während wir unser Spiel mit uns spielen . rechten Maustaste auf diese Komponente klicken, können wir ein Ereignis bei Begin Overlap hinzufügen. Das bringt uns zurück zum Ereignisdiagramm. Wir wollen überprüfen, ob der andere Schauspieler unser Spielercharakter war. Von hier aus könntest du in die dritte Person wechseln, BP in die dritte Person. Sie könnten diesen Knoten wie folgt hinzufügen und dann das Skript auf diese Weise fortsetzen. Ich werde jedoch eine andere Methode wählen, falls ich jemals ändern möchte , welchen Charakter ich verwende. Ich werde das Gleichheitszeichen aus dem anderen Darstellertyp herausziehen und schauen, ob das einfach unserem Charakterknoten „ Spieler holen“ entspricht Auf diese Weise ist es nicht wirklich wichtig welchen Charakterentwurf ich verwende , der meinen Spielercharakter widerspiegelt Okay, was möchte ich tun, wenn das gleich ist? Ich werde das in einen Zweigknoten bringen. Wenn diese gleich sind, stimmt es, dass sie gleich sind. Ich werde mich mal in Do hier rausziehen. Was möchte ich einmal machen? Nun, ich möchte die Anzahl der Trefferpunkte anpassen , die unser Spieler haben wird. Jetzt habe ich in unserem Charakter aus der dritten Person wieder einmal habe ich in unserem Charakter aus der dritten Person wieder einmal dieses benutzerdefinierte Ereignis namens Just Hit Points. Deshalb möchte ich dazu aufrufen , dass das passiert. Jetzt habe ich hier einfach einen Fehler gemacht , als ich versuchte, diesen Ansatz zu verfolgen. Denn wenn ich das in die Länge ziehen würde, Spielercharakter nehmen und Trefferpunkte anpassen eingeben würde, würde ich es nicht finden können, also kann ich diese Methode tatsächlich anwenden und auch auf dieses benutzerdefinierte Ereignis zur Anpassung der Trefferpunkte zugreifen. In diesem Fall muss ich also aus der Besetzung meines anderen Schauspielers auf meinen BP-Charakter aus der dritten Person ziehen , weil mein Charakter aus der dritten Person derjenige ist, in dem dieses benutzerdefinierte Trefferpunkte-Ereignis enthalten ist. Da hast du gesehen , wie ich in Echtzeit einen Fehler gemacht habe und ihn in Echtzeit angepasst habe. Okay, das möchte ich tun. Sobald ich dieses benutzerdefinierte Ereignis aufrufen möchte, doppelklicke ich darauf um einen roten Root-Knoten einzufügen. Jetzt werde ich das um anpassen. Meine Hüftpunktanpassung an den Spieler variabel. Ich werde das einstecken. Dann werde ich mich noch einmal von hier wegziehen und die Bewegung der Charaktere eingeben. Nun, das ist eine Komponente, diese Charakterbewegungskomponente, die meinem Charakter aus der dritten Person lebt, diese Charakterbewegungskomponente. Jetzt gibt es hier einen Parameter für die Geschwindigkeit. Ich werde danach suchen. Geschwindigkeit, Geschwindigkeit, das wird aktualisiert, wenn sich unser Charakter im Level bewegt. Ich möchte die Geschwindigkeit der Charaktere anpassen. Wenn ich hier rausziehe, kann ich festgelegte Geschwindigkeit eingeben. Es wird einen Setter-Knoten wie diesen einfügen. Der Betrag, um den ich diese Geschwindigkeit anpassen möchte , wird von unserer Variablen für die Treffergeschwindigkeit des Spielers hier bestimmt die Treffergeschwindigkeit des Spielers hier Das kannst du so einstecken. Dann ist das Letzte, was ich hier tun möchte , dass ich einen Verzögerungsknoten einbauen möchte. Ich werde mich von hier wegziehen. Bring einen Verzögerungsknoten rein. Ich verzögere das um unseren Hit-Cool-Down-Betrag. Ich lege diesen Knoten auf oben und diesen auf runter. Das hat derzeit also einen Wert von 1 Sekunde. Ich werde das so machen , dass wir das dann wieder zum Zurücksetzen unseres Once-Nodes Also im Grunde wird es eine Pause von 1 Sekunde geben zwischen dem Zeitpunkt, an dem unser Feuerball dem Spieler Schaden zufügen kann, wenn er das nennt, Hüftpunkte anpassen kann, um unseren Spieler ein wenig nach oben zu bewegen, und wenn er es wieder tun kann, sodass so etwas nicht alle Hundertstelsekunden passiert In Ordnung, damit werden wir mit der linken Maustaste klicken und ziehen. Ich tippe auf die C-Taste. Ich nenne das Hit-by-Fire-Bar. Ich werde dieses Skript kompilieren, ich werde es speichern. Und dann werde ich reinspringen und spielen. Mal sehen, was passiert. In Ordnung, unser Charakter ist derzeit blau. Sie haben zwei Trefferpunkte. Ich werde einmal getroffen, ich habe meinen Charakter ein bisschen verbessert, sie haben sich auf einen Trefferpunkt geändert, der durch Grün repräsentiert wird. Ich werde wieder getroffen, bam, tot. Das ist deine Ansicht, wenn du tot bist. Mach dir keine Sorgen. Wir werden die Todessequenz später ändern. Aber das deutet auf den Tod eines Spielers hin. Wenn Sie nun eine solche Fehlermeldung erhalten, ist das absolut sinnvoll. Denn was hier passiert, bedeutet, dass es versucht, auf unsere eingestellte Geschwindigkeit zuzugreifen, aber es greift auf keine zu. Was hier passiert ist, damals in unserem Charakter aus der dritten Person, ist, dass wir versucht haben, unsere Trefferpunkte anzupassen. Und denk dran, das wird von unserer Feuerbar aus angerufen. Wir haben versucht, uns an die Trefferpunkte anzupassen , und das hat uns auf Null gebracht. Bis wir also versuchen, die Geschwindigkeit anzupassen, hat sich unser Charakter durch dieses kleine Drehbuch hier oben bereits verabschiedet . Also ist unser Charakter zerstört. Es versucht hierher zu kommen und sagt, hey, passe die Geschwindigkeit an, das geht nicht. Also, wie könntest du das reparieren? Nun, du könntest versuchen, die Bestellung hier auszutauschen Also lass uns versuchen, das hier schnell zu machen. Wir werden zuerst den Player aufrufen. Ich werde versuchen, diese Kabel ein bisschen zu entwirren , sodass wir eine Einrichtung haben, die ein bisschen mehr so aussieht bisschen mehr so Ich kann das tatsächlich löschen, das kann ich einfach so einstecken Ordnung, wenn ich noch einmal kompiliere, und lass uns das versuchen und sehen, ob wir diesen Fehler bekommen. Beim zweiten Treffer sind wir tot. Ich drücke Escape und wir bekommen diesen Fehler nicht mehr, weil wir jetzt den Spieler töten, nachdem wir die Geschwindigkeit angepasst haben. In Ordnung, Leute, da habt ihr es? Das wird für diesen Typ C abschneiden wenn der nächste 23. HUD-Layout: Willkommen. Jetzt, wo wir in unserem Projekt an einem Punkt angelangt sind, an dem wir einige Dinge sammeln müssen, wie Münzen, haben wir einige Leben die wir verlieren oder gewinnen könnten. Fügen wir unserem Spiel ein Hud hinzu, ein Heads-up-Display. Falls du also nicht weißt, was ein Hud ist, es sind diese Informationen, die auf dem Bildschirm angezeigt werden , während du spielst, und obwohl wir das nicht genau erstellen werden, wird es ungefähr so sein Und du wirst das nach deinen Wünschen verfeinern können. Aber nur um Ihnen einen kleinen Einblick in das zu was wir im Wesentlichen kreieren werden In Ordnung, zurück hier in Unreal, lass uns anfangen. Wir werden einen brandneuen Ordner auf unserer Plattform oder in unserem Ordner Klicken wir also mit der rechten Maustaste auf „Neuen Ordner hinzufügen“. Nennen wir das in unserem UI-Ordner. Wir werden ein brandneues Asset erstellen, indem wir mit rechten Maustaste und unter der Option Benutzeroberfläche klicken. In diesem Flyout-Menü wählen wir einen Widget-Blueprint Widget-Blueprints sind nun Elemente, die du erstellen möchtest, um Spiel-Hud- oder Menübildschirme zu erstellen Du hast hier nur eine übergeordnete Klassenoption , die sich im Bereich „ Allgemein“ befindet Wähle also diese Option unter Benutzer-Widget aus, wir werden aufgefordert, einen Namen anzugeben Ich mache das ein bisschen größer. Die Steuerung gedrückt halten und nach oben scrollen. Ich nenne das WBP für Widget, Blueprint, Underscore, HUD Und dann doppelklicken wir darauf, um es zu öffnen. Was Sie jetzt in diesem leeren Bereich vor sich sehen, werde ich einfach die rechte Maustaste gedrückt halten und das Ganze quasi herumschwenken. Das ist unsere Designer-Ansicht. Das werden wir tatsächlich sehen und verwenden, um unser Hud-Layout zu erstellen Derzeit haben wir hier keine Widgets auf unserer Designer-Registerkarte Also lass uns weitermachen und das ändern. unser erstes Widget zum Palettenfenster hinzufügen, finden wir eine ganze Liste von Widgets. Und Sie können jede dieser Kategorien erweitern, um eine ganze Reihe von Extras zu finden. Jetzt habe ich einen ganz eigenen Kurs , der sich eingehend mit all dem befasst. Ich werde nicht zu detailliert auf all das eingehen, ich werde einfach tun, was wir tun müssen, und weitermachen. Aber ein Charakter-UI-Kurs in Unreal ist der Name dieses Kurses Wenn Sie näher darauf eingehen möchten, wie Sie lernen möchten, wie man all diese Dinge benutzt Das erste Widget, das ich hier zu unserem Designer-Tab hinzufügen werde , heißt Canvas-Panel. Jetzt ein Canvas-Panel, und ich kann eines davon hinzufügen, indem ich es einfach per Drag-and-Drop in unsere Designer-Ansicht ziehe Hier handelt es sich im Wesentlichen um eine Art Sattelbrett. Wenn Sie also mit der Tackboard vertraut sind, können Sie Dinge daran anheften Und so wird das im Wesentlichen funktionieren. Wir werden pinnen, wir werden weitere Widgets hinzufügen , um das ganz oben auf unserer Tafel zu platzieren Derzeit ist unsere Skala hier 16 mal neun, was wir unten links sehen können Aber wenn Sie Ihr Gerät ändern möchten, Ihre Bildschirmgröße genau hier, so machen Sie das für Telefone, Tablets, Laptops usw. Ich werde das unverändert lassen, weil mir das Seitenverhältnis von 16 mal neun gefällt Jetzt werden Sie feststellen , dass dieses Canvas-Bedienfeld, nachdem ich es zu unserer Entwurfsansicht hinzugefügt habe, es auch zu unserer Hierarchie hinzugefügt wurde. Unser Canvas-Panel wird hier unsere Basiskomponente sein. Wir werden Dinge hinzufügen. Lassen Sie uns unser Canvas-Panel verlassen und hier unser zweites Widget hinzufügen. Und das wird ein Bild genau hier unter dem gemeinsamen Bereich sein. Ich ziehe einfach ein Bild per Drag & Drop in unsere Designer-Ansicht. Ich werde es hier irgendwo oben links platzieren. Dieses kleine Blumensymbol, wenn du so willst. Dies wird den Ankerpunkt für dieses Widget anzeigen. Es wird also versuchen, dieses Bild-Widget im oberen linken Teil des Bildschirms zu verankern . Jetzt werde ich weitermachen und das sofort umbenennen. Und das kann ich tun, indem ich hier auswähle und zwei drücke. Alternativ können Sie dieses Widget , wenn Sie es im Detailbereich ausgewählt haben, ganz oben ändern. Nenn das. Das wird ein kleines Bild von Mario sein. Und nur ein bisschen, lassen Sie mich hier mein zweites Widget hinzufügen. Mein zweites Widget wird ein Text-Widget sein. Kein Rich-Text, sondern einfach. Ich werde es genau hier platzieren. Ich werde das noch einmal umbenennen, ich werde mein Charakter-X-Widget umbenennen. Das wird einfach ein Symbol vom Typ Multiplikation sein, deshalb nenne ich es Zeichen X. Dann mache ich weiter und ein weiteres Text-Widget hinzu Und ich werde es genau hier ziehen und ablegen. Ich bin nicht zu wählerisch, was die Platzierung angeht, weil ich das hier gleich ein bisschen anpassen werde das hier gleich ein bisschen anpassen Und das nenne ich Clicks Two auf dieses, mein Charakter-Live-Widget Jetzt wähle ich hier mein erstes Charakterbild, das Widget, aus. Und ich gehe in das Detailfenster und ändere etwas. Das erste, was ich ändern werde, ist die genaue Position. Ich werde das vergrößern, indem ich die Strg-Taste gedrückt halte und mein Scrollrad benutze. Rechte Maustaste zum Schwenken. Drüben im Detailbereich habe ich meinen Ankerpunkt auf den oberen linken Anker gesetzt. Das ist es standardmäßig. Diese Position x und y werden also relativ zu diesem Ankerpunkt sein . Die Position x, die ich hier setzen werde, wird 24 sein. Und die Position y wird ebenfalls 24 sein. Die positive X-Richtung wird nach rechts und die positive Y-Richtung nach unten verlaufen. Okay, als Nächstes werde ich ein Bild im Bereich für das Erscheinungsbild des Pinselbilds einrichten . Ich kann ein Bild auswählen, indem ich auf dieses Drop-down-Menü klicke. Und ich habe Underscore Super. Ich möchte das wählen, Super Mario Jumping. Jetzt hättest du diese Textur ganz am Anfang des Kerns importieren sollen. Also da hole ich mir das, füge natürlich jedes Bild ein, das du willst. Wenn du aber zu Hause mitspielst, werde ich die Größe dieses Bildes von 32, 32 auf 80, 80 erhöhen . Das wird es ein bisschen vergrößern. Jetzt hast du nicht wirklich gesehen, dass sich hier etwas geändert hat. Wenn ich diese Größe jedoch auf Inhalt ändere, wird der Inhalt tatsächlich vergrößert , um ihn an diese Bildgröße anzupassen . Hier ist es noch ein bisschen weit hergeholt, Sie könnten das nach Ihren Wünschen fein abstimmen Aber ich sage erstmal gut genug. Als Nächstes werde ich für meine Charakter-X-Komponente hier, dieses Text-Widget, ein paar Dinge daran ändern. Zunächst werde ich mit der X-Position beginnen und diese auf eins zu zwei ändern, in der Y-Position auf 60. Ich werde den Text von einem Textblock in ein kleines X ändern . Das wird als mein Multiplikationssymbol dienen Drücken Sie die Eingabetaste, um die Änderung zu sehen. Und dann komme ich zum Abschnitt mit der Darstellungsschrift, weil ich die Schriftfamilie ändern möchte. Ich will Roboto nicht hier haben. Stattdessen will ich diese neue Supermarrio-Schrift. Und das war eine Schrift, die wir zu Beginn des Kurses importiert haben Beginn des Kurses importiert Dort kannst du das finden. Ich habe zu Beginn des Kurses einige andere Schriftarten in diesen Import aufgenommen . Sie können das also ändern. Sie können auch einige dieser anderen Schrifttypen erkunden. Aber ich mag diese neue Super Mario-Schrift ziemlich gut. Okay, ich werde hier auch die Größe ändern. Ich werde es auf 30 ändern und dann werde ich eine Gliederung hinzufügen. Lassen Sie mich das vergrößern, weil die Gliederung etwas schwer zu erkennen ist. Aber die Kontureinstellungen, ich werde sie auf zwei ändern , und ich kann einen kleinen schwarzen Umriss um ihn herum erkennen, der sehr gut aussieht. Und ich werde auch auf dieses Feld „ Größe zum Inhalt“ klicken. Und was das bewirken wird , es wird diese Art von Selektor hier ändern, um ihn gut zu umschließen, etwa so Ordnung, als Nächstes wähle ich Komponente „Das Leben meines Charakters Ich könnte sie hier in meiner Hierarchie auswählen, oder ich kann sie hier in meiner Entwurfsprüfung auswählen. In jedem Fall wählen wir es für die X-Position aus. Dafür ändere ich den Wert auf 130 und die Y-Position auf 32. Was ich dann tun werde, ist die Schriftfamilie auf das neue Super Mario umzustellen . Ich werde die Größe auf 50 ändern, viel größer. Das wird es hier runterfallen lassen. Ich werde dem auch eine Gliederung hinzufügen. Bei der Umrissgröße wird dieser Wert auf zwei gesetzt. Anstatt hier Textblock zu sagen, werde ich vorerst auf den Wert 99 umstellen. Da dies unsere Anzahl an Leben darstellen soll, ist dies nur ein Platzhalterwert Irgendwann werden wir diesen VS-Code so binden , dass er tatsächlich darstellt, wie viele Leben unser Charakter haben wird Jetzt möchte ich hier noch einen kleinen Schlagschatten hinzufügen. Ich kann dem einen Schlagschatten hinzufügen, indem ich hier unter meine Schattenfarbeneinstellung im Abschnitt Aussehen gehe. Ich werde hier auf diese Farbleiste klicken. Und ich werde den R-Wert, das ist der rote Wert, auf eins ändern . Der Wert, das ist auch der Alpha-Wert auf eins. Der Wert, der Alpha-Wert geht zwischen 1 und 00, bedeutet, dass Sie ihn nicht sehen können Eins bedeutet, dass es vollständig undurchsichtig ist. Irgendwo dazwischen, etwa 0,5, würde bedeuten, dass man es teilweise durchschauen kann Du könntest damit herumspielen, aber ich mag diese rötliche Farbe Derzeit sehen wir hier nicht wirklich etwas, weil wir unseren Schlagschatten-Offset anpassen müssen unseren Schlagschatten-Offset anpassen Also werde ich das auf vier im X einstellen, dann auf fünf im Y, und jetzt können Sie dort ein bisschen einen Schlagschatten sehen. Das ist eine nette Kleinigkeit Wir können Kontur auf Schlagschatten anwenden, indem wir dieses Kästchen ankreuzen. Also überprüfe das. Dabei haben wir auch nur einen schwarzen Umriss um diesen Schatten herum hinzugefügt . Und um diesen Selektor hier um unseren Wert herum zu umschließen , werde ich diese Größe einfach auf den Inhalt überprüfen Also, hoppla, da haben wir's. Es wird es an die Größe unserer Schrift anpassen. Und das sieht ziemlich gut aus. Ordnung, als nächstes nehme ich eine kleine Abkürzung und wähle alle drei Widgets aus. Also werde ich die Strg-Taste gedrückt halten und auswählen. Ich habe hier alle drei ausgewählt. Ich werde sie mit der rechten Maustaste anklicken. Ich werde sie alle kopieren. Dann wähle ich mein Leinwandfenster und klicke dann mit der rechten Maustaste. Und dann werde ich sie einmal einfügen. Und dann wähle ich wieder mein Leinwand-Panel und füge sie zweimal ein. Im Grunde habe ich Bildtext. Eigentlich möchte ich diese nachbestellen. Ich werde mir hier das Leben nehmen und ich werde das fallen lassen. Wenn Sie es ziehen und ablegen, können Sie es nach unten verschieben, um es neu anzuordnen Ich werde mir vorerst keine Gedanken darüber machen, ob ich damit perfekt umgehen Sie sind alle durcheinander. Aber wir werden sie hier ein bisschen neu positionieren, nur um alles, was ich hier gemacht habe, neu zu ordnen Wir haben den Kerl, lass mich das einfach da hinziehen. Und ich habe noch eins davon. Ich werde das so nach unten ziehen. Okay, wir haben also zwei Textbild zwei Textbild zwei Text. Okay, lassen Sie uns weitermachen und anfangen, diese umzubenennen. Und ich werde mit diesem Bild hier beginnen. Es befindet sich derzeit an der Seite des Huds, weil dieses, unser Leinwand-Panel, den Bildschirm darstellt Derzeit befindet es sich an der Seite. Ich werde es umbenennen , indem ich zwei draufdrücke , anstatt in das Charakterbild. Dies wird ein Münzbild für diese spezielle Komponente sein . Ich werde das oben links verankern, das ist in Ordnung. Aber ich werde die Position x auf 52 und die Position y auf 120 ändern . Im Wesentlichen wird das hier etwas unter Mario liegen. Ich werde das Bild von unserem springenden Mario zur Unterstrich-Münze ändern springenden Mario zur Unterstrich-Münze ändern Dafür werde ich die Retro-Münze verwenden , denn warum nicht? So etwas in der Art. Ich werde die Größe hier so anpassen, dass sie etwa 50,50 beträgt Ich sage, das ist ziemlich gut. Als Nächstes, unten, anstelle von Charakter X, nur um unsere Namen klarzustellen, werde ich hier zwei anschlagen. Und das wird Münze X heißen. Und um die Position zu ändern, werde ich mit einer X-Position von 12 und einer Y-Position von 124 gehen . Weil ich die restlichen Parameter alle erstellt habe und die Schriftart, den Umriss usw. eingestellt habe, bevor ich es dupliziert habe, es auch darauf übertragen Deshalb habe ich all diese Einstellungen vorgenommen, bevor ich es dupliziert habe, denn wenn ich es dupliziere, kommen all diese Einstellungen Ziemlich nett, richtig. Als Nächstes wähle ich das Live-Bild unseres Charakters aus, dieses duplizierte Ich werde das anstelle von Charakter Lives umbenennen, ich nenne das Coins Value Das wird die Anzahl der Münzen sein, die wir in der Hand haben. Ich werde die Position x auf 130 und die Position Y auf 100 ändern . all diesen Einstellungen werde ich zufrieden sein, und das werden wir sicher belassen. Statt 99 ändern wir es auf Null , weil wir standardmäßig mit Null Münzen beginnen werden . Ordnung, unser nächstes Bild hier, lassen Sie uns das von Charakterbild zwei umbenennen Timer-Bild auf zwei klicken. Mit diesem Typen ausgewählt. Ich werde die Ankerpunkte ändern. Ich werde hier nur ein bisschen rauszoomen. Ich werde den Anker im Detailbereich so ändern , dass er in der oberen Mitte ist, also so. Und dann ändere ich die Position x auf Null und die Position Y. Ich werde das nur ein bisschen festlegen, ich weiß nicht, lass uns 24 gehen. So etwas in der Art. Und jetzt können Sie sehen, weil die Position x Null ist, dass sie im Wesentlichen mit der oberen Ecke dort übereinstimmt. Ich werde die Ausrichtung hier auf 0,5 im X ändern . Dadurch wird der Unterschied , wo sich das Widget relativ zu diesem Ankerpunkt befinden sollte, im Wesentlichen aufgeteilt . Offensichtlich will ich dieses Bild von Mario nicht haben. Also werde ich das in einen Underscore-Timer ändern. Auch dies ist eine Textur, die wir zu Beginn des Kurses importiert haben zu Beginn des Kurses importiert Es ist eine Art Ding, das wie eine Uhr aussieht. Und ich ändere die Bildgröße hier auf 100,100, also nennen wir das ziemlich gut Als Nächstes wähle ich meinen Charakter X aus und zoome heraus. Derzeit ist es weit drüben. Ich werde das so ändern , weißt du was? Ich werde diesen sogar löschen. Der Grund, warum ich diesen löschen werde, ist dass ich diese Parameter, diese Schattierung auch für meinen Zeitwert haben möchte diese Schattierung auch für meinen Zeitwert Also nehme ich das und ich werde das duplizieren Ich kann einfach mit der rechten Maustaste darauf klicken und es duplizieren. Control D macht dasselbe. Jetzt habe ich zwei davon. Ich werde diesen hier oben auswählen und ihn sofort umbenennen. Wenn Sie zwei drücken, wird das als Text bezeichnet. Ich nenne das einfach meinen Timer-Wert, so etwas in der Art. Ich werde die Position ändern, um einen Anker in der oberen Mitte genau da oben zu haben. Nun, da ich das habe, werde ich auch die X-Position auf Null ändern. Setze das wieder auf Null, die Ausrichtung im X, ich teile die Differenz auf 0,5, sodass sie in der Y-Position zentriert wird. Ich kann hier reinklicken und das ein bisschen nach oben oder unten ziehen. Ich werde es einfach dort wieder in Ordnung bringen. Ich werde, ich werde einen festen Wert von etwa 60 festlegen , vielleicht so etwas. Wir werden 80 etwas tiefer gehen. Da haben wir es. Wir können das nach unseren Wünschen fein abstimmen Okay, zu guter Letzt haben wir diesen letzten Text, haben wir diesen letzten Text dem es derzeit heißt: Character Lives Wir werden das ändern, um einfach Punkte zu sagen, drücken F zwei, drücken F zwei, ändern es in Punkte, ich werde das oben rechts verankern. Den Anker auf diese Weise nach oben rechts ändern. Ich muss jetzt die relative Position ändern. Die relative Exposition wird minus 240 sein. Sie können also hier drüben sehen, das ist unser Ankerpunkt Und das ist der Offset relativ zu diesem Ankerpunkt, minus 240 für die Position. Warum? Ich setze das auf 32. Ich lege es ein bisschen runter. Dann ändere ich hier einfach den Text von 99999999, das entspricht also unserer Punktzahl . Also noch einmal, das wird unser HUD sein. Mach weiter und speichere das. Feine Melodie, das gefällt dir. Sie müssen nicht genau dieses Layout haben, aber das ist das Layout , für das ich mich entscheiden werde In Ordnung, als Nächstes haben wir unser Hud-Layout erstellt. Wir müssen das tatsächlich auf dem Bildschirm anzeigen . Das ist es also, was als Nächstes kommen wird. Wir sehen uns dort. 24. HUD-Display: Willkommen zurück alle. In diesem Video werden wir unsere hübsch aussehende Kapuze direkt hier zu unserem Viewport hinzufügen Kommen wir also gleich wieder zurück in unserem Haupteditor. Wir werden unseren BP-Player-Controller-Blueprint verwenden , den wir erstellt haben, als wir an unserer Sammelmünze gearbeitet haben an unserer Sammelmünze gearbeitet Wir werden ihn verwenden , um unser Widget aufzurufen, das erstellt und zu unserem Viewport hinzugefügt werden soll Doppelklicken wir darauf, um es zu öffnen. Falls du den Pfad vergessen hast, wo das war, kannst du ihn dort finden. Der Grund, warum wir diesen Plan verwenden werden, ist ein Spieler-Controller-Blueprint bestehen bleibt, unabhängig davon, ob euer Charakter am Leben ist Das ist also ein großartiger Ort, um diese Art von Code unterzubringen. Wie Sie sich erinnern, als wir früher an unserer Münze gearbeitet haben, rechnen wir hier, um unsere Münzen zusammenzufügen. Hier ganz oben. Lass uns, du solltest hier oben eine Veranstaltung beginnen lassen. Wenn du es versehentlich gelöscht hast, wie ich es getan habe, kannst du es standardmäßig wiederherstellen, indem du mit der rechten Maustaste klickst und Begin, Play eingibst. Es gibt Event, Begin, Play. Dieses Event wird ausgelöst , wenn du das Spiel startest Wir wollen es einfach herausziehen und ein Widget erstellen. Und das Widget, das wir erstellen möchten, ist unser BP-Hud, das wir gerade erstellt Jetzt reicht es nicht mehr aus , es einfach zu erstellen. Wir müssen diesen Rückgabewert hier nehmen, herausziehen und zum Viewport hinzufügen sagen Und das ist eine Funktion , die tatsächlich unser HUD zu unserem Bildschirm hinzufügen wird unser HUD zu unserem Bildschirm Ich tippe auf die C-Taste, nachdem ich mit der linken Maustaste geklickt habe, und ziehe damit herum Und ich sage Hud-Viewport, werde ich die Kommentarfarbe hier so ändern , dass sie schwarz ist Und dann kompiliere und speichere ich, nur um sicherzugehen , dass mein Code hier einsatzbereit ist. Und es sieht so aus, als ob es so ist. Wenn ich jetzt ins Spiel komme, kannst du sehen, dass unser HUD in unserem Viewport angezeigt wird Jetzt funktioniert hier nichts mehr, als wenn ich eine Münze sammle, wird sich meine Münzsumme nicht erhöhen Wenn ich ein Leben verlieren würde, würde sich auch hier nichts ändern Aber das wird kommen. Jetzt, wo wir unseren Hud auf dem Bildschirm haben, können wir unsere verschiedenen Werte hier tatsächlich verknüpfen, zwei Variablen Damit es tatsächlich wiedergeben kann, wie viele Leben wir haben, wie viele Münzen wir haben usw. Und damit werden wir im nächsten Video beginnen . Wir sehen uns dort. 25. HUD-Bindings: Ordnung, jetzt, wo unser HUD in unserem Spiel auftaucht, ist es an der Zeit, dass wir hier unser HUD in unserem Spiel auftaucht, ist es an der Zeit, einige Variablen an diese verschiedenen Text-Widgets binden einige Variablen an diese verschiedenen Text-Widgets Denn im Moment sind das alles Platzhalterwerte. Sie aktualisieren nicht wirklich, sie ändern sich nicht, sie machen nichts dergleichen Also lass uns weitermachen und das beheben. Und dafür werden wir ein bisschen in unserem BP Player-Controller arbeiten. Wenn Sie also vergessen haben, wo das ist, das ist der Pfad, doppelklicken Sie darauf, um ihn zu öffnen. Derzeit haben wir hier zwei Variablen, eine Coins-Variable und eine Lives-Variable , um ihre jeweiligen Daten, Münzen und Leben, zu speichern. Wir werden hier noch ein paar mehr erstellen, also klicke ich hier einfach mit der rechten Maustaste auf unsere Leben. Und ich werde das duplizieren. Und ich werde das duplizieren, weil ich möchte nächsten beiden Variablen auch ganze Zahlen sind Bei diesem geht es einfach um Punkte. Wenn ich die Taste D drücke die Variable bereits markiert ist , wird sie ebenfalls dupliziert. Dieser wird Level Time heißen. Wenn ich jetzt meinen Blueprint hier kompiliere, kann ich im Detailbereich Standardwerte für all diese Werte festlegen im Detailbereich Standardwerte für all diese Für die Levelzeit setze ich diesen Wert auf 500 für Punkte, ich lasse den Wert auf Null für Leben Lassen Sie mich es tatsächlich bei drei ändern , lassen wir es bei drei belassen. Und Münzen, den werden wir auch bei Null haben . Okay, das ist sehr wichtig Sie müssen diesen Plan kompilieren damit dieser nächste Schritt funktioniert Also kompilieren und speichern Sie Ihren BP-Player-Controller hier. Unser nächster Schritt ist, dass wir in unseren BP-Hütten arbeiten werden in unseren BP-Hütten Falls du vergessen hast, wo das ist, ist es in deinem Platform-I-Ordner In Ordnung, wenn wir hier reingehen, springen wir jetzt von unserem Designer-Tab hier oben rechts zum Grafik-Tab. Jetzt können Sie auf der Registerkarte „Grafik“ einige Skripte zu Ihrem Widget-Blueprint hinzufügen . Wir werden hier etwas außerhalb von Event Construct machen hier etwas außerhalb von Event Construct Das ist standardmäßig schon da. Ich werde das einfach überholen. Ich werde mit der linken Maustaste klicken und diese beiden Typen ziehen und löschen. Sie können sich vorstellen, dass Event Construct das Event Begin Play Ihres Widget-Blueprints Und was wir hier machen werden , ist ausgehend vom Event Construct, wir werden einen Verweis auf unseren Blueprint erstellen Da unser Player-Controller-Blueprint diese Variablen enthält, möchten wir in der Lage sein, auf diese Variablendaten innerhalb unseres Player-Controllers zuzugreifen und sie auf unsere verschiedenen Text-Widgets hier in unserer Ud zu verweisen unsere verschiedenen Text-Widgets hier in unserer Zuerst müssen wir einen Verweis auf unseren Player-Controller erstellen . Wie machen wir das? Nun, wenn wir hier mit der rechten Maustaste auf eine leere Stelle klicken, können wir Get Player Controller eingeben. Und wenn wir das in die Länge ziehen, können wir einen Player-Controller mit zwei BPS spielen. Was wir hier also im Wesentlichen überprüfen, ist, hey, ist das der Player-Controller? Ist das der, den wir tatsächlich in unserem Projekt verwenden? Und ja, ist die , die wir für die Verwendung in unseren Projekteinstellungen eingerichtet haben . Nur um das schnell zu überprüfen Karten und Modi fallen unter die Controller-Klasse des Spielers. Das ist der Player-Controller , den unser Projekt hier in unserem W BP-Unterstrich verwendet. Im Grunde stellen wir hier die Frage, ob das Spiel beginnen soll Ist das der Player-Controller, den wir verwenden? Und wenn ja, möchten wir einen Verweis darauf erstellen. Das können wir jetzt tun, indem rechten Maustaste auf diesen Blueprint klicken und ihn zu einer Variablen heraufstufen Dabei haben wir im Bereich Mein Blueprint eine Variable hinzugefügt im Bereich Mein Blueprint eine Variable Ich werde das einfach auf Player Controller abkürzen . So wie es ist. Dann kann ich mit der linken Maustaste klicken und das ganze Skript verschieben . Drücken Sie die C-Taste. Ich nenne das meine eigene Referenz zu Player Controller. Ich setze hier auch die Kometenfarbe auf Schwarz. Warum ist das jetzt wichtig? Wir versuchen erneut, diese variablen Daten aus unserem BP-Player-Controller hier in unserem BP Hud zu extrahieren diese variablen Daten aus unserem BP-Player-Controller hier in unserem BP Hud Wir werden von hier aus in unsere Designer-Ansicht springen. Jetzt kann ich diese verschiedenen Text-Widgets hier auswählen, angefangen mit unserem Leben hier, dem Leben der Charaktere, dem Typ. Dann drüben im Detailbereich, wo Text 99 angezeigt wird, können wir das an eine Variable binden. Wenn ich jetzt darauf klicke, kann ich jetzt meinen Player-Controller finden. Und jetzt kann ich auf die richtige Variable verweisen , die sich in unserem Player-Controller befindet. Dafür möchte ich Leben wählen. Ihr werdet es hier nicht aktualisiert sehen, aber wenn wir unser Spiel spielen, werdet ihr sehen, dass unsere Leben innerhalb unseres Spieler-Controllers variabel sind. Das spiegelt sich hier wider. Lassen Sie uns das jetzt mit unseren verschiedenen Text-Widgets für unsere Münzen machen. Wählen Sie hier im Textbereich den Wert Ihrer Münzen aus. Lassen Sie uns dies an unsere Player-Controller-Coins-Variable binden. Genau hier oben wird unser Zeitwert sein , wenn wir das auswählen. Wir werden das an die Zeit auf Spieler-Controller-Ebene binden. Und zu guter Letzt habe ich hier oben rechts meine Punkte. Kommen wir zum Detailbereich und wir werden das an unsere Player-Controller-Punkte binden. In Ordnung, stellen Sie sicher, dass Sie das kompilieren und speichern. Jetzt spiele ich unser Spiel. Und los geht's. Schauen Sie jetzt oben links nach oben, wir haben jetzt drei Leben, null Münzen, 500 für unsere Zeit, und unser Punktestand ist derzeit ebenfalls Null. Jetzt werde ich weitermachen und ein paar Münzen sammeln. Aber bevor ich das mache, möchte ich darauf hinweisen dass wir in unserem BP-Player-Controller dieses Skript haben, mit dem wir die Anzahl der Münzen, die wir haben, erhöhen werden Anzahl der Münzen, die wir haben, erhöhen Wir können das jetzt löschen, weil das alles Platzhalter war, um anzuzeigen, wie viele Münzen wir auf dem Bildschirm hatten, bevor wir unsere Kapuze hatten Sie können also weitermachen und es löschen, aber mit diesem kleinen Skript werden wir die Anzahl der Münzen erhöhen Und wenn wir mehr als 100 Münzen haben, erhöhen wir die Anzahl der Leben Diese sollten also aktualisiert werden, wenn wir einige Münzen sammeln. Denken Sie an dieses benutzerdefinierte Ereignis in unserem BP-Player-Controller zum Hinzufügen von Münzen. Dieses Ereignis wird innerhalb unserer BP-Pick-Up-Münze aufgerufen wenn wir unsere Sphäre in unserem Münzskript überlappen. Wir werden dieses Ereignis als benutzerdefiniertes Ereignis für Werbemünzen bezeichnen dieses Ereignis als benutzerdefiniertes Ereignis für Werbemünzen , das in unseren Player-Controller gehört, wodurch unsere Münzen erhöht Und wenn wir genug Münzen bekommen, werden wir unser Leben erhöhen Lass uns das bei der Arbeit sehen. Klicken Sie hier auf Play. Jetzt habe ich noch keine Einstellungen für mein Leben eingerichtet, damit es erhöht werden kann. Wenn ich jedoch getroffen werde und sterbe, habe ich im Voraus einige Münzen angelegt, diese ist eine wert Sie haben das Inkrement oben links gesehen. Diese Münze wird weitere 13 wert sein. Jetzt habe ich diese großen Münzen im Voraus aufgestellt. sind jeweils 50 wert, also habe ich 53 Münzen. Der nächste, den ich sammle, sollte mir 103 bringen, was meinen Münzzähler umschließen sollte. Sie sehen also, dass ich drei Münzen und vier Leben habe, weil das eine 51 wert war und 50 wert sein wird. Wir haben also 535-45-5506 usw. Also, du siehst, mein Leben funktioniert und meine Münzen funktionieren unsere Levelzeit und unsere Punkte Aber im Laufe des Kurses werden wir auch diese erhöhen Beachten Sie jedoch, dass die Variablen im Player-Controller tatsächlich mit diesen Werten verknüpft sind , sodass sie, wenn wir sie erhöhen, ebenfalls aktualisiert werden Nur um es dir hier im Level noch einmal zu zeigen, habe ich einige Duplikate dieser Münze erstellt und diese größeren gemacht. Ich habe eines hier in meinem Level-Editor ausgewählt es im Detailbereich im Wert von 50 gemacht Deshalb waren sie 50 wert. Ich habe sie auch ein bisschen vergrößert, die kleineren habe ich auf einen Wert gebracht, nur damit ich auch damit prahlen konnte, wie sich die Zahl der Leben erhöht In Ordnung, nun, da haben wir es. Wir haben jetzt ein paar Hud-Bindungen , für die ich alles machen werde Wir sehen uns im nächsten. 26. Blueprint-Funktionsbibliothek: Ordnung, wir werden uns jetzt der Erstellung einiger interaktiver Blöcke zuwenden Erstellung einiger interaktiver Blöcke zuwenden Und wir werden an einer etwas interessanten Stelle beginnen , indem wir etwas erstellen , das als Blueprint-Funktionsbibliothek bekannt ist einer Blueprint-Funktionsbibliothek können wir nun Funktionen für den allgemeinen Gebrauch erstellen , auf die von jedem Blueprint aus zugegriffen werden kann von jedem Blueprint aus zugegriffen werden In diesem Fall werden wir das verwenden, um eine Blocktreffereffekt-Funktion zu erstellen , die wir dann von jedem der verschiedenen Blöcke aus aufrufen können , die wir Auch, weil es gutes Allgemeinwissen ist, das hier in Un Rail unter Beweis stellen können. Ordnung, also komm runter zu deinem Content Platform-Blueprints-Ordner Ich werde schreiben. Klicken Sie hier in eine leere Stelle und ich werde eine Blueprint-Blueprint-Funktionsbibliothek erstellen eine Blueprint-Blueprint-Funktionsbibliothek Fahren Sie fort und wählen Sie das aus. Wir werden das unsere BP-Underscore-Underscore-Bibliothek nennen unsere BP-Underscore-Underscore-Bibliothek Und dann doppelklicke ich darauf , um es sofort zu öffnen Ordnung, hier drinnen fordert es mich bereits auf, eine neue Funktion zu erstellen Jetzt nenne ich diese allererste Funktion Play Block Interact X. Lassen Sie uns das hier umbenennen, Play Block Interact, X, kurz für Effekte Dann möchte ich drüben im Detailbereich einige Eingaben hinzufügen. Also werde ich 123.4 hinzufügen und sie wie folgt benennen Dieser erste wird einfach FX heißen, was die Abkürzung für Soundeffekt sein wird Ich werde den Typ hier gleich ändern, aber ich werde sie zuerst alle umbenennen. Das nächste wird Effekte sein. In Klammern setze ich Niagara, weil das der Name des Partikelsystems ist, weil das der Name des Partikelsystems ist das Unreal verwendet In Unreal Engine Five werde ich hier auch ein anderes Feld namens V-Effekt Underscore Particle verwenden, nur um Ihnen Zugriff auf kaskadierende Partikeleffekte zu geben, wenn Sie dies kaskadierende Das ist das ältere Partikelsystem. Und dann das letzte, ich gebe den VFX-Standort an, den Ort unserer visuellen Effekte Jetzt müssen wir die Typen festlegen, die jedem dieser Typen zugeordnet Für einen Soundeffekt klicken Sie auf dieses Drop-down-Menü. Ich suche nach einer Soundbase , die die Art der Eingangs-Soundbase-Objektreferenz für Niagara sein wird Eingangs-Soundbase-Objektreferenz für Niagara Ich werde darauf klicken und in der Suchleiste Niagara eingeben Objektreferenz des Niagara-Systems. Objektreferenz des Niagara-Systems für Partikel V-Effekt. Klicken Sie auf das Drop-down-Menü. Ich suche nach dem Systemobjekttyp di, Partikelsystemobjektreferenz. Lassen Sie sich nicht vom Strukturpartikelsystem täuschen, es ist die Objektreferenz des Partikelsystems dann die Effektposition, das wird einfach eine Vektor-X -, Y- und Z-Position sein -, Y- und Z-Position Lassen Sie uns also weitermachen und die Funktionalität entwickeln, die wir haben wollen , wenn diese Play-Block-Interaktionseffektfunktion aufgerufen wird Ausgehend von diesem Execution-Pin werde ich einen Play-Sound-2-D-Node einbauen. Der Sound, den ich abspielen möchte , wird hier eingegeben. Dann ziehe ich es hierher und tippe Spawn-System am Standort Das wird unser Niagara-System sein, also müssen wir den Ort angeben, an dem es spawnen würde, damit wir es dem es spawnen würde, damit wir es mit dem Standort verbinden können Dann werde ich den Spawn-Emitter an der Position einziehen. Das ist das ältere Kaskaden-Partikelsystem, also werde ich es einfach da einbauen Doppelklicken Sie auf diesen Knoten, nur um einen solchen Umleitungsknoten einzufügen Und der Standort kann auch hier angeschlossen werden. Ich werde auch auf diese Zeile doppelklicken. Okay, das wird also unsere allererste Funktion sein , die hier in unserer BP-Funktionsbibliothek existieren wird . Lass uns weitermachen und das kompilieren und speichern. Und jetzt haben wir eine Funktion erstellt, die jedem Blueprint verwendet werden kann Wir werden das in vielen unserer kommenden Blockpläne verwenden unserer kommenden Blockpläne Das wird es für diesen machen. Mal sehen, wann der nächste ist. 27. Blueprint-Schnittstelle: In diesem Video werden wir ein sogenanntes Blueprint-Interface erstellen sogenanntes Blueprint-Interface Auch dies ist ein weiterer Vorteil , den wir hinzufügen werden, um in den kommenden Blöcken , die wir unserem Level hinzufügen werden, zu helfen in den kommenden Blöcken , die wir unserem Level hinzufügen werden, zu helfen , die wir unserem Level hinzufügen werden, zu Dieses Konzept ist im Voraus etwas schwierig zu erklären. Was wir jetzt tun werden , ist einfach dieses Asset zu erstellen und dann werden wir im Laufe der Zeit genau erklären, wie es funktioniert. Also klicken wir mit der rechten Maustaste in unseren Blueprints-Ordner für die Inhaltsplattform und klicken mit der rechten Maustaste Und unter der Kategorie Blueprint wählen wir die Blueprint-Oberfläche Und wir werden das B I BPI für Blueprint Interface nennen I BPI für Underscore, ich nenne das Plattform. Dann doppelklicken wir auf dieses Asset, um es zu öffnen Jetzt können wir hier nur noch eine Funktion erstellen. Dies wird eine leere Funktion sein, die von anderen Blueprints aus aufgerufen und nach unseren Wünschen angepasst werden kann anderen Blueprints aus aufgerufen und nach unseren Wünschen angepasst Alles, was wir hier tun müssen, ist eine einfache Funktion zu erstellen , die benannt ist Wir werden diese spezielle Funktion Block nennen. Auch hier gibt es keine Funktionen, die innerhalb einer Blueprint-Schnittstelle erstellt die innerhalb einer Blueprint-Schnittstelle Sie erstellen einfach eine benannte Funktion, in diesem Fall Hip Block Und wir können diese Funktion dann innerhalb des Blueprints anpassen, zu dem diese Schnittstelle hinzugefügt wurde Und das werden wir etwas später hier tun. Aber wir haben diese Grundlagenarbeit erledigt und aus dem Weg geräumt, stellen Sie sicher, dass Sie das kompilieren und Leute retten Das ist alles, was wir in diesem Video machen wollten . Ein bisschen mehr Vorbereitungsarbeit steht in den nächsten Videos bevor, aber wir sehen uns dort 28. Punkte-Anzeige-Widget, BP: Willkommen zurück. In diesem Video ist es unser Ziel, einen Widget-Blueprint zu erstellen, der verwendet wird , um einen Punktebetrag in einem Spiel anzuzeigen, wenn wir beispielsweise mit einem Block interagieren Hier gibt es also noch ein bisschen mehr Vorbereitungsarbeit zu erledigen, aber das wird sich auf lange Sicht auszahlen Also werden wir all diese Dinge im Voraus erledigen, damit wir nicht zurückgehen und eine ganze Reihe von Dingen wiederholen müssen Dingen wiederholen Später werden wir dieses Asset in unserem Platform I-Ordner erstellen in unserem Platform I-Ordner Wir klicken mit der rechten Maustaste in eine leere Stelle unter der Benutzeroberfläche. Wir werden unter Widget, Blueprint fallen. Und wir werden dieses Benutzer-Widget als unsere übergeordnete Klasse wählen Benutzer-Widget als unsere übergeordnete Klasse Und wir werden diese BP Underscore Points umbenennen. Okay, dann machen wir weiter doppelklicken darauf, um es zu öffnen Und wir werden hier in unserer Designer-Ansicht im Palettenbereich einfach ein paar Widgets hinzufügen hier in unserer Designer-Ansicht im Palettenbereich einfach ein paar Widgets . Das erste, nach dem wir suchen werden, ist ein Overlay Und wir können es entweder hier in unserer Hierarchie oder direkt hier in unserer Entwurfsansicht ziehen und dort ablegen unserer Hierarchie oder direkt hier in unserer Entwurfsansicht Was wir dann hinzufügen werden, ist ein einfaches Text-Widget. Fahren Sie fort und ziehen Sie es per Drag & Drop auf das Overlay Mit dieser Einrichtung wird unser Text-Widget einfach an unser Overlay-Widget angehängt Wir verwenden das Overlay-Widget einfach als etwas, an das wir unseren Text anhängen können Lassen Sie uns nun einige Details für unser Text-Widget anpassen einige Details für unser Text-Widget Hier, ich schaue mir meine Notizen hier an. Ich werde das Text-Widget so ändern, dass es einfach Textunterstriche liest und ihm einfach einen neuen Namen Ich werde dieses Kästchen auf variabel markieren, was bedeutet, dass wir diesen tatsächlichen Wert in Zukunft aktualisieren können diesen tatsächlichen Wert in Zukunft Was die Ausrichtung dafür angeht, werde ich die horizontale und vertikale Ausrichtung so einstellen, dass sie genau in der Mitte dieses Overlays liegen Also werde ich den Text hier von einem Textblock in Punkte ändern hier von einem Textblock Obwohl dies nur ein Platzhalter ist , werden wir ihn aktualisieren Wir werden die Schriftfamilie hier so ändern , dass sie unsere Super Mario-Schrift Neue Super Mario-Schriftart. Ich werde die Größe hier auf 50 ändern. Ich werde auch eine Umrissgröße von zwei haben. Und dann lasst uns weitermachen und dieses Widget kompilieren und speichern. Ordnung Leute, das ist alles was wir dafür erreichen wollten. Hier liegt noch eine Arbeit vor uns, aber wir haben einen guten Ausgangspunkt, um auch einige Punkte in unserem Spiel anzuzeigen. 29. Punkte-Anzeige-Widget Anim: Willkommen. In diesem Video ist es unser Ziel, eine Animation zu erstellen. Wenn also unser Punkte-Widget, Bauplan hier, im Spiel erscheint, wird er animiert und entsteht auf coole, auffällige Weise coole, auffällige Die Idee ist, dass, wenn wir mit einem der Blöcke interagieren , die wir erstellen werden, dieser quasi nach oben schwebt und anzeigt, wie viele Punkte ein Block wert ist anzeigt, wie viele Punkte ein Block wert Ordnung, um hier in unserem Widget-Blueprint eine Animation zu erstellen hier in unserem Widget-Blueprint Und falls Sie vergessen haben, wo das ist, es befindet sich derzeit in diesem Ordner Bp Points nennen wir das. Wir müssen das Animationsfenster öffnen. Wo finden wir dieses Fenster? Oben in unserem Interface-Fenster finden wir Animationen genau hier. Klicken Sie darauf. In diesem Animationsfenster müssen wir also eine benannte Animation erstellen. Und dann legen Sie einige Schlüsselbilder entlang dieser Zeitleiste fest. Lassen Sie uns also unsere erste benannte Animation erstellen. also auf diese Plus-Animationsschaltfläche klicke, nenne ich das Points Underscore-Animation Und dann, wenn diese Animation ausgewählt ist, fahren Sie fort und klicken Sie darauf Wir müssen einen Track hinzufügen. Wir können also einen Titel hinzufügen, indem hier in diesem kleinen Flyout-Menü auf die Plus-Schaltfläche „Track “ klicken. Wir haben alle Widgets benannt. Und was wir animieren wollen, sind unsere Textpunkte, nicht der Overlay-Slot Der Text zeigt genau hier. Also mach weiter und klicke darauf. Als Nächstes möchten wir hier auf diese Plus-Schaltfläche klicken, um den Plus-Track zu erhalten. Es wird dieses kleine Schnäppchen auf der Speisekarte haben. Und wir wollen einen Transformations-Track hinzufügen. Sie darauf klicken , werden diese Optionen angezeigt. Ich werde auf dieses Dropdown-Dreieck klicken . Transformation besteht aus Translations-, Rotations -, Skalierungs - und Scherparametern, die wir möglicherweise ändern können Was wir hier tun wollen, ist die Übersetzung zu ändern. Also werde ich das öffnen anklicken. Wir werden das hochschweben lassen. Wir werden auch den Maßstab dieses Textes im Laufe der Zeit ändern . Wir wollen, dass der Text nicht nur steigt, wenn er erscheint, sondern dass er auch skaliert wird sondern dass er auch skaliert Okay, jetzt, wo wir sie enthüllt haben, können wir hier einige Schlüsselbilder zu unserer Timeline hinzufügen Keyframes können wir nun einen bestimmten Wert zu einem bestimmten Zeitpunkt angeben . Zuallererst können Sie Ihre Zeitleiste hier nach unten verschieben, wenn Sie die rechte Maustaste gedrückt halten . Wenn Sie die Steuertaste gedrückt halten und das Mausrad verwenden, können Sie es dehnen oder zusammendrücken Diese grüne Linie steht für den Beginn Ihrer Zeitleiste Diese rote Linie steht für das Ende. Und du hast hier diesen kleinen Zeitwäscher , den du hin und her schleppen Wenn Sie jetzt den Mauszeiger genau hier platzieren, können Sie sehen, dass Sie diese beiden Arten von Kollapsleisten haben Hier können Sie den Anfang und das Ende Ihrer Timeline angeben . Also werde ich diesen einfach nach rechts ziehen und ich werde ihn bis ungefähr herausziehen, und Sie können dort im Blau sehen, wie viele Sekunden? Ich gehe etwa 0,95 Sekunden und zoome hier nach oben. Und Sie können sofort sehen, dass hier einige Keyframes gesetzt werden, diese roten Punkte stehen für einige Keyframes Ich möchte diese manuell einstellen. Um Ihnen diesen Vorgang zu zeigen, klicke ich mit der linken Maustaste und ziehe nach rechts. Und dann werde ich sie löschen, um sie loszuwerden. Diese roten Punkte stehen hier für Zeiten und Werte für bestimmte Eigenschaften. Okay, das Erste, was ich hier ändern möchte, ist meine Y-Übersetzung. Das ist das Auf und Ab dieses Punktewerts , um ein Schlüsselbild hinzuzufügen. Zuerst nehme ich meinen Timeline-Scrubber hierher und platziere ihn an der entsprechenden Stelle Ich werde bei der Null-Sekunden-Marke beginnen und diese Y-Eigenschaft ändern, das Auf und Ab Um hier einen Keyframe hinzuzufügen, kann ich auf diese Plus-Schaltfläche klicken Winziger Plus-Button genau dort. Und damit kann ich einen Wert angeben. Ich habe meinen Timeline-Scrubber direkt drüber. Es ist momentan auf Null gesetzt. Ich könnte aber auch mit der rechten Maustaste darauf klicken und die Eigenschaft festlegen. Da ist meine Zeit Null, mein Wert Null. Also könnte ich es auch so einstellen. Ein Wert, der der Zeit dafür zugeordnet ist. Ich möchte, dass sowohl die Zeit als auch der Wert Null sind, okay? Und ich werde auf diese Weise arbeiten. Ich werde meinen Zeitleisten-Schieberegler jetzt auf 0,2 Sekunden herausziehen. Ich werde ein weiteres Schlüsselbild für die Übersetzung y hinzufügen . Wenn ich auf diese kleine Plus-Schaltfläche hier klicke, kann ich einen Wert angeben, entweder indem ihn hier einfüge, oder ich kann schreiben Klicken Sie darauf und gehen Sie zu Eigenschaften. Und ich werde den Wert dafür auf minus 200 setzen. Und dann drücken Sie Enter. Sie werden sehen, dass dadurch das Wort Punkte sofort nach oben verschoben wird. Okay, als Nächstes nehme ich hier meinen Zeitleisten-Schieberegler und schiebe ihn über 2,45 und füge eine weitere Taste hinzu Wenn ich mit der rechten Maustaste darauf klicke, kann ich sehen, dass die Zeit auf 2,45 und der Wert auf minus 200 gesetzt ist Ich werde den Wert von minus 200 sogar ein wenig reduzieren Ich nehme etwa minus 150 , damit wir diesen Effekt erzielen können. Und Sie können sehen, wenn ich das drüber ziehe, wird es angezeigt und dann wieder heruntergefahren. Vielleicht ändere ich das im Laufe der Zeit. Wenn ich hier auf meine Play-Schaltfläche klicke, kann ich mir ein Bild davon machen, wie sich das im Laufe der Zeit entwickeln wird. So etwas in der Art. Popp auf, damit du das natürlich nach deinen Wünschen anpassen kannst Okay, als Nächstes werde ich die Skala unserer Punkte hier anpassen Also werde ich erneut auf meinen Timeline-Slider klicken. Ich werde das ganz zurück bis zur Null-Sekunden-Marke ziehen . Jetzt möchte ich die Skala, x und y, gleichmäßig anpassen . Anstatt hier sowohl auf die Plus-Schaltfläche für das X als auch für das Y zu klicken. Wenn ich auf die Plus-Schaltfläche klicke, direkt auf der Skalierungslinie genau dort, füge ich Tasten zu den X- und Y-Werten hinzu. Für beide. Ich fange mit einem Wert an und klicke einfach mit der rechten Maustaste hier. Eine Zeit von Null und der Wert Null, im Grunde genommen wird es unendlich klein sein Wir können es nicht sehen. Und das mache ich für beide hier, Rechtsklick. Setzen Sie diesen Wert auch hier auf Null. Dann werde ich meinen Zeitleisten-Schieberegler auf die 0,2-Sekunden-Marke genau hier auf der Skalenlinie bewegen . Ich werde auf diese Plus-Schaltfläche klicken. Wenn ich diese beiden Werte markiere, klicke ich einfach mit der linken Maustaste und ziehe mit der Maus um beide Ich klicke mit der rechten Maustaste. Und leider kann ich den Wert nicht für beide gleichzeitig festlegen. Ich dachte, ich könnte das vielleicht. Leider muss ich auf jede dieser Eigenschaften mit der rechten Maustaste klicken. Dafür wird der Wert 1,5 sein, also werde ich den Text auf 1,5 mal so groß einstellen , klicken Sie mit der rechten Maustaste auf Eigenschaften 1,5. Und Sie können sehen , dass, wenn ich diesen Wert auf 1,5 setze , der Wert 1,5 auch hier angezeigt wird. Okay, im weiteren Verlauf werde ich meinen Zeitplan anpassen. Schieben Sie mit dem Mauszeiger auf die 0,45-Sekunden-Marke auf der Skalenlinie. Hier werde ich auf diese winzige, winzige Plus-Schaltfläche klicken. Es werden Keyframes für X, Y hinzugefügt. Dafür setze ich die Eigenschaft auch für den Y-Wert auf 11. Als Nächstes ziehe ich meine Zeitleiste auf die Linienskala 0,85 Sekunden Klicken Sie auf diese Plus-Schaltfläche, um Keyframes und Markierungen in unserer Zeitleiste für die 0,85-Sekunden-Marke hinzuzufügen Markierungen in unserer Zeitleiste für die 0,85-Sekunden-Marke Wenn ich schreibe und auf jedes dieser Felder klicke, ist die Eigenschaft momentan auf eins gesetzt, was ich will guter Letzt ziehe ich meinen Zeitleisten-Schieberegler hier auf 0,95 am Ende unserer Timeline Hier. Ich werde erneut auf diese Skala klicken. Es werden Schlüsselbilder für X und Y hinzugefügt . Ich werde schreiben, klicken Sie hier auf meine X-Taste Ich setze die Eigenschaft auf Null, den Wert Null mal 0,95 und hier setzen wir den Eigenschaftswert ebenfalls auf Null Wenn ich das jetzt spielen würde, wirst du sehen, dass es diese Art von Effekt haben wird Wir werden hochschweben, irgendwie rausblitzen und dann sinken wir runter und gehen weg. In Ordnung, cool Jetzt haben wir eine Widget-Animation erstellt, die aufgerufen werden kann und der gesagt wird, dass sie abgespielt werden soll, wann immer wir ihr sagen, dass sie abgespielt werden soll. Und Hinweis, Hinweis, Wach auf, zwinkere. wir mit einem Block interagieren, geben wir das Spiel an und wir verdienen ein paar Punkte , wenn mit einem Block interagieren, geben wir das Spiel an und wir verdienen ein das alles erledigt Lass uns weitermachen und Leute kompilieren und speichern Das wird es für diesen machen. Wir sehen uns im nächsten. 30. Punkte zeigen den Schauspieler an: Willkommen zurück alle. In diesem Video werden wir einen Plan für die Schauspielerklasse erstellen , der im Spiel erscheint, wenn wir mit einem unserer Blöcke interagieren Das wiederum wird diesem Widget den Bauplan mitteilen, unsere Punkte hier im Spiel zeigen sollen Und wir werden auch unsere Punkteanimation zum Abspielen aufrufen unsere Punkteanimation zum Abspielen Um all das zu ermöglichen, benötigen wir einen Plan für Schauspieler. Okay, lass uns weitermachen und zurück zu unserem Haupteditor hier springen zu unserem Haupteditor hier Wir werden dieses Asset in unserem Plattform-Blueprint-Ordner hier in einem leeren Bereich erstellen unserem Plattform-Blueprint-Ordner hier in einem leeren Bereich Fahren Sie fort und klicken Sie mit der rechten Maustaste auf Blueprint-Klasse. Wir werden eine Schauspielerklasse wählen , weil diese im Spiel erscheinen wird Und wir werden das BP Underscore Points nennen. Nicht zu verwechseln mit Widget. Blueprint unterstreicht Punkte. Okay, mach weiter und doppelklicke darauf. Um es zu öffnen, müssen wir hier im Komponentenbereich nur eine einzelne Komponente hinzufügen . Klicken Sie auf Hinzufügen. Wir werden eine Widget-Komponente hinzufügen. Keine Widget-Interaktion, sondern einfach ein Widget. Ich behalte den Namen des Widgets bei, wenn diese Komponente ausgewählt ist. Drüben im Detailbereich können wir eine Widget-Klasse angeben. Und hier in dieser Drop-down-Liste können wir unsere WP-Punkte auswählen Mach weiter und wähle das aus. Sie werden sofort in unserem Viewport feststellen, dass der Text wieder zeigt, wir diesen Text dynamisch ändern werden Wie viele Punkte möchten wir hinzufügen? Nun, dafür werden wir im Bereich „Mein Blueprint“ im Bereich „Variable“ eine Variable hinzufügen Mein Blueprint“ im Bereich „Variable“ eine Variable Klicken Sie auf diese Plus-Schaltfläche. Wir nennen das Hinzufügen. Wir werden daraus eine Ganzzahl machen. Wir können es hier oder im Detailbereich ändern, Variablentyp, ich ändere es einfach in eine Ganzzahl , wenn diese ausgewählt ist. Ich werde sofort kompilieren. Ich werde im Detailbereich drüber gehen. Ich werde diese Instanz editierbar machen. Und ich werde dieses Expose auch beim Spawn überprüfen. Dadurch können wir, wenn dieser bestimmte Akteur im Spiel erscheint, dieser bestimmte Akteur im Spiel erscheint, diese spezielle Variable sichtbar machen und leicht ändern, sodass sie leicht editierbar sichtbar machen und leicht ändern, sodass sie leicht ist Wir müssen also beide Checkboxen ankreuzen. Wir werden den Standardwert hier auf Null setzen. Okay. Als Nächstes werden wir einige Skripte hinzufügen und dafür gehen wir in unseren Event-Graph. Wir wollen etwas außerhalb von Event Begin Play machen, das es hier draußen bereits gibt. Lassen Sie uns also weitermachen und mit der linken Maustaste klicken und ziehen. Werde diese beiden Typen los. Hier beginnt das Event. Wenn du das versehentlich löschst, kannst du die Taste gedrückt halten und mit der linken Maustaste darauf klicken, um es zu erhalten, oder mit der rechten Maustaste klicken und nach Event Begin suchen . Abspielen. Du wirst es finden. Wir werden unsere Widget-Komponente hier einfügen wollen . Lass uns mit der linken Maustaste klicken und das hineinziehen. Der Grund, warum wir das einfügen wollen , ist, dass wir sehen wollen, ob es sich bei diesem Widget tatsächlich um unsere P-Punkte handelt . Um das zu tun, ziehen wir es hier raus geben Gast Two BP ein. Tatsächlich können wir noch nicht darauf antworten. Ich muss mich hier rausziehen und das Widget holen. Holen Sie sich das Widget. Wir sagen im Grunde, wir wollen diese Widget-Klasse bekommen. Wenn ich get widget, widget eintippe , bringen wir bereits eine weitere Kopie davon ein. Wir brauchen das nur aus unserem Widget, das du hier rausziehst, gib get widget ein. Du willst diesen Knoten genau hier haben. Damit wir uns dann hier rausziehen und einen Cast machen können. Zwei BP-Punkte. Jetzt ist diese ganze Einrichtung notwendig, damit wir hier einige Informationen aus unserem Widget-Blueprint extrahieren wir darauf streamen, können wir gezielt unsere Punkte-Animation aufrufen, um sie hier abzuspielen Tatsächlich wird das hier unser nächster Schritt sein. Gehen Sie also zurück zu Ihren BP-Punkten. Wir ziehen aus unseren BP-Punkten heraus und geben die Punkteanimation ein. Wir wollen eine Punkteanimation bekommen. Das ist die Animation , die wir gerade erstellt haben. Der Grund, warum wir das bekommen, ist, dass wir uns hier rausziehen und Play-Animation eingeben werden. Animation abspielen. Und dabei wird es das als Animation einbinden , die wir abspielen wollen. Nun zum Ziel: Wir wollen, dass dies unser Widget, unser Blueprint-Punkt Das stecken wir in das Ziel ein. Diese Notiz ist cool hier. Diese Spielanimation? Nein, denn wir können nicht nur die Anzahl der Loops angeben, die wir in diesem Fall nur einmal abspielen wollten. Wir können auch den Wiedergabemodus, Vorwärts, Rückwärts oder Tischtennis sowie die Wiedergabegeschwindigkeit angeben Vorwärts, Rückwärts oder Tischtennis sowie die Wiedergabegeschwindigkeit Wenn Sie also mit Ihrer Animationsgeschwindigkeit nicht zufrieden sind, können Sie sie auch hier anpassen Ich werde sie alle unverändert lassen. Okay, als Nächstes möchte ich den tatsächlichen Punktwert anpassen , der gerade angezeigt wird. Ich habe nur diesen Text Punkte, in dem Punkte stehen. Ich möchte also in der Lage sein, den tatsächlichen Textwert, der damit verknüpft ist, hier im Detailbereich anzupassen den tatsächlichen Textwert . Also wie können wir das machen? Nun, hier in unseren BP-Punkten. Wir können zwei BP-Punkte aus unserer Auswahl herausziehen und nach Punkten suchen. Wir wollen unsere Textpunkte bekommen. Dies bezieht sich speziell auf dieses Text-Widget hier. Damit wollen wir unseren Textinhalt ändern, indem wir den eingegebenen Text herausziehen. Ich kann den eingegebenen Text eingeben Ich möchte Text festlegen. Wir, wir sagen hier im Wesentlichen, dass wir diesen Textwert ändern wollen , der mit diesem Text-Widget verknüpft ist. Ich werde hier nur ein wenig herauszoomen , indem ich die Strg-Taste gedrückt halte. Wir werden das hineinstecken, also werde ich es hier so rausbringen Ich doppelklicke darauf, um einen Umleitungsknoten einzufügen. Beispiel wird der eigentliche Text, den ich hier anzeigen möchte , durch die hinzuzufügenden Punkte bestimmt Wenn ich das in unser Diagramm einfüge, werde ich es bekommen. Ich kann versuchen, diese Ganzzahl in diesen Text einzufügen. Es wird es von einer Ganzzahl in Text umwandeln. Es wird den Kerl auch mit reinziehen, wenn du das versuchst. Jetzt wird es Null statt Punkte anzeigen. Jetzt wollen wir hier noch etwas tun, ein bisschen zur Seite fahren, ist, dass wir diesen Schauspieler zerstören wollen , nachdem wir ihn ins Spiel gebracht haben Eine wirklich einfache Methode, um zu bestimmen, wann wir das zerstören müssen, besteht darin, zu bestimmen, wann das Ende unserer Animation ist Sobald unsere Animation fertig ist, lassen Sie uns weitermachen und sie zerstören. Was ich hier tun kann, ist die Animation aus meinen Punkten wie folgt herausziehen . Geben Sie get endtime ein, das gibt uns die Endzeit in Sekunden. Dann kann ich das hier rausziehen und das mit einem Delay Node Flow Control Delay verbinden. Ich werde diesen Ausführungsfluss einfach über dieses weiße Kabel aufrechterhalten, das von dieser Texteinstellung bis zu unserem Verzögerungsknoten führt. Und sobald das abgeschlossen ist, klicken wir mit der rechten Maustaste auf Destroy Actor. Das Ziel hier ist selbsterklärend, diese BP-Punkte. Denken Sie daran, dass diese BP-Punkte diese Anzeige hier zerstören werden. Ich weiß, dass hier Punkte stehen, aber wenn wir das ins Spiel bringen, werden unsere Punkte zum Hinzufügen genau hier angezeigt Derzeit ist es Null, aber wir können das dynamisch ändern, wenn wir angeben Punkte dieser BP in unserem Spiel erscheinen sollen Nachdem das alles erledigt ist, können wir weitermachen und erneut kompilieren und speichern. Sobald wir sagen, dass es in unserem Spiel erscheinen soll, wenn wir mit dem Block interagieren, werden wir herausfinden, ob das unsere WBP-Punkte sind, mit denen wir es zu tun Es wird tatsächlich das sein , mit dem wir es zu tun haben Der Grund, warum wir darauf casten, ist, dass wir die von uns erstellte Punkteanimation extrahieren können. Sagen Sie ihr, sie soll auch abgespielt , um den darin enthaltenen Text zu ändern. Wir werden ihn ändern. Dieser Text entspricht der Anzahl der hinzuzufügenden Punkte. Dann, nachdem unsere Punkteanimation fertig abgespielt wurde, erhalten wir die Zeit , die 0,95 Sekunden beträgt Um diesen Betrag werden wir warten, bevor wir den Schauspieler vernichten Wir werden fast eine Sekunde warten, bevor wir die Anzeige dieses Punktes zerstören. Und das alles wird in kurzer Zeit sehr gut zusammenpassen . Hier Leute, das wird alles für diesen machen. Wir sehen uns im nächsten. 31. Punkte-Funktion hinzufügen: Ordnung, wir haben also mehrere Dinge zusammengestellt, die sich auf Punkte beziehen darauf vorzubereiten, unsere Blöcke zusammenzusetzen uns darauf vorzubereiten, unsere Blöcke zusammenzusetzen und einige Punkte zu erzielen. Es gibt jedoch eine wichtige Sache, die uns immer noch fehlt, und das ist das Zusammenzählen von Punkten , wenn wir tatsächlich einige Punkte erzielen. Derzeit sind unsere Punkte variabel. Es ist derzeit an dieses Text-Widget hier in unserem wbPud gebunden dieses Text-Widget hier in unserem wbPud Diese Variable existiert in unserem Player-Controller. Also werden wir uns als Nächstes damit befassen. Gehen wir zurück zu unserem Haupt-Level-Editor doppelklicken wir auf unseren Player-Controller. Hier machen wir eine kleine Ergänzung, um unsere Münzen zu addieren, aber wir addieren noch keine Punkte. Derzeit ist es nur eine Variable , die hier rumhängt, und diese Variable ist in unserem WBP Hud gebunden Lass uns weitermachen und hier ein wenig rechnen. Klicken Sie mit der rechten Maustaste in ein leeres Feld, wir suchen nach einem benutzerdefinierten Ereignis. Wir nennen das einfach Punkte hinzufügen. dieses benutzerdefinierte Ereignis ausgewählt ist. Lassen Sie mich einfach nach oben zoomen. die Strg-Taste gedrückt halte und im Detailbereich die Ansicht „Over“ heranzoome , Wenn ich die Strg-Taste gedrückt halte und im Detailbereich die Ansicht „Over“ heranzoome, füge ich eine Eingabe hinzu Wenn ich auf diese Plus-Schaltfläche klicke, nenne ich diese Punkte zwei hinzuzufügende Punkte, nicht nur Punkte, zwei hinzuzufügende Wir machen daraus eine Ganzzahl und unsere Mathematik hier wird sehr einfach sein Irgendwann werden wir dem ein paar Punkte geben und es wird es hier ausgeben, wann immer diese Kundenveranstaltung ausgerufen wird. Und wir werden das hinzufügen, indem wir auf die Schaltfläche „Hinzufügen“ klicken, indem wir auf die Schaltfläche „Hinzufügen“ klicken zu unserer aktuellen Punkteanzahl ziehen und das Ganze hierher Und dann werden wir das als unseren neuen Punktewert festlegen. Ziehen Sie Ihre Punkte einfach per Drag-and-Drop auf diese Ausgabe , schon wird ein Setter angezeigt Und da hast du's. Das wird für unsere zukünftigen Blocks entscheidend sein. Stellen Sie also sicher, dass Sie kompilieren und speichern. Sie können das alles mit der linken Maustaste anklicken und ziehen. Wir nennen das unser Werbepunkte-Skript. Farbe: Schwarz. Und Leute, das wird alles für diesen machen. Kompilieren und speichern. Noch einmal. Wir sehen uns im nächsten Video. 32. Blockbasis: Willkommen. Wie Sie aus früheren Mario-Spielen wissen, enthalten sie nun eine Vielzahl interaktiver Blöcke. Wir werden anfangen, unsere Blöcke zu erstellen , indem wir mit einem Basisblock beginnen. Jetzt wird dies eine Art übergeordneter Block sein , in dem wir alle Basiskomponenten, Variablen, Skripte usw. zusammenfügen . Und dann werden wir untergeordnete Blöcke aus dieser übergeordneten Basis erstellen untergeordnete Blöcke aus dieser übergeordneten Basis Das wird also quasi die Grundlage sein , um uns für all die anderen Blöcke vorzubereiten, die in Zukunft von diesem Elternteil erben werden , den wir gerade erstellen Bevor wir mit all dem beginnen, stellen Sie sicher, dass Sie diese Texturen und diese Audiodateien von viel früher zu Beginn des Kurses importiert haben diese Audiodateien von , da wir sie in diesem Video verwenden werden sie in diesem Video verwenden Um hier anzufangen, gehe ich in meinen Plattform-Texturen-Ordner und werde hier Materialien aus drei verschiedenen Texturen erstellen . Wir haben unsere Blocknutzung. Ich werde diesen Fragenblock verwenden, obwohl ich hier ein paar Varianten habe , aus denen Sie wählen können. Aber es spielt keine Rolle, für welchen du dich entscheidest, ich wähle diesen Block, Frage eins, und dann wähle ich diesen Block, der zerbrechlich Also halte ich einfach die Kontrolle gedrückt. Also habe ich alle drei ausgewählt. Dann klicke ich mit der rechten Maustaste auf eines davon, das ich ausgewählt habe, und ich werde aus jedem von ihnen ein Material erstellen. Okay, jetzt wurden drei separate Materialien hinzugefügt, 12.3, und nur um diese zu organisieren, werde ich alle drei in meinen Materialordner ziehen , wie so Ich werde sie hierher verschieben. Lassen Sie mich einfach in meinen Materialordner springen, wenn das abgeschlossen ist, nur um sicherzugehen, dass sie da sind und es aussieht, als ob sie 12.3 Als Nächstes werden wir einen Blueprint erstellen Gehen Sie also in Ihren Platformer-Blueprint-Ordner, wir werden schreiben Klicke in eine leere Blueprint-Klasse. Dies wird eine Blaupause für den Namen der Schauspielerklasse Blaupause für Wir nehmen den BP-Unterstrichblock. Unterstrich die Basis. Dann doppelklicken wir auf diesen Typen, um ihn im Komponentenfenster ganz oben zu öffnen im Komponentenfenster ganz oben . Wir werden eine Komponente hinzufügen Wir werden eine Würfelkomponente hinzufügen. Ich werde diesen Namen als Würfel belassen, wobei diese Komponente im Detailbereich ausgewählt Ich werde unser Material einfügen. Ich werde das Wort Block eingeben . Ich habe meinen Block zerbrechlich gemacht, das wird hier mein Standardmaterial sein Als Nächstes werden wir zu meinem Blueprint-Panel kommen und einige Variablen erstellen Nochmals, da dies unser Basisblock sein wird, werden unsere untergeordneten Blöcke, die von diesem Elternblock erben werden, auch diese Variablen erben Ich werde genau hier klicken. Die erste Variable, die wir hinzufügen werden, heißt Finished Interacting. Ich möchte am Ende einer Bullion-Variablen ein Fragezeichen setzen . Das wird ein Edelmetall sein zweite, die ich hier erstellen werde heißt Coins To Add, das wird eine Ganzzahl sein Als Nächstes füge ich das hinzu, ich klicke mit der rechten Maustaste und das Duplizieren ergibt Punkte. nächsten Klick auf die Plus-Schaltfläche wird Interact X heißen . Ich werde in Klammern Niagara setzen Ich werde den Typ hier auf ein Niagara-System ändern. Objektreferenz des Niagara-Systems. Lecken Eine weitere Variable dazu wird Interact X sein und in Klammern wird das wieder Partikel sein Niagara ist das neuere Partikelsystem, aber wir werden in der Lage sein, zwischen dem neueren und dem älteren Partikelsystem zu wählen neueren und dem älteren Partikelsystem nur um Ihnen hier etwas Flexibilität zu geben Unter dem Typ wählen wir Partikelsystem, es ist Partikelsystem-Objektreferenz es ist Partikelsystem-Objektreferenz unter den dortigen Objekttypen Als Nächstes fügen wir Interact X hinzu, das ist ein Soundeffekt. Für diesen wird es eine Soundbasis sein, eine Sound-basierte Objektreferenz. Das hier ganz oben, und zu guter Letzt werden wir darauf klicken und es wird Interact Material heißen. Dieser Typ wird einfach unter die Kategorie Objekttypen fallen. Objektreferenz. Okay, dann kompilieren wir das gleich und geben uns einige Standardwerte. Klicken Sie ganz oben auf Compile. Hier beenden wir die Interaktion, wir können das als falsch belassen. Das ist völlig in Ordnung , wenn wir unsere Münzen hinzufügen. So viele Münzen möchten wir hinzufügen. Überhaupt für die Interaktion mit diesem Block. Ich werde diese Instanz editierbar machen, damit wir pro Instanz eines Blocks ändern können Sollten wir uns dafür entscheiden, lasse ich den Wert jetzt auf Null stehen. Wissen Sie was? Ich stelle es vorerst auf eins. Aber natürlich können wir das nach Belieben aktualisieren , Punkt, ich wähle das aus. Wir werden diese Instanz auch essbar machen. heißt, wir können dies aktualisieren, wenn ein Block, der von diesem Elternteil erbt , in unser Level aufgenommen wird Ich setze die Punkte standardmäßig auf zehn. Für Interact V-Effekte auf das Niagara-Partikel wähle ich die Option Einfache Explosion Für das Interact-V-Effektpartikel verwende ich den zerbrechlichen Unterstrichtopf Das kommt aus dem Infinity Blade Effects Pack, das ich hinzugefügt habe Jetzt können Sie wieder alles wählen, was Sie wollen. Das ist genau das, wofür ich mich entscheide. Das ist nur die Standardeinstellung für den Interact. Ich werde den Interact X nicht zuletzt für unser Interact-Material zu einer Münze machen . Ich werde das als meinen Block verwenden , damit wir interagieren können. Dieser Block für einige von ihnen , die nicht zerbrechlich sind, werden wir zu diesem bestimmten Material wechseln Ordnung, wenn das alles erledigt ist, gehen wir zu unserem Event-Graph über und fügen ein bisschen Skript Das Erste, was wir hier tun werden, ist, diese beiden Knoten aus unserem Event zu löschen . Fangen Sie an zu spielen. Wir klicken mit der rechten Maustaste in eine leere Stelle. Wir werden get player controller eingeben. Dann werden wir das auf unseren Player-Controller übertragen. Auf den Player-Controller übertragen, unseren BP-Player-Controller. Wir werden das einrichten, indem wir mit der rechten Maustaste auf diesen Pin klicken und ihn zu einer Variablen hochstufen. Wir werden einen Verweis auf unseren Player-Controller erstellen . Und ich werde den Namen einfach auf Player-Controller abkürzen , weil wir wollen, dass unsere untergeordneten Blöcke, also die Blöcke, die irgendwann von diesem Basisblock erben werden diesem Basisblock einen Verweis auf unseren Player-Controller haben Linksklick und Ziehen. Ich nenne das Player-Controller. Denken Sie daran, dass unser Spieler-Controller-Blueprint der Powerhouse-Blueprint ist , den wir verwenden, um Dinge wie das Zusammenzählen von Münzen zu tun. Das wird später hier wichtig sein. Ordnung, als Nächstes wollen wir erkennen, wann unser Block getroffen wird. Im Grunde wollen wir also erkennen, wenn unser Block hier von der Unterseite getroffen wird, okay, wenn unsere Würfelkomponente ausgewählt Klicken Sie einfach mit der rechten Maustaste und gehen Sie hier zu einer leeren Stelle. Klicken Sie mit der rechten Maustaste auf das Ereignis, um die Komponente zu treffen. Jetzt, wo der andere Schauspieler weg ist, können wir ein gleiches Symbol einbauen. Und wir werden überprüfen, ob der andere Schauspieler gleich O ist. Und Sie haben mich das schon einmal machen sehen. Hol dir den Spielercharakter. Wenn es unser Spielercharakter ist , der diesen Block trifft, werden wir ein paar Dinge tun. Aber wir müssen auch herausfinden, wie auf welche Weise dieser Würfel getroffen wurde. Wir wollen nur, dass etwas wirklich passiert, wenn wir die Unterseite dieses Blocks treffen Zum Glück können wir jetzt, wenn wir auf diesen Würfel treffen, einige Informationen über diesen Treffer direkt aus dieser Stecknadel extrahieren über diesen Treffer direkt aus dieser Wenn ich also hier rausziehe, kann ich Pause eingeben und dann auf Ergebnis klicken Dieser Knoten ermöglicht es uns, einige Informationen daraus zu extrahieren. hier auf diesen Abwärtspfeil klicken, können wir alle darin enthaltenen Informationen sehen. Insbesondere interessiert uns diese Auswirkung auf normale Ausgabe. Ich werde daraus ziehen und den Break Vector eingeben . Im Wesentlichen wird uns das ermöglichen, zu erkennen, in welche Richtung wir diesen Stein treffen. Wir wollen herausfinden, ob die Z-Richtung, die Auf- und Abwärtsrichtung, einem Einfluss des Werts eins in Z-Richtung entspricht . Wir überprüfen im Wesentlichen, ob wir das von unten getroffen haben. Ein negativer Wert wäre die Oberseite, ein positiver Teil des Aufpralls ist hier normal. Diese ebene Oberfläche erkennt, ob wir sie von der Unterseite treffen Wir wollen herausfinden, ob diese beiden Dinge wahr sind. Wenn es ein Spielercharakter wäre, der diesen Würfel getroffen hat und wenn wir ihn von der Unterseite getroffen haben. Da wir herausfinden wollen, ob beide wahr sind, ziehen wir eine der roten Stecknadeln heraus Geben Sie das Wort ein und wir fügen einen booleschen Wert hinzu. Wir wollen herausfinden, ob dies und das wahr ist. Wenn beide wahr sind, werden wir das an einen Verzweigungsknoten wie diesen anschließen . Wenn beide wahr sind, wollen wir diese Funktion als Hit Block aufrufen, sie hier in unserer Blueprint-Schnittstelle sichern indem wir Sie wird nur Hitblock genannt. Wenn ich hier aus dem True-Zweig herausziehe, gebe ich Hit Block und du siehst diese Trefferblock-Meldung. Wenn du jetzt darauf klickst , werde ich diesen Knoten mit diesem kleinen Umschlagsymbol für das Ziel einblenden. Sie können einfach rückwärts ziehen und self eingeben , weil das Ziel wir selbst sein werden. Wir wollen einen Verweis auf uns selbst bekommen, und das wird unser Hitblock-Skript sein Was wir jetzt auch hier tun werden, ist, dass wir diese BPI-Plattform, diese Blueprint-Schnittstelle zu diesem Blueprint hinzufügen wollen Blueprint-Schnittstelle zu diesem Blueprint Um das zu tun, gehen wir zu den Klasseneinstellungen und drüben im rechten Bereich haben wir einen Abschnitt für Schnittstellen, haben wir einen Abschnitt für implementierte Schnittstellen Und hier können wir unsere BP I-Plattform hinzufügen. Nun, das wird wichtig sein , weil wir wollen , dass unsere Blöcke , die von dieser Basis erben, dies auch haben Jetzt wird die Magie dieses Aufbaus deutlich , wenn wir einige untergeordnete Blöcke aus dieser BP-Blockbasis erstellen einige untergeordnete Blöcke aus dieser BP-Blockbasis In unseren untergeordneten Blöcken müssen wir nur ein Hitblock-Event aufrufen. Und dann können wir Dinge tun, die für diese Blöcke spezifisch sind, sodass wir diesen Codeabschnitt nicht gleich hier ausspülen und wiederholen müssen. In Ordnung, nachdem das alles erledigt ist, lasst uns weitermachen und Leute kompilieren und speichern. Damit ist es für diesen erledigt. Wir sehen uns im nächsten. 33. Blockbrechend: Willkommen, in diesem Video ist es unser Ziel, einen untergeordneten Block zu erstellen , der die Basisfunktionalität unserer Eltern erbt , unsere BP-Blockbasis Anschließend passen wir unseren untergeordneten Block , dass er bei einem Treffer aufbricht Bevor wir damit beginnen, werde ich einen weiteren Ordner in unserem Inhaltsbrowser erstellen . Hier, speziell für Ziegel. Und ich mache das im Blueprints-Ordner, indem ich hier drüben auf Blueprints Ich werde einen neuen Ordner erstellen und diesen einfach Blöcke nennen Und dann klicke ich sofort zurück in meinen Blueprints-Ordner und ziehe diese Blockbasis in meinen Block-Ordner Und wenn du es hier drauflegst, kannst du es so direkt da hineinverschieben Okay, jetzt bin ich in diesem Verzeichnis, meinem Blocks-Ordner, ich werde ein untergeordnetes Element dieses Basisblocks erstellen. Und das können wir tun, indem wir mit der rechten Maustaste auf Create a Child Blueprint-Klasse Es wird uns auffordern, diesen Namen zu geben. Also nenne ich diesen BP-Block Underscore Breakable. Das wird ein zerbrechlicher Block sein. Ordnung, lassen Sie uns weitermachen und darauf doppelklicken, um es zu öffnen werden viele Dinge In diesem Video werden viele Dinge zusammenkommen. Zunächst möchte ich darauf hinweisen, wie Dinge vererbt wurden Oben rechts können wir sehen, dass unsere übergeordnete Klasse BP Block Base ist Drüben im Komponentenfenster können wir sehen, dass wir diese Würfelkomponente geerbt haben. Wenn ich in die Klasseneinstellungen gehe, kann ich sehen, dass wir unsere BPI-Plattform, unsere Blueprint-Schnittstellenplattform, geerbt haben unsere Blueprint-Schnittstellenplattform Und hier auf der linken Seite das My Blueprint-Panel Wir können das Innere unserer Blueprint-Oberfläche sehen, wir haben diese Trefferblock-Funktion Um jetzt wieder zurück zu kehren, zu meinem Blueprint-Ordner. Hier ist meine BPI-Plattform, auf der wir diese Funktion namens Hit Block haben Ich möchte auch darauf hinweisen , dass wir unsere Variablen, die wir hier in unserem übergeordneten Block eingerichtet haben, geerbt haben unsere Variablen, die wir hier in unserem übergeordneten Block eingerichtet haben, hier in unserem übergeordneten Block eingerichtet Wenn Sie diese hier unten nicht sehen, wenn Sie auf dieses Zahnradsymbol klicken, haben Sie dieses Kontrollkästchen zum Anzeigen geerbter Variablen. Wenn es ausgeschaltet ist, werden Sie die vererbten Variablen nicht sehen , wenn es aktiviert ist, Sie werden sehen. Lassen Sie mich die Kategorie Variablen noch einmal erweitern. Diese Variablen, die wir in unseren Eltern eingerichtet haben , sind unser Basisblock. Und der Grund, warum wir das tun wollten, ist , dass wir diese Standardwerte haben, wenn Sie so Aber wir können sie für die Kinder anpassen. Und eines der Dinge, von denen ich weiß, dass wir an diesen Block Breakable anpassen sollten , ist unser Soundeffekt hier. Standardmäßig haben wir diesen Interact-Soundeffekt , der als Variable eingerichtet ist , und unser Wert hier ist derzeit ein Münz-Soundeffekt Dafür werde ich es in einen Breakable, einen Brick Break, ändern wollen einen Breakable, einen Brick Break, Also lass uns das gleich auf den Brick Break Sound umstellen. Okay, jetzt springen wir zu unserem Event-Graph. Und wir werden ein Skript hinzufügen , um anzupassen, was passieren soll , wenn wir mit diesem Block interagieren. Also werde ich hier zu unserem Ereignisdiagramm springen. Jetzt können Sie sehen, dass wir dieses Event gestartet haben. Und es ist mit dem Start des Spiels für Eltern verknüpft. Nun, das ist es wert, hier erwähnt zu werden, denn wenn ich hier zu unserer BP-Blockbasis gehe, kann ich im Inhaltsbrowser dorthin navigieren, wo sich das befindet, oder ich kann das übergeordnete Element öffnen. Lassen Sie uns das übergeordnete Element öffnen. Hier ist das Elternteil, unsere BP-Blockbasis. Wir stellen im Grunde sicher, dass, wenn anfangen, hier in unserem Breakable zu spielen all dieser Code auch mitgeliefert wird auch mitgeliefert Ordnung, hier in unserem BP-Block Breakable, das ist Wir lassen das alles stehen. Ich werde einfach mit der linken Maustaste klicken und ziehen, und wir werden das löschen. Jetzt möchte ich ein Event für unseren Trefferblock, unser Interface, einbauen. Wenn ich also mit der rechten Maustaste in eine leere Stelle klicke und Trefferblock eintippe, kann ich ein Ereignis hinzufügen, um den Block zu treffen. Jetzt wird dieses Ereignis ausgelöst, wenn mit unserem Block interagiert wird Denken Sie jetzt daran, dass unsere BP-Blockbasis das gesamte Skript für die Interaktion enthält Wir haben die Unterseite dieses Würfels getroffen. Wir haben dieses Interaktionsskript mit dem Aufruf zu diesem Trefferblock abgeschlossen . Sobald wir diesen Punkt in unserem Skript erreicht haben, wird es diesem Trefferblock-Ereignis hier in unserem Kind mitteilen , dass es ausgelöst wird und dann ein benutzerdefiniertes Skript ausgeführt wird. Wir müssen hier also nicht das gesamte Skript wiederholen , das bereits im Elternteil für uns erledigt wurde. Dieser Aufruf hier ist gut genug, um diese Funktionalität dann hier an unser Kind weiterzugeben. Okay, was wollen wir daraus machen? Nun, wir wollen, dass mehrere Dinge passieren, wenn wir diesen Block erreichen. Und weil wir wollen, dass mehrere Dinge passieren, werde ich eine Sequenznotiz hinzufügen. Nun, die Sequenznotiz ist einfach sehr nützlich , um mehrere Dinge zu organisieren , die wir gerne hätten. Wir möchten, dass hier etwas passiert, dann hier. Und dann werden wir tatsächlich einen dritten Pin hinzufügen , indem wir hier klicken. Es werden also drei verschiedene Dinge passieren. Das ist eine wirklich nette, ordentliche und geordnete Art, das zu bewerkstelligen. Okay? Das Erste, was ich hier tun möchte, ist einige Blockinteraktionseffekte abzuspielen. Und falls Sie sich erinnern, haben wir hier in unserem Inhaltsbrowser diese BP-Funktionsbibliothek erstellt. Und hier haben wir diese Funktion zum Abspielen der Blockinteraktionseffekte eingerichtet . Das wird jetzt hier, in unserem BP-Block Breakable, ins Spiel kommen unserem BP-Block Breakable Wenn wir klicken, können wir nach Play-Block-Interaktionseffekten suchen und sehen, dass sich diese Funktion in unserer BP-Funktionsbibliothek befindet Wir können jetzt hier in diesem Blueprint darauf zugreifen. Jetzt müssen wir nur noch angeben, welche Art von Sound- und visuellen Effekten wir abspielen möchten Das wird ziemlich einfach sein. Wir werden diese N Null einfach in unseren Play-Block Interact Effects einbauen. Ich doppelklicke auf dieses Kabel, um eine kleine Umleitung einzuleiten Hinweis: Aus organisatorischen Gründen können wir jetzt unseren Soundeffekt, unseren Interact-Soundeffekt , einbauen und ihn für unseren visuellen Effekt direkt auf diesen Soundeffekt-Pin ziehen für unseren visuellen Effekt direkt auf diesen Soundeffekt-Pin Auch hier gebe ich Ihnen zwei Optionen. Das neuere Niagara-Partikeleffektsystem oder das ältere Partikeleffektsystem Dafür werde ich mein älteres Interact VX-Partikel Das ist dieser zerbrechliche Topf. Ich stecke das einfach da rein. Beachten Sie, dass dies ein Entweder-Oder ist. So soll das eingerichtet werden. Sie könnten beides tun, aber wählen Sie einfach einen für den VFX-Standort Was ich tun werde, ist, mit der rechten Maustaste zu klicken und den Standort des Schauspielers abrufen einzugeben Das Ziel hier ist selbstbewusst, wo auch immer sich dieser BP-Block, der zerbrechlich ist, auf der Welt befindet Das werde ich jetzt ein bisschen ausgleichen. Ich könnte das im Mittelpunkt dieses Blocks spielen, aber wo ich das spawnen möchte, ist tatsächlich etwas oberhalb der Z-Achse Also ziehe ich es von hier raus und füge ein Plus-Symbol ein Ich werde hier einen Werbefachmann hinzuziehen. Und ich werde einfach 50 in der Z-Achse hinzufügen, nur um das Ganze ein wenig über der exakten Position dieses Blocks zu erzeugen , der durch Versuch und Irrtum durchbrechen kann Ich habe gelernt, dass das ziemlich gut ist. Okay, ich werde diesen Teil des Drehbuchs hier ein bisschen durchforsten Ich werde dieses Elternteil ein bisschen so hierher bringen. Und das wird unser erstes Drehbuch hier sein, diesen Block Interact X abzuspielen. Okay, als Nächstes möchte ich in unseren BP-Punkten spawnen Wir wollen an einigen Punkten spawnen und auch einige Punkte hinzufügen, indem wir an einigen Punkten spawnen Wir haben diesen BP-Punkte-Akteur genau hier eingerichtet. Wir wollen das in das Spiel integrieren, damit es die richtige Anzahl an Punkten anzeigt In diesem Akt, BP-Punkte , wollen wir hier in unserem BP-Block Breakable spawnen Die Art und Weise, wie wir das machen können, besteht darin, das in die Länge zu ziehen. Dann ein Pin, wir bringen Schauspieler aus dem Unterricht hervor. Dies ist ein Knoten, den wir einbringen wollen. Hier können wir unter Unterstrichpunkten der Klasse BP spawnen Unterstrichpunkten der Klasse BP Jetzt müssen wir eine Spawn-Transformation angeben , wo sie erscheinen soll Wenn wir klicken, können wir sagen, Get Actor Transform. Die Transformation besteht aus Positions-, Rotations- und Maßstabsdaten. Unser Ziel hier ist es, dass dieser BP-Block durchbrochen werden kann. Wir ermitteln die Position, Größe und Rotation dieses speziellen Blocks Dort werden wir ihn spawnen, in diesem Knoten haben wir diese Punkte, um Eingaben hinzuzufügen Der Grund dafür ist, dass wir in unseren BP-Punkten, die wir eingerichtet haben, diese Variable namens points to add Over im Detailbereich erstellt haben . Wir sagten, beim Spawn verfügbar zu machen, indem wir dieses Kästchen ankreuzen, um diese Instanz nutzbar zu machen Beim Spawn verfügbar machen, indem Sie diese beiden Kästchen ankreuzen. Das ist so gemacht, dass uns diese Variable zur Verfügung gestellt wird, wenn wir versuchen, diesen Akteur zu spawnen versuchen, diesen Akteur zu Und wir können es von hier aus in unserem BP-Block Breakable anpassen in unserem BP-Block Breakable Also hier ist, was wir tun können. Wir können unsere Punkte in unsere Punkte einbauen, um sie zu addieren, und wir können bestimmen , wie viele Punkte das sein sollen , wenn wir diesen Block auseinanderbrechen Ich belasse das jetzt bei zehn. Okay, als Nächstes. Was wir auch tun wollen, ist, einen Hinweis auf unseren Player-Controller zu geben. Und wir haben einen Verweis auf unseren Player-Controller, weil dieser hier in unserer Liste der geerbten Variablen übernommen wurde . Player-Controller, das ziehen wir mit rein. Wir holen es uns und dann ziehen wir es weg und geben Zusatzpunkte ein. Jetzt werde ich gleich unseren Player-Controller hier öffnen . Sie werden diese zusätzlichen Punkte nur finden, wenn Sie die Maus aus Ihrer Player-Controller-Referenz herausziehen. Zurück in unserem BP Player-Controller haben wir dieses benutzerdefinierte Ereignis namens Punkte hinzufügen erstellt. Der Grund, warum wir das Ganze Add Points nennen konnten , ist, all das in unserem Player-Controller existierte. Wenn wir das in unserem BP-Block als zerbrechlich bezeichnen , sagen wir, hey, Spieler-Controller feuert das benutzerdefinierte Event ab fügt Punkte hinzu, sodass wir beliebig viele Punkte hinzufügen können Wir verrechnen das mit unserer aktuellen Punktezahl und setzen das dann als neue Punktezahl Denken Sie daran, dass diese Punktevariable hier, innerhalb unseres Player-Controllers, an unser HUD hier in unserer UD gebunden ist, unsere Punktevariable in unserem Player-Controller ist hier gebunden, also wird sie das hier in unserem HUD widerspiegeln Ziemlich süß. Und sieh dir an, wie das alles zusammenkommt. Natürlich müssen wir uns sagen, wie viele Punkte wir hinzufügen wollen, weil das durch diese benutzerdefinierten Ereignisse gespeist wird . Wenn ich also auf „ Hier Punkte hinzufügen“ doppelklicke , unsere Punkte, die hinzugefügt werden sollen, fließt hier durch und addiere es zu unserer aktuellen Anzahl an Punkten. Deshalb haben wir diese Eingabe hinzugefügt, unsere Punkte zum Hinzufügen, sodass wir hier in unserem Block Breakable eingeben können, wie viele Punkte wir hinzufügen möchten Und wir werden unsere Punkte einfach per Drag-and-Drop drüber Und jetzt hätte ich einfach die Drogen rausnehmen und das auch hier einstecken können. Es spielt keine Rolle, ob Sie mehrere dieser Variablen-Getter haben oder ob Sie sie aus demselben herausziehen, es wird dasselbe bewirken Okay, jetzt spielen wir ein paar Interaktionseffekte. Wir erzeugen eine Punkteanzeige und addieren die Anzahl der Punkte Das Letzte, was wir tun müssen, ist diesen Schauspieler einfach zu vernichten Wenn ich also von meinen beiden abziehe, kann ich Destroy Actor eintippen. Und wir wollen sichergehen , dass das das Letzte ist, was wir tun. Wenn wir also auf diesen Block treffen, spielen wir die Effekte ab, spawnen in unserer Punkteanzeige und addieren tatsächlich einige Punkte zusammen Das muss das Letzte sein, was wir tun, denn wenn wir das als Erstes machen würden, würde nichts von diesen anderen Dingen passieren Okay, da ist unser fertiges Skript, also lasst uns weitermachen und es kompilieren und speichern Und es sieht so aus, als ob unser Skript als Nächstes einsatzbereit ist. Lass uns einfach einen zerbrechlichen Block per Drag-and-Drop in unser Level ziehen, irgendwo in der Nähe des Starts meiner Spieler Nur zu Testzwecken habe ich meine beiden D-Snap-Einstellungen hier auf die Hauptebene gebracht, also lasst uns unsere Blöcke finden Ich ziehe das einfach rein, also füge ich ein paar solcher Instanzen hinzu. Und lass uns reinspringen und spielen. Jetzt konnte ich sehen, wie meine Punkte angezeigt wurden , obwohl sie nicht zur Kamera gerichtet waren. Was ich hier tun kann, ist in meine BP-Punkte zu springen und hier meine Widget-Komponente auszuwählen. Ich werde das einfach so drehen , dass es zur Kamera zeigt. Derzeit wird es so angezeigt. Also alles, was ich hier tun muss, ist es einfach zu drehen. Ich drücke einfach die Leertaste. Rotieren. Lassen Sie mich hier meine Inkremente für meine Snap-Einstellungen festlegen. Wir werden diese Seite der Kamera drehen . Das werde ich mir sparen. Und wenn ich jetzt reinspringe und spiele und mit diesen Blöcken interagiere, muss ich auf die Feuerleiste dort achten. Ich kann diesen Block zerstören. Ich sehe, dass die Punkte tatsächlich oben rechts angezeigt werden. Sie können im HUD sehen, dass ich jetzt insgesamt 20 Punkte habe, weil jeder dieser Blöcke jeweils zehn Punkte wert war jeder dieser Blöcke jeweils zehn Punkte Also scheint alles wie im Design zu funktionieren. Also gut, Leute, das wird alles für diesen machen. Wir sehen uns im nächsten. 34. Coin blockieren: In Ordnung, also hier ist der Deal. Wie Sie diesem klassischen Mario-Filmmaterial entnehmen können, interagiert Mario mit verschiedenen Blöcken. Und bei einigen Blöcken, mit denen er interagiert , wie dem erscheint eine Münze daraus Unser Ziel in diesem Video ist es nun, einen Plan aus der Schauspielerklasse einer Blockmünze zu erstellen , die aus verschiedenen Blöcken herausspringt , wenn Mario mit ihr interagiert Okay, um hier, zurück in unserem Editor, anzufangen, werde ich das im Blueprint-Blockordner der Inhaltsplattform machen Blueprint-Blockordner der Inhaltsplattform Ich werde schreiben, klicken Sie auf Neue Blueprint-Klasse. Das wird ein Schauspieler-Kurs sein, weil wir das in das Spiel einbauen werden Und ich werde das BP Underscore Block Score Coin nennen Underscore Block Score Coin Nein, nochmal, das wird sich von unserer Münzwiedergabe unterscheiden Lassen Sie mich hier die Eingabetaste drücken, damit das in der Welt erscheint und das, was sich dreht, wenn wir mit verschiedenen Blöcken interagieren Lass uns sofort darauf doppelklicken. Um es im Komponentenfenster zu öffnen, fügen wir nur eine Komponente hinzu. Es wird ein statisches Netz sein. Ich werde diese Münze im Detailbereich aufrufen. Ich habe mehrere Dinge, die ich einstellen möchte. Das erste ist ein statisches Netz. Ich werde das auf einen Zylinder einstellen. Ich werde diesen Zylinder gleich hier wählen. Ich werde ihn auch sofort auf die Seite drehen, also setze ich die Drehung auf B. Ich habe einige Einstellungen im Voraus ausgewählt, minus 70. Das Y wird minus 90 sein, das Z wird minus 20 sein. Für die Skala werde ich den Wert auf 0,750, 0,75 und dann auf 0,07 einstellen , was Und weil ich die Einstellungen für die Waagensperre aktiviert hatte, ändert sich jedes Mal, wenn ich einen dieser Parameter ändere , alle Wenn ich es also entsperre, kann ich sie alle einzeln einstellen. Also das waren 0,75 in der X - und 0,75 in der Y. Ich möchte 0,75 in der Z-Richtung haben , damit es dort in Z-Richtung schön dünn Ordnung, außerdem möchte ich hier ein Material einstellen Ich tippe eine Münze ein. Ich setze das auf das neuere Münzmaterial, obwohl es nicht wirklich wichtig ist, welches ich unten im Kollisions-Bereich auswähle, ich werde meine Kollisions-Voreinstellung hier so welches ich unten im Kollisions-Bereich auswähle, ich werde meine Kollisions-Voreinstellung ändern , dass es keine Kollision ist, weil ich sicherstellen will dass es keine Kollision ist, weil ich sicherstellen , dass niemand damit kollidieren kann, wie mit einem Feind, den wir später erschaffen. Ordnung, nachdem all das erledigt ist, gehen wir zu unserem Ereignisdiagramm Und wir werden hier in einem leeren Raum etwas erschaffen. Rechts, klicken Sie auf eine Zeitleiste. Zeitleiste. Weil es mehrere Dinge gibt, die wir im Laufe der Zeit ändern wollen. Also werde ich eine Zeitleiste hinzufügen. Ich nenne das meine Münze, eine Zeitleiste, bei der man die Steuerung gedrückt hält und das Mausrad nach oben bewegt, um es zu vergrößern Ich werde darauf doppelklicken, um es in unserem Zeitleisten-Tab hier zu öffnen in unserem Zeitleisten-Tab hier . Ich werde sofort zwei Titel hinzufügen Wenn ich auf Track klicke , drücke ich einmal darauf. Wir werden einen Float-Track hinzufügen. Und ich werde das als erste Bewegung bezeichnen. Dies wird die Bewegung unserer Münze im Laufe der Zeit bestimmen . Dann werde ich hier einen weiteren Track hinzufügen, einen Float-Track. Und das wird Rotation heißen, weil wir unsere Münze im Laufe der Zeit rotieren wollen . Wie viel Zeit? Nun, wir werden unsere Zeitleiste hier auf 0,4 Sekunden festlegen . Ordnung, und jetzt arbeite ich in unserer Bewegungszeitleiste Zuerst klicke ich mit der rechten Maustaste und schwenke das Ganze in die Mitte, zoome mit meinem Scrollrad ein wenig nach oben, halte die Umschalttaste gedrückt und klicke dreimal 123. Nun, es ist nicht wirklich wichtig, wo ich klicke, weil ich manuell eine Zeit in einem Wert für jeden dieser Werte oder diesen letzten Keyframe, den ich hier ausgewählt habe, setze eine Zeit in einem Wert für jeden dieser Werte oder diesen letzten Keyframe, den ich hier ausgewählt habe, ich die Zeit auf 0,4 und den Wert 2200 oder jetzt können Sie sehen, dass es hier vom Bildschirm gesprungen ist. Das ist in Ordnung. Für das nächste setze ich die Zeit auf 0,25 und den Wert auf 300 Und für dieses allererste Schlüsselbild werde ich die Zeit auf Null und den Wert auf Null setzen auf Null und den Wert auf Null Wenn ich jetzt hier auf meine Pfeile klicken würde, Zoo-Linie ein bisschen rausziehen. Ich kann all diese Keyframes markieren, indem ich mit der linken Maustaste klicke und sie ziehe Und was ich tun möchte, ist, dass sie alle hervorgehoben sind und ich mit der rechten Maustaste auf einen von ihnen klicke . Sie sind alle hervorgehoben. Wenn sie blau sind, klicke ich mit der rechten Maustaste darauf. Und ich werde die Tasteninterpolation auf Auto setzen. Dadurch wird diese gekrümmte Linie hier geglättet diese gekrümmte Linie hier geglättet Anstatt dass das eine gerade Linie ist, gerade Linie, wird es eine glatte, kurvige Linie wie diese machen Jetzt, wo all diese hervorgehoben sind, werde ich noch einmal auf die Pfeile klicken Und Sie können diese Kurve etwas genauer sehen. Diese Kurve soll nun einen Float-Wert im Laufe der Zeit ändern einen Float-Wert im Laufe , um die Bewegung unserer Münze zu bestimmen. Also im Grunde genommen geht es von der Startposition oben in die Luft und dann wieder ein bisschen runter. Okay, als Nächstes werden wir unsere Rotationseinstellungen ändern , weil wir diese Münze haben wollen , wenn sie reinkommt Nicht nur, um einfach in die Luft zu steigen und dann wieder ein bisschen runter zu fallen, sondern auch, um sich zu drehen Dafür benötigen wir nur zwei Keyframes. Also werde ich die Umschalttaste gedrückt halten und mit der linken Maustaste auf den ersten klicken. Ich werde auf eine Zeit von Null und einen Wert von Null setzen Und dann klicke ich einfach mit der rechten Maustaste auf eine beliebige Stelle, wir fügen eine weitere Taste hinzu Das ist eine weitere Möglichkeit, einen Keyframe für diesen hinzuzufügen Ich stelle die Zeit auf 0,4 ein, also das Ende unserer Zeitleiste hier Und der Wert, der beim Drücken der Tabulatortaste zu dem Wertefeld springt, setze ich auf 720, also im Grunde zwei Drehungen Ich werde hier auf diese Pfeile klicken , um jeden dieser Schlüsselbilder anzuzeigen. Mir geht es hier mit einer geraden Linie gut. Ich muss das überhaupt nicht krümmen. Meine Münze wird in die Luft steigen und dann wieder ein bisschen nach unten fallen. Und dann wird sie hier auch zwei volle Umdrehungen machen, 720 Grad im Laufe von 0,4 Sekunden. Ordnung, jetzt springen wir zurück zu unserer Eventgrafik hier, aus unserer Münz-Timeline Und Sie können sehen, dass wir jetzt zwei Ausgangspins haben , um Werte aus unseren Float-Tracks zu übertragen. Dies wird also den Wert jedes Floats im Laufe der Zeit ausgeben jedes Floats im Laufe der Zeit Es wird sich in Bezug auf Bewegung und Rotation über 0,4 Sekunden ändern Bewegung und Rotation über 0,4 Sekunden Wir müssen hier ein bisschen zurückweichen. Und wir werden unsere Veranstaltung beginnen lassen. Spielen Sie in dieser Grafik nach vorne. Dieser Knoten hätte existieren müssen, als Sie diesen Blueprint zum ersten Mal erstellt Falls nicht, können Sie mit der rechten Maustaste klicken und nach Event Begin suchen Abspielen. Nach dem Start von Event Begin Play werden wir auf unsere Variablen im Bereich „ Mein Blueprint“ zugreifen Gehen Sie unter Komponenten und Sie sollten jetzt diese Münz-Anum-Komponente finden , die dieser Zeitleisten-Münze kommuniziert Wir ziehen das raus, lassen es fallen und holen Der Grund, warum wir das veröffentlichen werden ist, dass wir das in die Länge ziehen und die festgelegte Wiedergabegeschwindigkeit eingeben werden. Derzeit ist diese Zeitleiste 0,4 Sekunden lang. Und ich werde die Raten auf 1,0 setzen . Sie können sich das wie ein Prozentfeld vorstellen, 0,5 wäre die Hälfte der normalen Wiedergabegeschwindigkeit. Also werde ich es einfach mit der üblichen Geschwindigkeit spielen . Beachten Sie jedoch, dass Sie, wenn Sie die Geschwindigkeit ändern möchten, mit der das Spiel abgespielt wird, diese Zahl hier ändern würden, damit Sie das Tempo ändern können, mit dem das Spiel abgespielt wird, ohne die Timeline selbst anpassen zu müssen. Jetzt könnte ich das ins Spiel einbauen oder von vorne spielen. Ich werde von Anfang an spielen, weil ich möchte, dass es von Anfang an abgespielt wird. Spielen Sie, wann immer dieser spezielle Plan beginnt. Jetzt wird es losgehen und mit dem Spielen beginnen wann immer wir das in unser Spiel einbauen Dann geh hier nach rechts. Bringen Sie einen Hinweis auf meine Münze aus dem Komponenten-Panel mit, weil ich die Position und die Drehung dieser Münze im Laufe der Zeit anpassen möchte . Linksklick und Ziehen. Was ich dann tun werde, ist daraus herauszuziehen und Set einzugeben. Und ich möchte die relative Position und Rotation des Objekts im Laufe der Zeit ändern . Ich möchte den relativen Wert im Verhältnis zum Standort dieser Münze im Laufe der Zeit ändern Verhältnis zum Standort dieser Münze im Laufe der , wenn wir unsere Werte im Laufe der Zeit aktualisieren. Hier möchte ich aktualisieren, wo sich unsere Münze befindet. Ich ziehe hier von unserem neuen Standort rückwärts und tippe Make Vector Da eine Position aus X, Y und Z besteht und ich nur eine davon ändern möchte, werde ich diese kopieren. und ich nur eine davon ändern möchte, werde ich diese kopieren Knotensteuerung C Steuerung V Steuerung D. hätte einfach sofort dupliziert werden Entschuldigung, ich möchte keinen Vektor für diesen erstellen. Ich möchte diese neue Rotation machen. Ich werde schreiben, klicken Sie, das wird in unsere neue Rotation eingefügt. Das heißt, wir nehmen unsere Float-Werte und fügen sie in ein bestimmtes Feld ein. Auch hier möchte ich meine Münze nur in der Z-Achse nach oben bewegen. wir unseren Wert im Laufe der Zeit ändern, werden wir unsere Z-Position der Münze, also die Aufwärts- und Abwärtsposition der Münze, aktualisieren . Und denken Sie daran, dass wir hier in unserer Zeitleiste von unserer ursprünglichen Position um 300 unwirkliche Einheiten aufsteigen und dann ganz am Ende wieder auf 200 unwirkliche Einheiten für unsere Rotation sinken 200 unwirkliche Einheiten für unsere Ich nehme hier die Drehung vor, und wir wollen sie entlang der Z-Achse drehen Das wird es wie ein Oberteil drehen , wenn es in die Luft steigt. Und auch hier in unserer Zeitleiste werden wir uns um 720 Grad drehen. Das sind zweifache Umdrehungen über 0,4 Sekunden. Das ist ein gutes Drehbuch, um einfach unsere Münze zu bewegen, aber ich möchte hier ein bisschen Jazz hinzufügen Also, was ich tun werde, ist unsere Zielnadel abzuziehen. Wenn die Animation fertig abgespielt ist, werde ich sie von hier im Spawn-Emitter an der Position wegziehen Spawn-Emitter an Spawn-System am Standort ist der Name des Knotens, den Sie verwenden möchten , wenn Sie ein Niagara-Partikelsystem verwenden möchten Dies ist das ältere Partikelsystem. Ich möchte genau hier in einem Emitter spawnen, der als Underscore Lot Pick Up bekannt ist als Underscore Lot Pick Up Dieser ist im Infinity Blade EffX-Paket enthalten. Was wir dann tun müssten, ist einen Verweis auf unsere Münze hineinzuziehen , von hier wegzuziehen und sagen, den Standort der Welt ermitteln und das hier einstecken sobald wir mit dieser Zeitleiste fertig sind, einen Partikeleffekt erzeugen, eine Art Partikeleffekt an der aktualisierten Weltposition unserer Münzen, nur damit diese Münze quasi Wenn wir also den Standort unserer Münze aktualisieren, wird sie, sobald wir mit dieser Zeitleiste fertig sind, sobald wir mit dieser Zeitleiste fertig sind, einen Partikeleffekt erzeugen, eine Art Partikeleffekt an der aktualisierten Weltposition unserer Münzen, nur damit diese aktualisierten Weltposition unserer Münzen, explodiert in glorreicher Pracht erstrahlt Ordnung, damit können wir weitermachen und kompilieren und speichern Das wird sicherstellen, dass unser Drehbuch einsatzbereit ist. Wir können dies jetzt in Zukunft für mehrere unserer zukünftigen Blöcke nutzen . Leute, das wird alles für diesen machen. Wir sehen uns im nächsten. 35. Coin blockieren: In Ordnung, also hier ist der Deal. Wie Sie diesem klassischen Mario-Filmmaterial entnehmen können, interagiert Mario mit verschiedenen Blöcken. Und bei einigen Blöcken, mit denen er interagiert, wie dem, der gerade ist, spawnt eine Münze daraus Unser Ziel in diesem Video ist es nun, einen Plan aus der Schauspielerklasse einer Blockmünze zu erstellen , die aus verschiedenen Blöcken herausspringt , wenn Mario mit ihr interagiert Okay, um hier, zurück in unserem Editor, anzufangen, werde ich das im Ordner Blueprint Blocks der Inhaltsplattform machen Blueprint Blocks der Inhaltsplattform Ich klicke mit der rechten Maustaste auf Neue Blueprint-Klasse. Das wird ein Schauspieler-Kurs sein, weil wir das in das Spiel integrieren werden Ich werde das BP Underscore Blocks Coin nennen. Auch das wird anders sein als bei der Abholung von Münzen Lassen Sie mich hier die Eingabetaste drücken, damit das in der Welt erscheint und das, was sich dreht, wenn wir mit verschiedenen Blöcken interagieren, macht was sich dreht, wenn wir mit verschiedenen Blöcken interagieren Lass uns sofort darauf doppelklicken. Um es im Komponentenfenster zu öffnen, fügen wir nur eine Komponente hinzu. Es wird ein statisches Netz sein. Ich werde diese Münze im Detailbereich aufrufen. Ich habe mehrere Dinge, die ich einstellen möchte. Das erste ist ein statisches Netz. Ich werde das auf einen Zylinder einstellen. Ich werde diesen Zylinder gleich hier wählen. Ich werde ihn auch sofort auf die Seite drehen, also stelle ich die Drehung auf, ich habe einige Einstellungen im Voraus ausgewählt , minus 70. Das Y wird minus 90 sein, das Z wird minus 20 sein. Für die Skala werde ich den Wert auf 0,750, 0,75 und dann auf 0,07 einstellen 0,750, 0,75 und dann auf 0,07 , was wirklich dünn weil ich meine Einstellungen für die Skalensperre aktiviert hatte Immer wenn ich einen dieser Parameter ändere , werden alle geändert Wenn ich es entsperre, kann ich sie alle einzeln einstellen. Also das waren 0,75 in der X - und 0,75 in der Y. Ich möchte 0,75 in der Z-Richtung haben 0,75 in der Z-Richtung , damit es dort in Z-Richtung schön dünn Ordnung, außerdem möchte ich hier ein Material einstellen ein Ich tippe eine Münze ein. Ich setze das auf das neuere Münzmaterial, obwohl es nicht wirklich wichtig ist, welches ich unten im Kollisions-Bereich auswähle, ich werde meine Kollisions-Voreinstellung hier so welches ich unten im Kollisions-Bereich auswähle, ich werde meine Kollisions-Voreinstellung ändern , dass es keine Kollision ist, weil ich sicherstellen will , dass niemand damit kollidieren kann , wie mit einem Feind, den wir später erschaffen. Ordnung, nachdem all das erledigt ist, gehen wir zu unserem Ereignisdiagramm über Und wir werden hier in einem leeren Bereich mit der rechten Maustaste eine Zeitleiste erstellen rechten Maustaste eine Zeitleiste Zeitleiste, weil es mehrere Dinge gibt , die wir im Laufe der Zeit ändern möchten. Also werde ich eine Zeitleiste hinzufügen. Ich nenne das meine Münze, eine Zeitleiste, bei der man die Maus gedrückt hält und nach oben fährt, um sie zu vergrößern Ich werde darauf doppelklicken, um es zu öffnen. In unserem Zeitleisten-Tab hier werde ich sofort zwei Titel hinzufügen. Auf Track klicken. Ich werde es einmal drücken. Wir werden einen Float-Track hinzufügen. Und ich werde das als erste Bewegung bezeichnen. Dies wird die Bewegung unserer Münze im Laufe der Zeit bestimmen . Und dann werde ich hier noch einen Track hinzufügen , einen Float-Track. Und das wird Rotation heißen, weil wir unsere Münze im Laufe der Zeit rotieren wollen . Wie viel Zeit? Nun, wir werden unsere Zeitleistenlänge hier auf 0,4 Sekunden festlegen. Ordnung, und jetzt arbeiten wir zuerst in unserer Zeitleiste, klicken wir mit der rechten Maustaste und schwenken sie in die Mitte. Zoomen Sie mit meinem Scrollrad ein wenig nach oben. Ich werde die Umschalttaste gedrückt halten und dreimal auf 123 klicken. Jetzt ist es eigentlich egal, wo ich klicke, weil ich für jeden dieser oder diesen letzten Keyframe, den ich hier ausgewählt habe , manuell eine Zeit in einem Wert festlegen werde für jeden dieser oder diesen letzten Keyframe, den ich hier ausgewählt habe , manuell eine Zeit in einem Wert dieser oder diesen letzten Keyframe ich hier ausgewählt habe , Ich stelle die Zeit auf 0,4 und den Wert auf 200 ein Jetzt können Sie hier sehen, wie es vom Bildschirm gesprungen ist. Das ist in Ordnung. Für das nächste setze ich die Zeit auf 0,25 und den Wert auf 300 Für dieses allererste Schlüsselbild werde ich die Zeit auf Null und den Wert auf Null setzen auf Null und den Wert auf Null Wenn ich jetzt genau hier auf meine Pfeile klicken würde, Zoo-Linie ein wenig ausrichten. Ich kann all diese Keyframes markieren, indem ich mit der linken Maustaste klicke und sie ziehe Ich möchte, dass sie alle hervorgehoben sind und ich mit der rechten Maustaste auf einen von ihnen klicke Sie sind alle hervorgehoben. Wenn sie blau sind, klicke ich mit der rechten Maustaste darauf. Und ich werde die Tasteninterpolation auf Auto setzen. Dadurch wird diese gekrümmte Linie hier geglättet diese gekrümmte Linie hier geglättet Anstatt dass das eine gerade Linie ist, gerade Linie, wird es eine glatte, kurvige Linie wie diese machen Jetzt, wo all diese hervorgehoben sind, werde ich noch einmal auf die Pfeile klicken Und Sie können diese Kurve etwas genauer sehen. Diese Kurve soll nun einen Float-Wert im Laufe der Zeit ändern einen Float-Wert im Laufe , um die Bewegung unserer Münze zu bestimmen, im Wesentlichen von ihrer Startposition nach oben in die Luft geht . Und dann ein bisschen zurück. Okay, als Nächstes werden wir unsere Rotationseinstellungen ändern , weil wir diese Münze haben wollen , wenn sie reinkommt Nicht nur, um einfach in die Luft zu steigen und dann wieder ein bisschen nach unten zu fallen, sondern auch, um sich zu drehen Dafür benötigen wir nur zwei Keyframes. Ich werde die Umschalttaste gedrückt halten und mit der linken Maustaste klicken. Den ersten setze ich auf eine Zeit von Null und einen Wert von Null. Und dann klicke ich einfach mit der rechten Maustaste auf eine beliebige Stelle hier. Wir werden einen weiteren Schlüssel hinzufügen. Das ist eine weitere Möglichkeit, einen Keyframe für diesen hinzuzufügen Ich werde die Zeit auf 0,4 einstellen , also das Ende unserer Zeitleiste hier. Und der Wert, der beim Drücken der Tabulatortaste zu dem Wertefeld wechselt, setze ich auf 720, also im Grunde zwei Drehungen Ich werde hier auf diese Pfeile klicken , um jeden dieser Schlüsselbilder anzuzeigen. Und mir geht es hier mit einer geraden Linie gut. Ich muss das überhaupt nicht krümmen. Meine Münze wird in die Luft steigen und dann wieder ein bisschen nach unten fallen. Und dann wird sie hier auch zwei volle Umdrehungen machen, 720 Grad im Laufe von 0,4 Sekunden. Ordnung, jetzt springen wir zurück zu unserer Eventgrafik hier aus unserer Münzzeitlinie Und Sie können sehen, dass wir jetzt zwei Ausgangspins haben, zwei Float-Werte aus unseren Float-Tracks. Dies wird also den Wert jedes Floats im Laufe der Zeit ausgeben jedes Floats im Laufe der Zeit Es wird sich in Bezug auf Bewegung und Rotation über 0,4 Sekunden ändern Bewegung und Rotation über 0,4 Sekunden Wir müssen hier ein bisschen zurückweichen. Und wir werden unsere Veranstaltung beginnen lassen. Spielen Sie in dieser Grafik nach vorne. Dieser Knoten hätte existieren müssen, als Sie diesen Blueprint zum ersten Mal erstellt Falls nicht, können Sie mit der rechten Maustaste klicken und nach dem Ereignis Begin Play suchen Was wir nach Beginn des Events tun werden, ist, dass wir im Bereich „Mein Blueprint“ nach unseren Variablen Gehen Sie unter Komponenten und Sie sollten jetzt diese Münz-Anum-Komponente finden , die mit dieser Zeitleisten-Münzen-Anum Wir ziehen das raus, lassen es fallen und holen es Und der Grund, warum wir das rausbringen werden , ist, dass wir das in die Länge ziehen und eine festgelegte Wiedergabegeschwindigkeit eingeben werden. Derzeit ist diese Zeitleiste 0,4 Sekunden lang. Und ich werde die Rate auf 1,0 setzen . Sie können sich das wie ein Prozentfeld vorstellen, 0,5 wäre die Hälfte der normalen Wiedergabegeschwindigkeit. Also werde ich es einfach mit der üblichen Geschwindigkeit spielen . Beachten Sie jedoch, dass Sie, wenn Sie die Geschwindigkeit ändern möchten, mit der das Spiel abgespielt wird, diese Zahl hier ändern würden, damit Sie das Tempo ändern können, mit dem das Spiel abgespielt wird, ohne die Timeline selbst anpassen zu müssen. Jetzt könnte ich das ins Spiel einbauen. Spiel. Ich werde von Anfang an spielen, weil ich möchte, dass es von Anfang an abgespielt wird. Immer wenn dieser spezielle Plan beginnt, spiele ab Immer wenn dieser spezielle Plan beginnt, spiele Jetzt wird es losgehen . Beginne mit dem Spiel wann immer wir das in unser Spiel einbauen Dann geh hier nach rechts. Bringen Sie einen Hinweis auf meine Münze aus dem Komponenten-Panel mit, weil ich die Position und die Drehung dieser Münze im Laufe der Zeit anpassen möchte . Klicken Sie mit der linken Maustaste und ziehen Sie. Was ich dann tun werde, ist daraus herauszuziehen und Set einzugeben. Und ich möchte die relative Position und Rotation des Objekts im Laufe der Zeit ändern . Ich möchte den relativen Wert im Verhältnis zum Standort dieser Münze im Laufe der Zeit ändern Verhältnis zum Standort dieser Münze im Laufe der , wenn wir unsere Werte im Laufe der Zeit aktualisieren. Hier möchte ich aktualisieren, wo sich unsere Münze befindet. Ich ziehe von unserer neuen Position hier rückwärts und tippe Vektor ein, weil ein Ort aus X, Y und Z besteht. Und ich möchte nur einen von diesen ändern und diesen kopiere ich Knotensteuerung C Steuerung V Steuerung D. Das hätte einfach sofort dupliziert werden Entschuldigung, ich möchte keinen Vektor für diesen erstellen. Ich möchte einen Rotator für diese neue Rotation machen. Ich werde Click Rotator schreiben. Das wird Teil unserer neuen Rotation sein. Jetzt nehmen wir unsere Float-Werte und fügen sie in ein bestimmtes Feld ein. Auch hier möchte ich meine Münze nur in der Z-Achse nach oben bewegen. wir unseren Wert im Laufe der Zeit ändern, werden wir unsere Z-Position der Münze aktualisieren, die Position der Münze nach oben und unten. Und denken Sie daran, dass wir hier in unserer Zeitleiste von unserer ursprünglichen Position um 300 unwirkliche Einheiten aufsteigen und dann ganz am Ende wieder auf 200 unwirkliche Einheiten für unsere Rotation sinken 200 unwirkliche Einheiten für unsere Ich nehme hier die Drehung vor, und wir wollen sie entlang der Z-Achse drehen Das wird es wie ein Oberteil drehen , wenn es in die Luft steigt. Auch hier in unserer Zeitleiste werden wir uns um 720 Grad drehen. Das sind zweifache Umdrehungen über 0,4 Sekunden. Das ist ein gutes Drehbuch, um einfach unsere Münze zu bewegen, aber ich möchte hier ein bisschen Jazz hinzufügen Also, was ich tun werde, ist unsere Zielnadel abzuziehen. Wenn die Animation fertig abgespielt ist, werde ich sie von hier im Spawn-Emitter an der Position wegziehen Spawn-Emitter an Spawn-System am Standort ist der Name des Knotens, den Sie verwenden möchten, wenn Sie ein Niagara-Partikelsystem verwenden möchten ein Niagara-Partikelsystem verwenden Dies ist das ältere Partikelsystem. Ich möchte in einem Emitter spawnen, der als Underscore-Laute bekannt ist Direkt hier abholen. Dieser ist im Infinity Blade Ef X Pack enthalten. Was wir dann tun müssten, ist einen Hinweis auf unsere Münze hineinzuziehen, von hier wegzuziehen und sagen, den Standort der Welt ermitteln. Und das hier einstecken. Im Grunde genommen, wenn wir den Standort unserer Münze aktualisieren, wird sie, sobald wir mit dieser Zeitleiste fertig sind, sobald wir mit dieser Zeitleiste fertig sind, einen Partikeleffekt dieses Puff-Partikeleffekts an der aktualisierten Weltposition unserer Münzen hervorrufen Bevor wir dieses Video beenden, müssen wir noch ein paar Dinge klären. Ich hätte fast vergessen, nach unserem Spawn-Emitter hier wir nach unserem Spawn-Emitter hier den Akteur selbst über diesen Funktionsknoten zerstören müssen selbst über diesen Funktionsknoten Sie können einen davon erhalten, indem Sie mit der rechten Maustaste auf eine leere Stelle bei der Eingabe klicken und den Akteur zerstören Die Idee ist, dass wir, nachdem wir diese BP-Blockmünze ins Spiel haben und wir mit der Münzanimation fertig sind, sie loswerden müssen, um sie zu zerstören, sonst bleibt sie einfach in der Welt hängen Zum Schluss noch unser Münzgeflecht hier. Ich habe vergessen, dass wir unsere Rotation hier auf minus 70 bzw. minus 90 in X und Y eingestellt hatten . Wir müssen diese als unsere Startrotatoren für X und Y in diesem Rotatorknoten festlegen unsere Startrotatoren für X und Y in diesem Rotatorknoten Wenn wir das nicht tun, wird sich diese Münze nicht so entlang der Achse drehen, wie wir es beabsichtigt hatten Stellen Sie also sicher, dass Sie Ihr X und Y auf minus 70 und minus 90 setzen Y auf minus 70 und minus , damit sie mit unserer anfänglichen Münzrotation übereinstimmen . Das wird für diesen Fall ausreichen. Wir sehen uns im nächsten. 36. Blockiere gefälschte Breakable (Münze innen): In diesem Video werden wir einen falschen zerbrechlichen Block erstellen Das ist ein Block, der zerbrechlich aussehen wird, wie unser BP-Block, zerbrechlich, den wir bereits erstellt haben Wenn unser Charakter jedoch damit interagiert, wird er in unserer BP-Blockmünze erscheinen Unser Spieler wird einige Punkte verdienen und seine Münzsumme erhöhen Und dieser Block wird nicht vollständig zerstört, er wird bestehen bleiben. Und unser Spieler kann ihn als Plattform nutzen. In Ordnung, lassen Sie uns weitermachen und anfangen. Hier klicken wir mit der rechten Maustaste auf unseren BP-Block Breakable Und wir werden ein Duplikat davon erstellen , um Zeit zu sparen Wir werden diesen BP-Block Fake Underscore Breakable nennen BP-Block Fake Underscore Breakable Und dann drücke ich die Eingabetaste. Doppelklicken wir darauf, um es zu öffnen. Wie wir nun sehen können, erbt es von unserer BP-Blockbasis, die unser übergeordnetes System ist Wie wir auch sehen können, haben wir auch den gesamten Code kopiert, der zu unserem BP-Block Breakable gehörte Hier ist unser Block zerbrechlich und all das, weil wir ein Duplikat davon erstellt haben, ist in unserem gefälschten Breakable enthalten Das wird uns ein bisschen Zeit sparen, obwohl wir hier einige Änderungen vornehmen werden Ordnung, das Erste, was wir tun werden, ist diesen Teil des Drehbuchs hier nach oben zu verschieben Ich nehme unseren Block Interact, FX. Wir müssen mit der linken Maustaste klicken und das Ganze herumziehen. Ich tippe auf die Taste und setze dann keine Klammern Das wird unser Drehbuch vom Typ Play, Whoops, Play FX Ich werde hier im Detailbereich die Farbe Schwarz kommentieren , nur um ein bisschen mehr Kontrast hinzuzufügen Dies dient nur dazu, die Dinge ein bisschen ordentlicher und ordentlicher zu halten bisschen ordentlicher und ordentlicher Jetzt wollen wir die Interaktionseffekte dieses Blocks abspielen , wenn wir auf diesen Block stoßen Ich werde unsere Funktionalität hier jedoch ein wenig erweitern . Was wir zusätzlich zum Spielen einiger Blockinteraktionseffekte tun wollen, ist, dass wir das mit unseren Würfeln verknüpfte Material ändern wollen. Ich werde das per Drag & Drop in unser Diagramm ziehen. Ich ziehe es von hier raus und tippe das Set Material ein. Da ist es. Material festlegen. Wir zoomen nach oben, indem wir die Strg-Taste gedrückt halten und mit dem Mausrad nach innen scrollen Wir möchten das Material dieses Blocks wenn wir mit ihm interagieren, in unser Interact-Material umwandeln Denken Sie daran, dass wir all diese Variablen von unserem Elternteil, unserer BP-Blockbasis, geerbt diese Variablen von unserem Elternteil, unserer haben. Und sie werden genau hier angezeigt, zeigen vererbte Variablen. Wenn Sie dieses Kontrollkästchen nicht aktiviert haben , ziehe ich es per Drag & Drop auf unsere Materialeingabe hier. Wir sagen im Grunde, dass wir, wenn wir mit diesem Block interagieren, das mit unserem Würfel verknüpfte Material hier mit unserem Block ändern werden. Dieser Typ, wir werden das zu diesem Material ändern, dieser Block sieht gebraucht aus. Es wird nicht mehr diesen Ziegel-Look haben. Es wird ein solides braunes Aussehen haben. Okay, das wird also vom Null-Pin unseres Sequenzknotens kommen . Als Nächstes klicke ich mit der linken Maustaste und ziehe mit der Maus herum und tippe auf die Taste. Ich nenne das unsere Punkte. Eigentlich mache ich die 01, um zu zeigen, dass das aus der einen Sequenz kommt. Wie wäre es mit nur einem? Das werden unsere zusätzlichen Punkte sein. Wir werden in diesem Punkte-Widget spawnen und sie hinzufügen. Wir werden das auch schwarz färben . Das Tolle daran ist , dass wir ändern können wie viele Punkte wir für diesen Block vergeben Derzeit sind es zehn, aber machen wir 100. Wir können das ändern, indem wir unsere Variable hier auswählen, oder Sie können die tatsächliche Variable im Diagramm selbst auswählen . Ich werde das auf 100 setzen. Also etwas anderes werde ich tun, da ich gerade diese Punktevariable geändert habe, werde ich auch wieder hier hochfahren Und wir werden den Soundeffekt modifizieren , der mit der Interaktion mit diesem Block verbunden Interaktion mit diesem Block Derzeit ist es auf Brick Break eingestellt. Wenn wir damit interagieren, spawnen wir tatsächlich in einer Münze. Also lass uns das ändern auf dieses Drop-down-Menü klicke, gebe ich eine Münze ein, um einen Soundeffekt zu erzeugen. Okay, ich komme ein bisschen weiter runter. Ich werde gleich hier noch ein paar Stecknadeln hinzufügen. Und ich werde diesen Zerstörer löschen, weil wir nicht zerstören werden diesen Backstein nicht zerstören werden. Lösch das raus. Lass uns hier noch ein paar weitere Pins hinzufügen, 12, indem du auf diesen Button klickst. Als Nächstes spawnen wir einen weiteren Schauspieler, klicken Sie mit der rechten Maustaste auf den Spawn-Schauspieler aus Was ich hier spawnen möchte, ist unsere BP-Blockmünze. Bp unterstreicht Blockmünze. Lassen Sie uns das sofort von unserem einstecken, dann um es zu pinnen, müssen wir dem eine Transformation geben, die eine Position in einer Rotation ist eine Position in einer Rotation an der wir das spawnen werden Wenn ich also mit der rechten Maustaste in ein leeres Feld klicke und transformiere, werden die Position und Rotation unseres falschen Blocks abgerufen die Position und Rotation , wo auch immer er sich auf der Welt befindet Wir werden das so einstecken. Dann werden wir unsere Player-Controller-Referenz per Drag-and-Drop einfügen. Wir werden es von hier wegziehen und Münzen hinzufügen. Hier können wir die Münzen tatsächlich zu unserer Gesamtsumme hinzufügen. Wie viele Münzen möchten wir hinzufügen? Nun, wir haben diese Variable hier drüben. Derzeit ist sie standardmäßig auf eins eingestellt. Sie könnten tatsächlich zehn Münzen wert machen , wenn Sie möchten, dass ein Schuss zehn Münzen wert Ich lasse es bei eins und stecke das einfach so ein. Jetzt werde ich diesen Teil des Skripts mit mir herumschleppen. Linksklick, ziehen, nehmen. Ich nenne das auch „ Münzen hinzufügen “, ein bisschen Schrift, das schwarz färben. Ich wollte hier auf etwas hinweisen: Denken Sie daran, dass wir in unserem Player-Controller unser Ad-Coin-Skript erstellt haben . Und das wird als benutzerdefiniertes Event bezeichnet. Hier ist sogar ein kleiner Tipp, damit Sie wissen, dass, wenn wir hier auf diese Werbemünzen doppelklicken, unser Player-Controller geöffnet wird und wir zu diesem benutzerdefinierten Ereignis weitergeleitet werden. Dies ist das benutzerdefinierte Event, das wir von unserem falschen Block aus aufrufen, Breakable, und hier die Münzen tatsächlich hinzugefügt. Beachten Sie nun, dass wir unsere Münzen einstecken, um sie hinzuzufügen. Dies wird in diesen Aufruf einfließen und die hinzuzufügenden Münzen werden genau hier in unserem benutzerdefinierten Ereignis ausgegeben Also geben wir hier die Nummer eins ein. Und hier in unserem benutzerdefinierten Event wird es hier verteilt, um unsere Münzsumme zu erhöhen. Also wollte ich das nur klarstellen. Okay, als Nächstes möchte ich unserem Block eine kleine Animation hinzufügen , sodass er, wenn wir ihn treffen, in die Luft stößt ein wenig in die Luft stößt und dann wieder herunterfällt Denn denk dran, dieser Block wird nicht zerstört werden Um diese Blockanimation zu erleichtern, werde ich eine Zeitleiste einfügen. Klicken wir also mit der rechten Maustaste in eine leere Stelle. Fügen Sie eine Zeitleiste hinzu, rechten Maustaste und suchen Sie nach Zeit. Ganz unten befindet sich eine Zeitleiste. Und ich werde das meinen Block Anum nennen. In Ordnung, lassen Sie uns das ein bisschen genauer zusammenfassen. Ich werde unseren Sequenzknoten etwas weiter herunterfahren. Wenn wir also irgendwann das einstecken, jetzt diesen Block anum, können wir darauf doppelklicken, um einige Anum-Tracks zu erstellen Doppelklicken Sie darauf. Wir möchten hier eine Bewegungsspur hinzufügen. Es wird vom Typ Float sein, also lasst uns auf diese Plus Track-Schaltfläche klicken. Es wird ein Float-Track sein. Wir werden das Bewegung nennen. Unser Track hier wird drei Zehntelsekunden lang Also werde ich unsere Länge hier auf 0,3 Sekunden ändern hier auf 0,3 Sekunden Diese Blockanimation wird ziemlich schnell sein. Ich werde die Steuerung gedrückt halten und scrollen. Rad auf hoch. Dann klicke ich mit der rechten Maustaste und schwenke, sodass ich unsere 0,3-Sekunden-Zeitleiste hier sehen kann . Jetzt füge ich unserem Diagramm hier drei Punkte, drei Schlüsselbilder hinzu. Ich klicke mit der rechten Maustaste und füge ein Schlüsselbild hinzu. Den ersten setze ich auf eine Zeit von Null und einen Wert von Null. Das heißt im Grunde am Anfang unsere Bewegung genau da sein wird , wo sie gerade ist. Ich werde erneut mit der rechten Maustaste klicken. Genau hier. Wir werden einen weiteren Schlüssel hinzufügen und sagen, dass bei der 1-Sekunden-Marke unser Wert 50 sein wird. Jetzt springt er von oben nach oben, aber wenn ich hier auf diesen senkrechten Pfeil klicke, wird er sichtbar. Ich sage im Grunde, springen Sie in einer Zehntelsekunde unseren Block 50 unwirkliche Einheiten hinauf Dann klicke ich wieder mit der rechten Maustaste hier unten. Wir werden einen weiteren Schlüssel hinzufügen, und ich werde sagen, dass bei 0,3 Sekunden am Ende unserer Zeitleiste unser Wert wieder Null sein wird , unser Wert wieder Null sein wird jetzt werde ich diese beiden Keyframes hervorheben Ich habe genau dort den ausgewählt, die Strg-Taste gedrückt gehalten dann mit der linken Maustaste geklickt, diesen hier. Dann können Sie mit der rechten Maustaste auf eines davon klicken. Und ich werde die Tasteninterpolation hier auf Auto einstellen Tasteninterpolation hier auf Auto Und was das bewirken wird , ist, dass es kurvig wird kurvig Also werden wir diesen Block in einer Zehntelsekunde hochschießen , sehr schnell, linear Und dann werden wir es wieder lockern. Es wird schnell gehen, aber es wird es wieder lockern Wenn Sie mit der linken Maustaste klicken und ziehen, um all diese Punkte so hervorzuheben , dass sie alle ausgewählt sind Sie können auf diese beiden Pfeile klicken, um es einzurahmen und eine etwas bessere Vorstellung davon zu bekommen eine etwas bessere Vorstellung , wie das aussehen wird. Okay, jetzt springen wir aus unserer Zeitleiste heraus und kehren zu unserem Ereignisdiagramm zurück. Wir können sehen, dass unser Bewegungsstift jetzt sichtbar ist. Und wir können das für unser Skript verwenden, um die Position unseres Würfels, unseres Blocks hier, anzupassen. Also werde ich hier einen Verweis auf unseren Würfel, unsere Blockkomponente, einfügen. Lassen Sie uns das herausziehen und die relative Position festlegen eingeben. Wir werden hier die Position unseres Blocks im Verhältnis zu seinem aktuellen Standort ändern . Wenn wir von der neuen Position rückwärts ziehen, können wir make vector eingeben, um X, Y und Z auf eine Art und Weise sichtbar zu machen Jetzt wollen wir das nur in die Richtung nach oben und unten bewegen , nicht nach links und rechts vorwärts und rückwärts , um unser Skript zu beenden Hier lösen wir uns von unserem Sequenz-Pin. Wir werden das von Anfang an ins Spiel integrieren. Da dies in den 0,3 Sekunden, die wir in unserer Timeline eingerichtet haben, aktualisiert 0,3 Sekunden, die wir in unserer Timeline eingerichtet haben, wird, werden wir die Position, die relative Position unseres Würfels, aktualisieren . Ordnung, wenn das erledigt ist, klicken wir mit der linken Maustaste, ziehen und tippen auf die Taste. Das wird unser Block genannt werden. Ähm, das werden wir auch schwarz färben . Jetzt können wir das tatsächlich kompilieren und speichern. Unsere Skripte sehen gut aus und wir können das in unserem Level testen, aber es wird ein Problem geben, das wir gleich hier beheben werden. Aber nur um zu sehen, wie das aussehen wird, habe ich meine beiden D-Snap-Einstellungen hier auf meiner Hauptebene. Lass mich den Kerl einfach reinbringen. Ich bringe sofort ein paar davon mit. Es gibt also einen, bei dem Sie die Alt-Taste gedrückt halten , mit der linken Maustaste klicken und ziehen, um ein Duplikat wie dieses einzufügen. Los geht's, springen rein und spielen und überprüfen, wie viele Münzen wir gesammelt haben. Und unsere Punkte, wir sollten beide bekommen. Also los geht's. Ich habe eine Münze, ich habe 100 Punkte. Das ist alles schön und gut, du musst dich für den zweiten entscheiden. Ich habe jetzt zwei Münzen und 200 Punkte. Aber hier sind ein paar Probleme. Ich kann einfach weiter damit interagieren. Das ist also offensichtlich nicht erwünscht, also wird mehr Skript benötigt. Also gut, was müssen wir tun, um das wieder in Ordnung zu bringen? Nun, wir springen zurück in unseren falschen Block Breakable Wir werden ganz am Anfang ein bisschen arbeiten ganz am Anfang Und dann werden wir auch etwas davon hinzufügen , dann vierpolig. Fügen Sie hier also etwas Abstand zwischen unserem Event-Trefferblock und unserem Sequenzknoten hinzu. Wir wollen nur, dass diese Sequenz im Grunde das tut was sie tun wird, wenn wir diesen Block zum zweiten Mal treffen Wir wollen einfach einen Bank-Soundeffekt abspielen, einen Brick-Bump-Soundeffekt Wir können all das also vereinfachen, indem wir unseren Booleschen Wert für die Finishinteraktion einsetzen, den wir bereits in unserer Blockbasis eingerichtet hatten bereits in unserer Blockbasis eingerichtet Auch das alles stammt von unserer BP-Blockbasis, die wir vor langer Zeit eingerichtet haben Auch hier zeigen wir diese vererbten Variablen genau auf diese Weise. Wir werden das reinbringen, wir werden es bekommen. Standardmäßig ist dieser boolesche Wert auf False gesetzt. Wir ziehen uns hier raus und bringen einen Verzweigungsknoten Wir werden das so umverkabeln. Wir werden mit der linken Maustaste klicken und ziehen. Und wir werden sagen, wenn diese Bedingung, die als falsch beginnt, falsch ist, werden wir dann all diese Blockinteraktionen durchführen so wie Sie es gerade bei mir gesehen haben. Wenn dies jedoch zutrifft, ziehen wir den Zweig „Richtig“ zurück. Wir werden Sound Two D spielen . Stattdessen werden wir einen Bump-Soundeffekt abspielen Mario Brick, Bump, so ein Balk-Soundeffekt. Okay? Also das ist alles schön und gut. Dies wirft jedoch die Frage auf, wenn das als falsch anfängt, wir jedes Mal, wenn wir auf diesen Block stoßen sollten wir jedes Mal, wenn wir auf diesen Block stoßen, diese Branche verlassen und all diese Dinge tun, oder? Wann wird das jemals wahr werden? Nun, darauf werden wir aufbauen Dann vier Pins, wir werden die Alt-Taste gedrückt halten, mit der linken Maustaste klicken und ziehen. die Alt-Taste gedrückt halten, Wenn Sie die Alt-Taste gedrückt halten, wird sofort ein Setter für diese Variable aufgerufen Und wenn wir von den vier Pins wegziehen, sagen wir, dass der Wert nach der ersten Interaktion mit dem Stift auf „true“ umgestellt wird auf „true“ umgestellt Also können wir das hier unterbringen, also das, was passiert ist das erste Mal, wenn wir auf diesen Block stoßen, wir werden sagen, hey, wir haben die Interaktion damit beendet Nein, das ist falsch. Also werden wir all das Zeug machen Wir werden diese Effekte spielen. Wir werden diese Punkte hinzufügen. Wir werden diese Münzen hinzufügen. Wir werden diese Blockanimation abspielen. Oh ja, und übrigens, wir werden diese Variable jetzt auf true ändern, sodass sie beim zweiten Mal , wenn wir auf diesen Block stoßen, wahr ausgewertet wird. Und stattdessen werden wir einfach aus diesem Zweig heraus feuern , in dem wir diesen Sound einfach abspielen. Lassen Sie uns das kompilieren und speichern und ausprobieren. Jetzt interagiere ich einmal mit diesem Block, wir bekommen 100 Punkte, wir bekommen eine Münze und ich interagiere erneut damit. Der Block geht hier nicht hoch. Balk-Soundeffekt. Spring darauf Es ist immer noch interaktiv, ich kann das Ganze überarbeiten Alles funktioniert jetzt wie erwartet. Alles klar. Arbeit. Gut gemacht. Nun, nur um das alles einzurahmen falls du das Video pausieren und einen Screenshot machen oder die Arbeit ansehen möchtest, die wir hier gemacht haben Das ist der obere Teil unseres Skripts. Gehen wir einfach weiter nach unten, das ist der untere Teil des Skripts. Der mittlere Teil des Drehbuchs, wenn Sie so wollen, und dann kommen wir wieder ganz nach unten. Ordnung Leute, wir haben hier gute Arbeit geleistet In Ordnung Leute, wir haben hier gute Arbeit geleistet und das bereitet uns wirklich gut auf den nächsten Stein vor, den wir machen werden , Leute, der reicht für diesen. Wir sehen uns im nächsten. 37. Block? (Münze innen): Willkommen. In diesem Video ist es unser Ziel, einen Fragenblock zu erstellen , der, wenn unser Charakter mit ihm interagiert, eine Münze einbringt Die gute Nachricht hier ist, dass dies das kürzeste Video aller Zeiten sein wird, denn im Grunde werden wir ein Duplikat unseres falschen zerbrechlichen Blocks erstellen und nur ein Material ändern Also mach weiter und klicke mit der rechten Maustaste auf deinen Block, fake breakable. Lass uns das duplizieren Wir werden diesen BP-Block Q umbenennen, Unterstrich wie bei einer Münze Also. Wir werden darauf doppelklicken, um es zu öffnen. Wir werden buchstäblich das ganze Drehbuch gleich lassen . Das einzige, was wir ändern werden , ist hier drüben. Ich wähle unseren Viewport-Tab und dann unseren Cube Wir werden das damit verbundene Material so ändern , dass es unseren Block hat Frage eins, Matt. Das können wir sofort sagen. Wenn wir wollten, könntest du ändern, wie viele Münzen das wert sind. Ich lasse es bei einem. Der einzige Grund, warum wir diesen Block erstellen , ist, weil er einfach ist und dem Level etwas mehr visuelle Abwechslung bietet. In vielen Mario-Spielen gibt es Fragenblöcke, die eine einzige Münze einbringen . Deshalb werden wir ihn hinzufügen. Lass uns das ausprobieren, reinspringen und spielen. Wie Sie sehen können, können wir damit interagieren, ändern das Material, wir bekommen 100 Punkte. Wir kriegen eine Münze fertig, fertig, Leute, das wird alles für diese machen. Wir sehen uns im nächsten. 38. Blockiere unsichtbare Münze: Willkommen zurück alle. In diesem Video werden wir einen Block erstellen , der zunächst unsichtbar sein wird. Wenn unser Spielercharakter ihn jedoch findet und mit ihm interagiert , also ihn von unten trifft, macht er ihn sichtbar und erhält eine Münze Die gute Nachricht dabei ist, dass wir vieles von dem, was wir hier geschaffen haben, duplizieren können , um uns einen Vorsprung zu verschaffen Unsere BP-Block-Q-Münze hier. Klicken Sie mit der rechten Maustaste auf diesen Typen. Wir werden das duplizieren. Und ich werde diesen BP-Block Invisible Underscore-Münze nennen. Doppelklicken wir darauf , um es sofort zu öffnen. Ein Großteil dieses Codes wird gut sein. In der Tat wird alles gut sein. Wir werden ein bisschen mehr hinzufügen. Aber ich möchte in unserem Viewport beginnen. Nun, das wird für den Spieler zunächst unsichtbar sein. Der Designer wird dies jedoch sehen können, wenn er im Level-Editor arbeitet. Lassen Sie mich das jetzt einfach per Drag-and-Drop in unser Level ziehen. Das Problem hier ist, wenn Sie der Designer sind, wird dieser Block identisch mit unserem Q-Münzblock aussehen . Also alles, was ich hier tun möchte, ist, diesem Block ein anderes Bild hinzuzufügen , nur um dem Designer klar zu machen dass er unsichtbar ist, ein Hinweis. Bevor ich dieses Video gedreht habe, bin ich in meinen Texturen-Ordner gegangen. Ich habe mit der rechten Maustaste auf unseren Block geklickt, Frage zwei, und daraus ein Material erstellt Nachdem ich das Material erstellt hatte, habe ich es einfach per Drag-and-Drop gezogen. Und ich habe es in unseren Materialordner verschoben. Und das können Sie hier sehen Ich werde das auf unseren Würfel hier in diesem BP-Block anwenden , unsichtbar, sodass wir einen sichtbaren Unterschied haben. Ordnung, wenn wir unseren Würfel im Detailbereich unter Materialien auswählen , wechseln wir zur zweiten Blockfrage nur damit das etwas anders aussieht. Großartig, jetzt, wo unsere Würfelkomponente ausgewählt ist, werden wir hier eine weitere Komponente hinzufügen. Wir werden eine Box hinzufügen, die nach einer Box sucht. Ich suche nach einer Boxkollision, füge diese Komponente hinzu und drücke die Eingabetaste, um den Boxnamen beizubehalten. dies im Detailbereich ausgewählt ist, möchte ich eine gewisse Box-Erweiterung haben. Es wird 100 mal 50 mal 100 sein. Also werden wir diese unsichtbare Kiste darum herum bauen. Und ich möchte es in Z-Richtung einrichten. Ich werde das auf 51 einstellen. Und der Grund, warum ich das aufstelle, ist, dass ich es so machen will, dass es kaum den Boden des Blocks durchdringt Der Boden des Blocks ist tatsächlich freigelegt. Die Idee dabei ist, dass unser Spieler die Unterseite treffen und mit ihr kollidieren kann Wenn sie jedoch von oben hineinspringen oder so springen, werden sie mit dieser Kiste kollidieren und die Kollision ausschalten Also in der Lage zu sein, nicht damit zu interagieren. Diese Box wird von uns, dem Designer, verwendet werden können, um die Kollision für diesen Block aus- und einzuschalten . Okay, dafür springen wir zu unserem Event-Graph. Jetzt haben wir mit unseren Box-Komponenten die Box ausgewählt, die unsichtbare Box. Wir werden mit der rechten Maustaste darauf klicken. Wir werden ein Ereignis hinzufügen, für den Fall, dass wir beginnen, es zu überschneiden. Lassen Sie uns das etwas niedriger machen. Dann klicken wir erneut mit der rechten Maustaste auf das Feld und möchten ein Ereignis hinzufügen, für den Fall, dass wir es überlappen Stellen Sie nun sicher, dass Sie mit Ihrer Box-Komponente sprechen. Hier steht es in Klammern . Box Box, nicht der Würfel. Wir wollen die Box überlappen und am Ende die Box überlappen. Wir klicken hier mit der rechten Maustaste in ein leeres Feld und geben Get Player Character Dann klicke ich mit der rechten Maustaste in ein leeres Feld und gebe das Gleichheitszeichen ein. Und ich werde ein paar Gleichheitsknoten hinzufügen, um das zu duplizieren Und ich werde das wie jeder andere Schauspieler einhängen , um Spielercharakter zu bekommen Ein anderer Schauspieler, um Spielercharakter zu bekommen. Dann füge ich einige Verzweigungsknoten hinzu die Taste B gedrückt halte und links indem ich die Taste B gedrückt halte und links klicke. 1.2 Alles klar, unser Code wird so aussehen , wenn es unser Spielercharakter ist, wenn unser Spielercharakter der andere Akteur ist , der das Feld überlappt, wollen wir hier mit unserem Würfel sprechen , dem Block, mit dem wir sprechen wollen das in unser Ereignisdiagramm zieht. Wir wollen nur Kollisionen aktivieren. Wir wollen die Kollision deaktivieren indem wir bei diesem neuen Typ keine Kollision einstellen. Die Idee dabei ist , dass, wenn es der Spielercharakter wäre, der andere Schauspieler das Feld überlappt. Wenn das stimmt, werden wir unserem Würfel sagen, dass er die Kollision ausschalten soll. heißt, unser Charakter wird ihn mit diesem ausgewählten Knoten direkt durchqueren . Drücken Sie die Taste D, um es zu duplizieren. Umgekehrt werden wir sagen, stellen Sie sicher, dass Sie Ihren Würfel genau hier unten einhängen, dass, wenn es unser Spielercharakter wäre, wenn Sie den anderen Akteur verwenden das Feld überlappt hat, wenn das stimmt, wir es unserem Würfel sagen Um seine Kollision quasi wieder einzuschalten. Die Kollision ist genau dort aktiviert. Kollisionsfähige Abfrage in der Physik. Klicken wir mit der linken Maustaste und ziehen mit der Maus, tippen wir auf die C-Taste und ich hole das, unser Kollisionsskript zum Umschalten von Block-Kollisionen Und ich färbe es sofort im Detailbereich schwarz, indem ich diesen Farbleisten auswähle. Ordnung, lassen Sie uns das sofort kompilieren und speichern. Und wieder sehen wir hier in unserem Level-Editor diesen Block. Mein Charakter wird sozusagen direkt links davon erscheinen Lass uns das spielen. Wenn wir es jetzt sehen können, wenn ich die Unterseite treffe, kann ich damit kollidieren Aber wenn ich das noch einmal spielen würde und dieses Mal durch die Oberseite hindurchgehe, schneide ich direkt durch die Unterseite, könnte unten kollidieren, aber ich würde es durchgehen oder durchqueren, wenn ich mich ihm von einer Seite oder von oben nähere kollidieren, aber ich würde es durchgehen oder durchqueren, aber ich würde es durchgehen oder durchqueren wenn ich mich ihm von einer Seite oder von oben nähere Okay, also ein paar Dinge, die hier repariert werden müssen. Gehen wir zurück in unseren BP-Block. Unsichtbare Münze, ich werde feststellen, dass unser Event beginnt, das genau hier oben existieren wird. Denken Sie daran, dass dieser Block letztendlich von unserer Blockbasis erbt Deshalb gibt es dieses kleine Skript genau hier. Darauf bauen wir auf, indem wir unseren Würfel so einsetzen. Wir ziehen das in die Länge und geben die eingestellte Sichtbarkeit ein. Wir können dieses Skript hier erweitern. Wir sagen Hey Cube. Zu Beginn des Spiels wirst du nicht sichtbar sein. Also wenn ich das kompilieren und sagen würde, wenn ich jetzt in mein Level gehen würde, können wir es hier im Level-Editor sehen. Aber sobald ich mit dem Spielen anfange, kann ich den Würfel nicht mehr sehen. Okay, ich kann noch damit interagieren, aber wir können ihn nicht von Anfang an sehen. Hier gibt es noch ein bisschen mehr zu tun. Lassen Sie uns hier zurück zu unserem Drehbuch springen. Wir werden zurückblättern. Wir werden unserem Sequenzknoten hier außerhalb des Event-Trefferblocks einen weiteren Pin hinzufügen . Fügen wir noch einen Pin hinzu. Und ich nehme diese Finish-Interaktion , die von den damaligen vier Pins entfernt war. Ich werde das einfach auf den damaligen Fünf-Pin reduzieren. Halten Sie die Strg-Taste gedrückt, klicken Sie links und ziehen Sie. Ich kann das Kabel auf fünf herunterziehen. Lassen Sie mich meinen Sequenzknoten ein wenig nach unten verschieben weil ich hier unten ein Skript hinzufügen werde . Jetzt werde ich hier unten einen Verweis auf meinen Würfel bringen. Ziehen Sie das noch einmal per Drag & Drop hierher. Wir ziehen das raus und geben nur die eingestellte Sichtbarkeit ein. Dieses Mal werden wir dieses Kästchen ankreuzen. Lassen Sie uns das mit dem damals vierpoligen Anschluss so verkabeln. Unsere Idee ist, wenn wir den Block treffen, sagen wir, dass unser Würfel sichtbar ist, wir werden ihn wieder sehen können . Etwas anderes, was wir hier auch gerne tun würden , ist, wenn wir diesen Block getroffen haben, und er ist jetzt im Spiel, wo der Spieler ihn sieht. Wir werden unserem Box Collider hier sagen, dieses innere Diagramm per Drag & Drop Wir werden sagen, dass es zerstört werden soll, und die Destroyer-Komponente eingeben, Destroyer-Komponente eingeben denn wenn wir den versteckten Block erst einmal aufgedeckt haben, wollen wir ihn nicht mehr durchqueren können Klicken wir mit der linken Maustaste und ziehen es ab. Tippen Sie auf die Sitztaste Ich nenne das unsere vierpolige Aktivierung der Sichtbarkeit. Machen wir also weiter und drehen diesen Block, um ein bisschen mehr Kontrast zu erzeugen. Also das wird genau unser Drehbuch sein. Ich werde unseren Sequenzknoten ungefähr wieder an seine Position bringen. Lass uns weitermachen und das kompilieren und sagen. Und geh zurück zu unserem Level-Editor hier. Ich werde diesen Block direkt über den Kopf unseres Charakters verschieben , damit wir wissen, wo er sein wird. Ich werde auf „Abspielen“ klicken. Wenn ich jetzt springen würde, kannst du sehen, dass der Block aufgedeckt wurde und ich jetzt wie gewohnt mit ihm kollidieren kann Das ist alles schön und gut, wenn ich wieder versuche, die Unterseite zu treffen, keine Münzen mehr, das ist gut Versuchen wir nun, das von der Seite anzugehen. Also werde ich das auswählen, ich werde versuchen, es von einem Seitenwinkel aus anzugehen , irgendwo hier in der Nähe. Sie können sehen, dass wir es einfach durchqueren , als ob nichts da wäre. Wenn ich es jedoch von unten angreife, können wir damit interagieren. Da haben wir es, Leute. Wir haben einen unsichtbaren Münzblock , der für diesen absterben wird. Wir sehen uns im nächsten. 39. Münzbox blockieren: In diesem Video werden wir eine Münzbox erstellen. Und wenn du dir nicht sicher bist, was das ist, es wird ein Block sein, aussieht wie ein normaler zerbrechlicher Block, aber genau da ist er, er wird Münzen enthalten. Und irgendwann wird es zu einem Timeout kommen und einfach so zu einem festen Block Darauf haben wir uns eingelassen. Um hier anzufangen, werden wir in unseren Ordner Blueprints-Blöcke kommen Ich klicke mit der rechten Maustaste auf unsere BP-Blockmünze. Wir werden das sofort duplizieren. Und ich werde dieses Asset BP Block Coin Box nennen. Und wenn das markiert ist, können wir einfach die Leertaste drücken oder darauf doppelklicken, um es mit hervorgehobenem Inhalt zu öffnen . Ich mache gerne die Leertaste , um es sofort zu öffnen. Ich werde das Material, das mit unserem Würfel verbunden ist, austauschen Material, das mit unserem Würfel verbunden Wenn ich unser Viewport, unseren Würfel, auswähle, möchte ich, dass er so aussieht, als wäre er ein zerbrechlicher Block drüben im Detailbereich Ich gehe jetzt zu Materialien und ändere es dort in Blockmaterial mit Unterstrich, das zerbrechlich Und dann werde ich auch im Bereich „Mein Blueprint“ ein paar Variablen hinzufügen im Bereich „Mein Blueprint“ ein paar Variablen Die erste Variable, die wir erstellen werden, heißt Timer-Betrag Dies wird bestimmen, wie viel Zeit wir haben, um so viele Münzen wie möglich zu sammeln viele Münzen wie möglich bevor daraus ein fester Block wird. Ich werde den Typ hier in einen Float ändern. Und ich werde auch hier auf dieses kleine Augapfelsymbol klicken hier auf dieses kleine Augapfelsymbol , um diese Instanz editierbar zu machen Beachten Sie also, dass, wenn wir auf diesen Augapfel klicken, auch dieses Kästchen aktiviert wird. Das sind also dieselben, wenn Sie dieses Kästchen ankreuzen , wird dieser Augapfel aktiviert Wenn Sie auf diesen Augapfel klicken, wird dieses Kästchen aktiviert. Als Nächstes erstelle ich eine weitere Variable. Diese wird aufgerufen, wenn der Timer abgelaufen ist. Fragezeichen. Das wird eine boolesche Variable sein Lassen Sie uns das sofort kompilieren, damit wir einige Standardwerte festlegen können . Ist Tim er abgelaufen. Ich werde das für Zeit oder Betrag als falsch belassen. Ich werde das auf einen Wert von 5,0 setzen, um loszulegen. Als Nächstes springen wir zum Ereignisdiagramm über. Und wir werden unser Skript hier ein wenig modifizieren. Was ich tun möchte, ist, dass ich in diesem Abschnitt des Drehbuchs, der dann Null ist, diesem Abschnitt des Drehbuchs, der dann Null ist, diesen Draht genau hier durchtrennen werde , wo wir das Material verlegen Ich werde die Alt-Taste gedrückt halten und mit der linken Maustaste klicken. Und ich werde das in den Vordergrund unseres Drehbuchs rücken . Wir werden hier ein Skript an der Vorderseite hinzufügen . Wenn Sie etwas Abstand zwischen diesem Sequenzknoten und unserem Ereignis schaffen möchten , klicken Sie auf Blockieren. Ich werde das irgendwo hier unten platzieren , mehr dazu gleich. Dann werde ich unsere Verbindung lösen und die Interaktion hier ganz unten beenden Also werde ich die Alt-Taste gedrückt halten und mit der linken Maustaste klicken. Haken Sie das Dann werde ich all diese Kabel ein bisschen nach unten verschieben weil ich ein neues Drehbuch haben will, dann Null Also werde ich die Kontrolle gedrückt halten und ich werde einfach das hier notieren, unsere Zusatzpunkte. Ich werde diesen Draht tatsächlich abschneiden, indem ich die Alt-Taste gedrückt halte und mit der linken Maustaste darauf klicke Nun, eigentlich werde ich die Position von all dem nicht ändern Ich hätte das einfach nach unten verschieben sollen. Ich werde einfach die Steuertaste gedrückt halten. Ich gehe runter oder füge Münzen hinzu. Ich werde das so einstecken, obwohl es Auswirkungen hat, werde ich es herunterschalten. Strg gedrückt halten und mit der linken Maustaste klicken. Das werden wir auch runterschieben. Jetzt weiß ich, dass alle meine Zahlen hier ein bisschen falsch sind. Ich kann diese zu gegebener Zeit anpassen. Vielleicht mache ich das am Ende des Videos. Aber ich werde das alles vorerst einfach runterschalten , weil ich auf dem dann Null-Pin aufbauen will. Wir wollen im Grunde genommen einen Timer von unserem Null-Pin ausschalten weil wir nur für eine bestimmte Zeit mit diesem Block interagieren dürfen wollen . Also, was wir hier tun werden, ist einen Once-Node einzufügen, die Taste gedrückt zu halten und mit der linken Maustaste zu klicken, das bringt Sie in einen Once-Node. Und was ich dann daraus machen möchte, ist, dass ich den Timer für jedes Ereignis in die Länge ziehen und eintippen werde , der Typ hier. Und ich werde einen benutzerdefinierten Event-Knoten hinzufügen. Klicken Sie also mit der rechten Maustaste auf Ereignis, ich nenne diesen Timer abgelaufen. Also, was ich tun möchte, ist das in unsere benutzerdefinierten Ereignisse einzubinden. Wir können es von unserer eingestellten Zeit zurückziehen oder nach Ereignis hier einfügen. Unsere Zeit wird von dieser Zeit oder diesem Betrag bestimmt Ich kann das hier draufziehen und ablegen. Also, wenn unser Timer abgelaufen ist, möchte ich einstellen, dass unser Timer abgelaufen ist. Wir können das hineinziehen und sagen, stellen Sie es ein. Ich möchte überprüfen, ob das wahr ist. Was im Grunde passieren wird, ist das erste Mal, dass wir mit diesem Block interagieren, wir werden hier einmal durch kommen. Wir werden einen Timer einstellen. Nach Ablauf dieser Zeit 5 Sekunden oder was auch immer wir dafür eingestellt haben, abgelaufen. Es wird diese Kundenveranstaltung auslösen. Und das wird unser abgelaufenes Hes-Timer-Edelmetall in Wahrheit widerlegen Lassen Sie uns mit der linken Maustaste klicken und ziehen und auf die Taste C tippen. Dies wird unser neues Null-Pin-Skript sein, das Blockinteraktionszeit festlegt. Und das werde ich auch schwarz färben. Und jetzt, nur aus Zeitgründen, werde ich nicht all diese Zahlen hier anpassen. Das ist nur optional , nur um anzuzeigen, dass das von den dann einen oder dann zwei Pins usw. kommt . Ich werde jedoch weiter nach unten scrollen und meinen fertigen interaktiven Setter hier unten finden meinen fertigen interaktiven Setter hier unten Ich werde das auch in den Vordergrund unseres Skripts rücken , weil wir unseren Fokus auf den ersten Teil dieses Skripts verlagern werden den ersten Teil dieses Skripts Wie Sie sich erinnern, versuchen wir ganz am Anfang, wenn wir auf diesen Block stoßen, herauszufinden, ob wir mit der Interaktion fertig sind, was dieser Goldbarren hier unten zur Realität macht Standardmäßig ist das falsch. Also interagieren wir einfach mit unserem Block. Wir wollen auf diesem falschen Zweig aufbauen. Also werde ich dieses Kabel unterbrechen, indem die Alt-Taste und die linke Taste gedrückt halte. Und ich werde unsere abgelaufenen Goldbarren mit Haz Timer reinbringen. Also werde ich die Strg-Taste gedrückt halten und mit der linken Maustaste klicken. Und wenn wir die Strg-Taste gedrückt halten und mit der linken Maustaste klicken und es hineinziehen , wird ein Setter angezeigt Ich ziehe das dann raus und füge einen Verzweigungsknoten hinzu Wir werden so arbeiten. Standardmäßig wird das falsch sein. wir also das erste Mal auf diesen Block stoßen, werden wir sagen, hey, wir sind noch nicht fertig mit der Interaktion. Finden wir heraus, ob der Timer abgelaufen ist. Davon werden wir einmal die Taste gedrückt halten und mit der linken Maustaste klicken. Wir werden einmal etwas tun, wenn es wahr ist. Wenn es falsch ist, dass der Timer nicht abgelaufen ist, stecke ich das bis zum Ende in unseren Sequenzknoten und füge sofort ein paar Umleitungsknoten hinzu. Doppelklicken Sie auf das Kabel. Wir werden einige Umleitungsknoten einbauen. Nun, falls es wahr ist, nachdem wir diesen Block zum ersten Mal getroffen haben und dieser Timer abgelaufen ist, wodurch dieser Goldbarren Wenn das stimmt, wollen wir, dass einmal etwas passiert. Nun, was wollen wir, dass passiert? Nun, wir wollen eigentlich, dass hier ein paar Dinge passieren. Ich rufe den Sequenzknoten auf, halte die S-Taste gedrückt und klicke mit der linken Maustaste. Das Erste , was wir tun werden, ist unser Material hier abzulegen. Wir möchten, dass unser Material so aussieht, als wäre es jetzt benutzt worden. Unser Würfel hier ist das, wofür wir das Material einstellen. Das Interact-Material, das wir auf diesen gebrauchten Block setzen wollen, so wie wir es getan haben. Das ist das Erste, was wir tun werden. Und dann werden wir das auch so einstellen , dass die Interaktion gleich danach beendet Nachdem wir das Material geändert haben, werden wir sagen, hey, wir haben die Interaktion hier beendet, wir sind fertig. Also mach weiter und ändere diese Variable jetzt auf true. unser Charakter das nächste Mal versucht, damit zu interagieren, wird er einfach diesen Bank Brick Bump spielen. Okay. Das erste, was wir tun wollen, das zweite, was wir tun wollen, ist einfach mit unserer Sequenz fortzufahren. Tatsächlich geschieht das hier nicht nur im Interesse der Organisation. Ich nehme unseren damaligen Nullpol und stecke ihn hier ein. Den kann ich hier unten so einstecken. Und wir werden einfach versuchen, das aufzuräumen, damit unser überarbeitetes Drehbuch so aussieht, als ob wir zum ersten Mal auf unseren Block stoßen, werden wir herausfinden, ob wir mit der Interaktion fertig Standardmäßig wird das falsch sein. Dann werden wir in unsere Filiale kommen und herausfinden, hey, ist der Timer abgelaufen? Standardmäßig ist es falsch, was bedeutet, dass wir nur unser erstes Mal damit interagieren werden. Bei unserer ersten Interaktion werden wir einmal diesen Timer einstellen. Die Uhr tickt also, in diesem Fall 5 Sekunden. Wir werden dann all diese Sachen sofort machen, nachdem dieser Timer eingestellt ist Also all diese Dinge werden sofort folgen. Dann, nach 5 Sekunden, wird das wahr. Wenn wir also versuchen, den Block nach Ablauf der Zeit zu treffen , wenn es wahr ist, werden wir, sobald wir unser Material auf diesen gebrauchten Block gesetzt haben, im Grunde eine weitere Beule, eine weitere Interaktion zulassen , und dann werden wir auf wahr drehen, sodass es so ist, dass wir beim nächsten Versuch, ihn zu treffen, einfach darauf stoßen und diesen sodass es so ist, dass wir beim nächsten Versuch, ihn zu treffen das auf wahr drehen, sodass es so ist, dass wir beim nächsten Versuch, ihn zu treffen, einfach darauf stoßen und diesen Sound abspielen. Lassen Sie uns weitermachen und das kompilieren. Lass uns das in unser Level ziehen und sehen, ob das funktioniert. Und dann werde ich dieses Drehbuch für Sie alle vor der Kamera einrahmen , damit Sie es bei Bedarf überarbeiten können Hier wird unsere Münzbox sein. Jetzt wirst du es merken, lass mich einfach zwei davon reinbringen. Ich mache die Alt-Taste und ziehe eine Sekunde. Also beide sind Münzboxen drüben im Detailbereich. Ich kann anpassen, lange diese Münzbox aktiv bleibt. Also stelle ich die zweite, ganz links hier, auf 10 Sekunden ein. Und ich sage, jedes Mal, wenn ich damit interagiere , werden fünf Münzen statt einer hinzugefügt und statt 100 Punkten für jede Münze werde ich es auf 500 setzen. Also diese erste Münzbox, ziemlich normale Standardparameter. Der zweite wird etwas extremer sein. Lass uns weitermachen und es versuchen. Gut, unsere normale Münzbox wird hier für 5 Sekunden am Leben bleiben , 12 Sekunden. Sie können sehen, dass es sich um eine Münze nach der anderen erhöht , 100 Punkte auf einmal Nach 5 Sekunden kann ich nicht mehr damit interagieren. Dieser wird für 10 Sekunden am Leben bleiben. Los geht's. Jeder von uns ist 500 Punkte wert, und wie Sie sehen können, werden fünf Münzen gleichzeitig hinzugefügt. Nach 10 Sekunden läuft das Timeout ab. Da haben wir es. Wir haben eine hochgradig anpassbare Münzbox. Lassen Sie uns das einfach noch einmal auf den Bildschirm bringen , damit Sie das Video hier bei Bedarf anhalten können. Das ist der erste Teil des Skripts. Dann, wenn wir hier von unserem Sequenzknoten kommen, haben wir unseren neuen Null-Pin. Stellen Sie sicher, dass Sie das Kästchen genau hier angekreuzt haben. Zeitbetrag ist auf einen Standardwert eingestellt und all dies wird der Rest sein, wie er zuvor war. In Ordnung Leute, das wird alles für diesen machen. Wir sehen uns im nächsten. 40. Blockiere die Feuerblume #1: Im Laufe der nächsten Videos hier werden wir daran arbeiten , unserem Charakter Flower Power zu verleihen. Aber wir müssen damit beginnen, einen Block zu erstellen , der, wenn er mit ihm interagiert, tatsächlich eine Feuerblume hervorbringt Darauf werden wir uns im Laufe der nächsten beiden Videos konzentrieren Laufe der nächsten beiden Videos Und dann werden wir uns darauf konzentrieren , unseren Spielern zuerst einige Feuerbälle zu geben , mit denen sie einen Block abschießen können, dann die Fähigkeit, tatsächlich Feuerbälle abzuschießen Lassen Sie uns gleich wieder hier in unserem Inhaltsbrowser damit beginnen. Wir werden erneut eine Abkürzung wählen, indem wir ein Duplikat unserer B-Block-Q-Münze erstellen. Sie können mit der rechten Maustaste darauf klicken, um es zu duplizieren, oder Strg+D dupliziert es ebenfalls. Beide Methoden reichen völlig aus. Ich nenne das BP Block Fire Flower. Dann doppelklicken wir wie gewohnt darauf, um es zu öffnen. Wir werden damit beginnen, hier ein paar Komponenten hinzuzufügen . Lassen Sie mich zu meinem Viewport-Tab wechseln. Und ich möchte sicherstellen , dass diese Komponenten an unserem Würfel hier, unserem Block, befestigt sind an unserem Würfel hier, unserem Block, befestigt Wählen wir hier zuerst unseren Würfel aus. Der erste, den ich hinzufügen werde, wird ein Box Collider sein Und das wird genau hier zu finden sein, eine Box-Kollision. Also mach weiter und wähle das aus. Ich nenne diese Box Underscore Flower. Und wenn das ausgewählt ist, legen wir gleich die Größe des Felds fest , damit ich einen Wert im Kopf habe Es wird 40 mal 40 mal 40 sein. Ich werde dort die Eingabetaste drücken. Ich werde auch die Linienstärke festlegen. Ich werde das auf fünf setzen, nur damit es etwas auffälliger und leichter zu erkennen ist. Jetzt sehen wir noch nichts, weil das in unserem Würfel vergraben ist . Aber die Idee hier ist, dass, wenn wir auf die Unterseite dieses Würfels treffen, dieser sich tatsächlich so nach oben bewegt Jetzt möchte ich dieser Komponente ein statisches Netz hinzufügen Stellen Sie also sicher, dass Sie Ihr Kartonmehl hier ausgewählt haben. Lassen Sie uns eine statische Mesh-Komponente hinzufügen. Diese können wir einfach Underscore Flour nennen. Und wenn dieses ausgewählt ist, wird unser statisches Netz eine Ebene sein Wir werden einfach eine 2-D-Karte verwenden. Wählen wir diese Ebene hier unten für das Material aus, das wir tatsächlich benötigen, um dieses Material hier in unserem Inhaltsbrowser zu erstellen . Gehen wir zurück zu unserem Texturen-Ordner. Ich habe hier einen für unsere vier, da ist er, unterstreicht Fire Flour Wenn wir mit der rechten Maustaste darauf klicken, können wir es in ein Material umwandeln Lassen Sie uns weitermachen und diesen Namen hinterlassen. Also werde ich einfach die Eingabetaste drücken. Und dann verschiebe ich das in meinen Materialordner, indem ich es per Drag & Drop hierher ziehe. Wir sagen, verschiebe es hierher. Dann gehen wir in unseren Materialordner. Ich werde sofort darauf doppelklicken , um es zu öffnen, da ich hier einige Änderungen vornehmen möchte. Ich möchte den Mischmodus von undurchsichtig auf durchscheinend ändern von undurchsichtig auf durchscheinend Dadurch wird uns dieser Opazitäts-Pin zur Verfügung stehen Und wir werden diesen Wert nehmen und ihn mit der Opazität verknüpfen wollen Wert nehmen und ihn mit der Opazität verknüpfen Und lassen Sie mich das stattdessen einfach auf eine Kugel legen Ich werde es, sagen wir, auf eine Kiste wie diese legen. Jetzt können wir sehen, wie es dem Spieler im Spiel tatsächlich erscheinen wird. Wir werden das nur in ein Flugzeug projizieren, also wird es so aussehen. Das wird ziemlich gut werden. Was wir hier auch tun können. Ich werde unseren Master-Materialknoten auswählen. Wir können auch das zweiseitige Kontrollkästchen aktivieren. Das sollten wir nicht brauchen , weil es nur in eine Richtung zeigen wird. Aber dadurch wird es für uns leicht sein, es zu sehen, egal in welche Richtung der Spieler schaut. Lass uns weitermachen und hier speichern. Dann können wir weitermachen und das wieder schließen. Und dann lasst uns wieder in unseren BP-Block eintauchen. Feuerblume mit unserer ausgewählten Netzblume. Wir werden das in ein Flugzeug bringen. Gehen wir zu unseren Materialien und wenn ich Feuermehl so eintippe, ist da unsere Feuerblume. Jetzt möchte ich auch sichergehen, dass diese Karte, die hier auftauchen wird , unserem Spieler zugewandt ist Jetzt, nur um dir zu zeigen, wovon ich spreche, werde ich mein Schachtelmehl auswählen Sobald wir die Unterseite erreicht haben, wird es wieder so hochgehen. Beachten Sie jedoch, dass unser Netz nicht dem Spieler zugewandt ist , der das ausgewählt hat. Ich werde zur Sache mit den Rotationseinstellungen übergehen. Und ich werde meine X-Rotation auf 90 setzen , sodass sie dem Spieler zugewandt ist sodass Sie sehen können, wie das funktionieren wird , wenn wir mit diesem Block interagieren , der einfach so nach oben geht. Und wir werden diese Kiste verwenden , um zu erkennen, wann sich unser Charakter überschneidet, sodass wir das Mehl einsammeln können Nun, noch eine Sache, die ich hier mit unserem Maschenmehl machen muss hier mit unserem Maschenmehl Geh zurück und wähle das aus. Wir haben die Rotation auf 90 gesetzt. Wir haben das Material eingestellt. Wir müssen noch eine Sache erledigen. Wir müssen hier die Kollisions-Voreinstellung so einstellen , dass keine Kollision stattfindet. Wir wollen nicht, dass etwas damit kollidiert, keine Kollision. Auch hier werden wir einfach dieses Kistenmehl verwenden, um zu überprüfen, ob wir das Mehl überlappt haben, und es so einsammeln Ordnung, wenn das alles erledigt ist, gehen wir zu unserem Event-Graph und modifizieren unser Skript hier ein wenig davon werden wir behalten, einiges davon werden wir jetzt loswerden, wir werden hier keine Münzen hinzufügen. Also können wir diesen Teil des Skripts einfach loswerden. Linksklick und Ziehen, und wir können das löschen einige Punkte hinzufügen. Wir werden das etwas später machen , nicht in diesem Teil des Skripts. Also werde ich diesen Draht einfach abschneiden , indem ich die Alt-Taste gedrückt halte und mit der linken Maustaste klicke Und ich werde das für unser Spiel X vorerst zur Seite ziehen . Das Einzige, was ich daran ändern möchte, ist unser Interact-Soundeffekt Derzeit ist es auf Münze eingestellt, ich setze das auf Gegenstand und dann gehe ich weiter nach unten und sehe welche Änderungen wir mit unserem Block Anum vornehmen können Okay, für den Anfang wird das alles gut sein, wird das alles gut sein außer dass ich ein bisschen Drehbuch hinzufügen möchte Nachdem wir diese Blockanimation beendet haben, möchte ich einen kleinen Effekt mit leuchtenden Partikeln hinzufügen Also werde ich einen Verweis auf unsere Netzblume einfügen, den ich per Drag-and-Drop hineinziehen Wir ziehen das in die Länge und sagen „Ermitteln Sie Standort der Welt“ so. Und wir werden das an einen Spawn-Emitter am Standort anschließen einen Spawn-Emitter am Spawn-Emitter am Standort. Auch hier wird das ältere Partikelsystem verwendet ältere Partikelsystem Spawn-System am Standort würde einen Niagara-Partikeleffekt nutzen Der Grund, warum ich mich dafür entscheiden werde, ist, dass ich einen bestimmten Partikeleffekt im Sinn habe einen bestimmten Partikeleffekt im Und wenn ich hier klicke, kommt das aus unserem Infinity Blade-Paket. Das wird Dead Man's, Dead Man's Lute unterstreichen Dead Man's, Dead Man's Lute Das werde ich von unserem Ziel hier aus so spielen. Und dann werde ich das auch zu einer Variablen hochstufen, sodass es diesen Emitter erzeugt Ich werde mit der rechten Maustaste auf diesen Rückgabewert klicken. Und wir werden daraus eine Variable machen , weil wir sie später zerstören wollen, sobald wir die Feuerblume gesammelt haben. Sobald ich also mit der rechten Maustaste auf eine Variable geklickt habe , kann ich ihr einen Namen geben Ich nenne das mein Power-Up-Glow. Das klingt nach einem schönen Namen. Und noch einmal, wir werden das verwenden, um es später zu zerstören. Das wird alles für unsere Blockanimation sein, unser Block bewegt sich in die Luft. Ich werde einfach die Strg-Taste gedrückt halten und mit der linken Maustaste klicken. Und ich werde das auf unsere damals eine Stecknadel verschieben. Ich werde das sogar als solches umbenennen. Jetzt muss ich an unserer Blumenanimation arbeiten. Also das ist der Block, der quasi in die Luft gestoßen wird Aber was ist mit der Blume, die tatsächlich aus dem Block auftaucht Im Moment ist sie im Block vergraben. Wir brauchen etwas, um das daraus zu machen. Dieser nächste Teil unseres Ereignisdiagramms wird unterhalb unseres Blocks erstellt. Animation wie. Also klicke ich einfach mit der rechten Maustaste in eine leere Stelle und füge eine Zeitleiste ein. Wir werden eine Zeitleiste hinzufügen. Ich nenne das meinen An-Flow. Eine Blume, Anum. Lass mich das mit meinem Scrollrad vergrößern. In diesem Fall werden wir auf diese Zeitleiste doppelklicken. Wir haben unseren neuen Tab hier oben. Wir werden einen Float-Track hinzufügen. auf Plus-Track klicke, ich auf Plus-Track klicke, nenne ich das Bewegung. Und ich werde unserem Track zwei Keyframes hinzufügen. Hier noch einmal ein paar Möglichkeiten, wie Sie sie hinzufügen können. Sie können sie hinzufügen, indem Sie die Umschalttaste und die Umschalttaste gedrückt halten und mit der linken Maustaste klicken. Sie können auch mit der rechten Maustaste in eine leere Stelle klicken und eine Taste hinzufügen. So oder so, wir machen das für unseren ersten Keyframe, ich wähle ihn stattdessen einfach aus. Eine Zeit von Null und ein Wert von Null. Dann wähle ich für unser zweites Schlüsselbild das aus und stelle die Zeit auf 0,5 ein. Das dauert also eine halbe Sekunde und ich setze den Wert auf 100. Ich kann sie alle einrahmen, indem ich auf die Pfeile Y 100 klicke. Nun, wenn ich zu meinem Viewport gehe und hier meine Netzblume auswähle, sieh dir das Ich werde hier den Standort ändern. 100 unwirkliche Einheiten sind letztendlich das, was wir tun wollen, um das aus dem Block zu Wir werden es um 100 in diese Z-Richtung nach oben bewegen. Okay, stellen wir sicher, dass wir unsere Zeitleistenlänge jetzt auch auf eine halbe Sekunde einstellen auch auf eine halbe Sekunde , damit sie unserem letzten Keyframe entspricht Also setze ich das auf 2,5 und gehe zurück zu unserem Event-Graph, lassen Sie uns das von unserem Sequenzknoten Wir machen es mit unseren dann zwei Pins. Wir werden das spielen. Wir wollen mit unseren vier sprechen. Unser Maschenmehl, unser Maschenmehl. Lass uns das Buchsmehl machen, das wir brauchen , um die Buchsblume nach oben zu bewegen. Das ist erwähnenswert. Wir wollen zwar, dass das Maschenmehl selbst um 100 steigt, aber das wird mit der Zeit kommen. Wenn wir die Buchsblume nach oben bewegen, ist es wichtig, dass wir die Buchsblume bewegen, weil wir irgendwann prüfen werden, ob sich dieser Collider überschneidet Die Buchsblume ist das, was wir eigentlich nach oben bewegen wollen Die Mesh-Mehl-Karte erscheint bei der Rückfahrt in unserer Eventgrafik. Ziehen wir unsere Buchsblume so rein. Wir werden uns das besorgen. Ich klicke mit der rechten Maustaste darauf und rechne das in ein validiertes GET um, was bedeutet, dass wir diese Bewegung nur ausführen, wenn bestätigt wird , dass diese Buchsblume tatsächlich existiert. Wir werden das vernichten, wenn wir es irgendwann hier abholen. Wir sagen im Grunde, es diese Komponente überhaupt? Und was wir tun werden , ist, wenn wir unsere Zeitleiste hier über eine halbe Sekunde aktualisieren, werden wir nur dann etwas tun, wenn diese Buchsblumen-Komponente existiert. Wenn es nicht existiert und es auch nicht mehr existieren wird, nachdem wir es gesammelt haben, werden wir nichts tun. Was wir tun wollen, wenn es existiert. Also ziehen wir das die Länge und sagen: Relative Position festlegen ist relative Position. Jetzt ziehen wir die neue Position rückwärts von hier weg und geben make ein, da ist sie, make vector Wir wollen das nur in Z-Richtung nach oben bewegen. Unsere Bewegung hier, wieder einmal, unsere Zeitlinie spezifiziert , dass sie über eine halbe Sekunde um 100 unwirkliche Einheiten steigen wird Das wird unsere Animation sein Linksklick, Taste ziehen Das ergibt sich aus unserem Two-Pin-Flow. Ähm, wir färben das sofort schwarz. Okay, das sieht alles gut und gut aus. Und zu guter Letzt werden wir hier einfach unseren Finish-Interaktions-Setter aufstellen hier einfach unseren Finish-Interaktions-Setter Wir können diesen dann vierpoligen Anschluss tatsächlich eliminieren. Also werde ich einfach die Steuertaste gedrückt halten und mit der linken Maustaste klicken. Schieben Sie es auf die dann drei Pins. der rechten Maustaste darauf klicke, entferne ich den Ausführungs-Pin. Das wird Teil eins unserer Feuerblume hier sein. Ein bisschen mehr Arbeit liegt vor uns. Irgendwann werden wir Punkte hinzufügen, aber unser endgültiges Drehbuch wird so aussehen. Lassen Sie uns versuchen, das Stück für Stück zusammenzustellen. Es gibt im Wesentlichen den oberen Teil und dann geht es weiter nach unten für die zwei und dann für drei. Das wird unser unterer Teil sein. Lass uns weitermachen und das kompilieren. Wir werden jetzt sparen. Wir müssen das spielen und testen. Nochmals, wir werden die Feuerblume noch nicht einsammeln können , aber wir sollten sehen, wie die Feuerblume aus dem Block herausspringt, sobald wir mit ihr interagieren. Los geht's. Gehen wir zurück zu unseren Blöcken, wir haben unseren Block, Feuerfluss, lassen Sie uns das hier in Position bringen. Reinspringen und spielen. Ordnung, wenn wir mit dem Block interagieren, steigt die Blume auf, wir sehen das leuchtende Partikel. Offensichtlich können wir es noch nicht abholen. Aber wir haben unseren ersten Teil des Drehbuchs fertiggestellt. Job erledigt, Leute. Gehen wir zu Teil Nummer zwei über und beenden das Ganze. Wir sehen uns dort. 41. Blockiere die Feuerblume #2: Willkommen. Im letzten Video haben wir einen Bauplan für Blöcke erstellt , aus dem eine Feuerblume hervorgehen soll , wenn unser Charakter damit interagiert Wir haben jedoch kein Skript die Funktionalität zum Sammeln der Feuerblume eingebaut. Das werden wir also in Teil Nummer zwei tun. Machen Sie weiter und doppelklicken Sie wieder auf Ihre BP-Block-Fire-Blume , um wieder hier einzutauchen. Als erstes möchte ich hier eine neue Komponente hinzufügen. Und das wird einfach ein Punkt im Weltraum sein. Ich habe hier mein Standard-Szenen-Root ausgewählt. Ich werde eine Komponente hinzufügen. Das wird eine Pfeilkomponente sein. Wenn ich zum Aussichtspunkt gehe, ist das einfach dieser rote Pfeil hier drüben. Ich möchte die Position ändern und werde die Z-Position auf 150 setzen Meine einzige Verwendung für diese Komponente, auch hier wird der Benutzer diesen Pfeil nicht sehen, wenn er das Spiel spielt, besteht darin, einen Punkt im Raum an dem ein Punktwert erscheinen soll Okay, bei all dem wählen wir unsere Boxblume aus, das ist diese Box-Collider-Komponente , die darin vergraben ist Ich werde mit der rechten Maustaste darauf klicken. Ich werde ein Ereignis für den Fall hinzufügen unser Charakter anfängt , sich damit zu überschneiden. Das bringt uns zurück zu unserem Ereignisdiagramm. Was wir tun wollen, ist zu überprüfen, ob es unser Charakter ist , der die Überlappung macht Lassen Sie uns noch einmal ein Gleichheitszeichen einsetzen. Ich ziehe es rückwärts raus. Holen Sie sich einen Spielercharakter damit Sie auch auf Ihren Charakter casten können, anstatt diese Art von Konfiguration vorzunehmen Aber ich habe das die ganze Zeit gemacht, entweder wir werden es tun, wir werden so einen Verzweigungsknoten einbauen. Wenn es unser Spielercharakter ist , der die Überlappung macht, werde ich einen Sequenzknoten einbauen weil es ein paar Dinge gibt, die ich gerne tun würde die Taste S gedrückt halte, klicke ich mit der linken Maustaste, um einen Sequenzknoten einzufügen Dann zoome ich wieder zurück. Und ich werde diesen Teil des Skripts genau hierher verschieben, wo ich über unseren Abschnitt zum Hinzufügen von Punkten im Drehbuch gehe. Jetzt möchte ich als Erstes ein paar Punkte für das Sammeln einer Feuerblume hinzufügen. Also werde ich das einfach in die richtige Position bringen. Zoomen Sie ein bisschen nach oben, rahmen Sie das so ein, dass es von unserem Null-Pin Wir fügen einige Punkte die wir klicken, um dort einen kleinen Umleitungsknoten hinzuzufügen Ich muss etwas spezifizieren, ich werde da eine Null eintragen Wo genau ich will, dass das spawnen soll. Nun, ich habe diese Pfeilkomponente aus diesem Grund hinzugefügt. Also werde ich das per Drag & Drop auf unsere Get-Transformation ziehen. Und Sie können sehen, dass das eigentlich nicht funktionieren wird , weil das kein Schauspieler ist. Das muss ich löschen. Lass uns unseren Pfeil hier reinziehen. Und ich werde hier rausziehen und Get World Transform eingeben . Das ist also eine Szenenkomponente im Gegensatz zu einem Schauspieler. Das ist die Stelle, an der ich in unseren Punkten spawnen möchte. Da es sich um eine Feuerblume handelt, kann ich angeben, wie viele Punkte ich dafür haben möchte Statt 100 werde ich dafür sorgen, dass es 1.000 wert ist. Auch hier können Sie das für diese spezielle Variable anpassen. Das soll nun einige Punkte hinzufügen. Das zweite, was ich tun möchte, ist einige Komponenten zu zerstören. Ich bringe meine Buchsblume mit. Lassen Sie uns das per Drag-and-Drop in die Grafik ziehen. Ich ziehe es raus und tippe de eine Komponente ein. Jetzt will ich nicht den ganzen Schauspieler zerstören. Ich will, dass der Block rumhängt. Ich will nicht, dass die ganze Sache verschwindet. Aber es gibt ein paar Komponenten, die ich daraus vernichten möchte. Ich möchte meine Buchsblume zerstören, das ist übrigens die Triggerbox. Ich möchte auch unsere Netzblume zerstören. Ich werde das hier reinziehen und wir können beide in diese Destroy-Komponente einbauen. Und ich möchte auch unser Power-Up-Glow wieder zerstören. Darauf haben wir hier in unserer Blockanimation hingewiesen. Wir haben mit der rechten Maustaste darauf geklickt und das zu einer Variablen hochgestuft. Und das haben wir gemacht, damit wir es dann zerstören können sobald der Charakter die Feuerblume eingesammelt hat, sonst bleibt das Leuchten da draußen hängen Und wieder zerstören wir hier die Buchsblume. Also beim ersten Mal wird das gültig sein und der Spieler wird sehen, wie diese relative Position unserer Buchsblume nach oben aufgeht. Aber beim zweiten Mal, nachdem es eingesammelt wurde, wird es nicht mehr gültig sein, also gibt es nichts, was nach oben verschoben werden könnte. Zerstöre die Buchsblume, die Netzblume und unser Power-Up-Glow, all diese drei. Ich wähle einfach all diese aus und tippe auf die C-Taste. Ich nenne das meine Destroy the Lock-Komponenten. Die Skriptfarbe ist ebenfalls schwarz. Wir haben das alles ziemlich gut auf dem Bildschirm dargestellt. Lass uns weitermachen und das kompilieren und speichern . Jetzt lass uns weitermachen und es in unserem Level testen. Jetzt sollten wir sehen, wenn wir unser Spiel spielen, wir sollten sehen, wie die Blume daraus aufsteigt. Und jetzt sollten wir sie so einsammeln können, dass jetzt noch nichts passiert. Wir gewinnen eigentlich keine Flower-Power, wenn Sie so wollen. Also das kommt nächstes Video. Es muss noch mehr Arbeit getan werden, um unserem Charakter Flowerpower zu verleihen. 42. Fire-Flower-Player-Transformation: In diesem Video ist es unser Ziel, ein Drehbuch zu erstellen, unseren Charakter darüber informiert, dass er eine Feuerblume bekommen hat, damit der Charakter entsprechend reagieren kann Jetzt wird dieses kleine Drehbuch den Spieler verändern, wenn er die Feuerblume einsammelt In diesem Fall gibt es eine Menge Arbeit zu erledigen. Lass uns gleich loslegen und keine Zeit verschwenden. Ich fange hier mit meinem BP, einem Charakterplan für Dritte Person, Charakterplan für Dritte Person Also werde ich es einfach auswählen. Drücken Sie die Leertaste , um es zu öffnen. Und hier drinnen möchte ich anfangen. Gehen wir zuerst zu unserem Viewport. Und wir werden unsere Kapselkomponente auswählen. Das ist hier unser Hauptbestandteil , mit dem andere Dinge verknüpft sind . Dieser Einzug zeigt eine bindende Beziehung. Ich werde das sofort verkleinern. Und ich kann das im Detailbereich einheitlich skalieren , indem ich auf diese kleine Sperrtaste Und dann 0,75 drücken und dann Nor drücken, um unseren Charakter insgesamt zu verkleinern Standardmäßig möchten wir, dass unser Charakter, unser spielbarer Charakter, mit einer kleineren Größe beginnt Jetzt werde ich hier auch die halbe Höhe unserer Kapsel und den Kapselradius so einstellen halbe Höhe unserer Kapsel und den Kapselradius , dass sie etwas anders sind Ich werde die halbe Höhe unserer Kapsel auf 96 einstellen. Und wir werden unseren Kapselradius hier auf 34 einstellen , also etwas dünner, etwas größer, nur um dort ein bisschen mehr Verzeihung zu bieten Ordnung, als Nächstes gehen wir in unser Ereignisdiagramm und erstellen ein benutzerdefiniertes Also schwenken Sie mit der rechten Maustaste darüber. Ich klicke mit der rechten Maustaste, gebe benutzerdefinierte Ereignisse ein und füge ein benutzerdefiniertes Ereignis hinzu. Ich werde das Got Flower Power nennen. Auch hier müssen benutzerdefinierte Ereignisse manuell aufgerufen werden, also müssen wir das irgendwann aufrufen. Aber jetzt haben wir das schon eingerichtet. Also das ist alles schön und gut. Als Nächstes werden wir zwei Variablen erstellen. Klicken Sie im Bereich „Mein Blueprint“ auf die Plus-Schaltfläche. Der erste wird Player Scale Small heißen. Das wird ein Vektor sein. Dann füge ich einen weiteren hinzu, der heißt Has Fire Flower, und das wird ein boolescher Wert sein Ordnung, wenn ich diese kompiliere, möchte ich, In Ordnung, wenn ich diese kompiliere, möchte ich, dass das Feuerblumenbarren hat , was standardmäßig falsch sein wird , unser Spieler skaliert klein, ich möchte, dass das auf der ganzen Linie eins Okay, als Nächstes möchte ich eine Kategorie erstellen, in der diese leben Drüben im Kategorienbereich des Detailfensters können wir eine Kategorie erstellen. Deshalb nenne ich das meine Kategorie „Spielergesundheit“. Player Health drückt die Eingabetaste. Jetzt könnt ihr also sehen, dass wir im Bereich Mein Blueprint eine Kategorie namens Spielergesundheit hinzugefügt haben im Bereich Mein Blueprint eine Kategorie namens Spielergesundheit Bereich Mein Blueprint und Player Scale Small ist da drin Ich werde auch seine Feuerblume da reinstellen. Bei dieser ausgewählten Kategorie wird es um Spielergesundheit gehen. Ordnung, als Nächstes möchte ich eine Zeitlinie erstellen , die das Wachstum unseres Charakters steuert , wenn er die Feuerblume einsammelt. Es wird diese Art von sehr schnellem Schrumpfen und Wachsen sein, eine Art Effekt Also klicke ich mit der rechten Maustaste in eine leere Stelle Zeitleiste Und ich werde das unsere Wachstumszeitlinie nennen. Und dies wird wahrscheinlich der schwierigste Zeitplan sein , den wir in diesem Kurs zusammengestellt Ich werde darauf doppelklicken, um es zu öffnen. Wir werden einen Float-Track hinzufügen. Spur. Float Track, und ich nenne das unseren Wachstumsmultiplikator Jetzt setze ich die Länge auf 0,8 Sekunden. Dann werde ich die Schlüssel alle 0,05 Sekunden einstellen. Ich werde versuchen, dies auf relativ organisierte Weise zu tun , und dann werden wir im Laufe der Zeit die Schlüssel und Werte dafür festlegen . Ich werde einfach die Strg-Taste gedrückt halten und scrollen. Gut gemacht, nur um unseren Zeitplan hier ein bisschen zu erweitern . Also unser erster Schlüssel, Rechtsklick, wir werden einen Schlüssel hinzufügen. Dieser erste Schlüssel wird auf eine Zeit von Null und einen Wert von 0,9 gesetzt . Kann sie so reinbringen. Unseren nächsten werde ich hier unten platzieren Klicken Sie mit der rechten Maustaste auf Schlüssel hinzufügen. Dies wird eine Zeit von 0,05 und ein Wert von 0,65 sein. Auch dies wird ein Skalenmultiplikator sein Möglicherweise müssen Sie auf diese Pfeile klicken, um sie ständig anzuzeigen und ein- und auszublättern Bei unserem nächsten Mal werde ich auf Schlüssel hinzufügen klicken. Dieser wird 0,1 Sekunden dauern. Der Wert wird 0,9 sein. Beim nächsten Klick mit der rechten Maustaste klicken, Taste hinzufügen, 0,15 und der Wert wird 0,65 sein , sodass Sie diesen Seesägeeffekt sehen können Als Nächstes klicke ich hier mit der rechten Maustaste. Wir werden einen Schlüssel hinzufügen. Das sind 0,2 Sekunden und ein Wert von 0,9. Dann noch einmal, hier unten, rechten Maustaste klicken, einen Schlüssel hinzufügen, 0,25 und einen Wert von 0,65 Okay, jetzt werden wir es ein wenig erhöhen Wir werden ein niedrigeres Wachstum, ein mittleres Wachstum und ein hohes Wachstum haben mittleres Wachstum und ein hohes Wachstum Beim nächsten Mal werde ich genau hier klicken , mit der rechten Schlüssel hinzufügen klicken. Es wird eine Zeit von 0,3 und ein Wert von 1,1 sein . Als Nächstes werde ich genau hier klicken, mit der rechten Maustaste klicken. Es wird 0,35 für die Zeit sein und der Wert wird 0,65 sein Diese unteren Teile unseres Sägeblattes hier werden im Wesentlichen 0,65 sein Scrollen Sie ein wenig zurück, ich werde genau hier klicken, Taste hinzufügen Dieser Wert wird 0,4 Sekunden lang sein. 1,1 Klicken Sie mit der rechten Maustaste auf Taste hinzufügen, 1,1 Klicken Sie mit der rechten Maustaste auf Taste hinzufügen, 0,45 und 0,65 für den Wert. Klicken Sie mit der rechten Maustaste. Fügen Sie einen weiteren Schlüssel hinzu. Das werden 0,5 Sekunden sein und 1,1. Wir werden einen weiteren hinzufügen, genau hier. Rechtsklick, 0,55 ist die Zeit, 0,65 ist der Wert Dann haben wir hier noch ein paar mehr vor uns. rechten Maustaste klicken. Ich schiebe das um. Ich werde hier mit der rechten Maustaste klicken . Wir werden einen Schlüssel hinzufügen. Dieser Wert liegt bei 0,6 Sekunden, der Wert wird 1,3 sein . Wir klicken auf Schlüssel hinzufügen, 0,650 0,65 Rechtsklick Schlüssel hinzufügen, 0,7 und 1,3 Klicken Sie mit der rechten Maustaste auf Schlüssel hinzufügen Das sind 0,75 und 0,65 Dann zumindest sind wir fast da, Leute, füge diese Taste hinzu, wird 0,8 und ein Wert von 1,3 sein . Also werde ich all diese Scrollen, Scrollen, Zurückrollen, Linksklicken und Ziehen hervorheben . Alle meine Punkte hier sind hervorgehoben und wir können sie so einrahmen Jetzt hast du ein Wippenmuster, das so aussieht. Also haben all diese unteren Keyframes einen Wert von 0,65. Ich habe alle 0,5 Sekunden Sie können die Uhrzeit beobachten. Du siehst quasi das Muster hier, also alles klar, ich glaube, du hast es von da. Ordnung, also raus von hier und zurück zu unserer Eventgrafik. Also haben wir unsere Got Flower Power. Was ich tun möchte, ist, nachdem wir das anrufen, und wir werden uns später darum kümmern, ist, dass ich unsere Hausfeuerblume anzünden will. Also werde ich unsere rote Feuerblume reinziehen. Ich werde es einstellen und wir werden sagen, ja, wir haben jetzt die Feuerblume, also werden wir das wahr machen. Lass uns weitermachen und gleich nach dem Abspielen von Sound zwei D einen Sound abspielen, und unser Sound hier wird unser Power-Up Sound Power Up sein. Dann wollen wir die Trefferpunkte anpassen, denn wenn wir die Feuerblume haben, wir im Grunde einen Trefferpunkt hinzu. Wenn ich also einfach mit der rechten Maustaste klicke und Trefferpunkte anpassen eintippe und falls du vergessen hast, wo das hier ins Spiel kommt, lass mich das ein bisschen rauszoomen. Wir werden das verkabeln. Wir werden in einer Sekunde darauf zurückkommen. Ich werde darauf doppelklicken. Das bringt uns dazu, dieses benutzerdefinierte Ereignis auszurufen, diese Änderung unserer Trefferpunkte. Dieser ganze Teil des Skripts , den wir zu Beginn des Kurses gemacht haben. Lassen Sie uns das hier aufrufen, um unsere Trefferpunkte zu ändern. Jetzt muss ich zu dem Feuerblumen-Skript zurückkehren , an dem wir gerade arbeiten, denn wenn wir die Feuerblume bekommen, wollen wir unsere Trefferpunkte genau hier um eins erhöhen. Trefferpunkte-Modifikator, fügen wir eine Eins hinzu, sodass der Wert von Eins hier in diese Gleichung übernommen wird hier in diese Gleichung Okay, danach passen wir die Hüftpunkte an, wenn wir unsere Feuerblume bekommen Hier werden wir unseren Zeitplan einbauen. Lassen Sie uns von Anfang an spielen, um sicherzustellen, dass wir immer von vorne beginnen. Beachten Sie, dass wir diesen Wachstumsmultiplikator haben. Wir werden ihn verwenden, um mit unserer Spielerskala zu multiplizieren . Also werde ich die Strg-Taste gedrückt halten, linken Maustaste klicken und ziehen. Das ist hier pauschal ein Wert von eins , also werden wir ihn verwenden, um mit unserem Wachstumsmultiplikator zu multiplizieren Ich klicke mit der rechten Maustaste in ein leeres Feld und tippe die Multiplikationstaste ein, um einen Multiplikationsoperator einzufügen , und wir werden unseren Wachstumsmultiplikator multiplizieren Was nach unten und oben und unten und hoch und runter und hoch oszilliert und oben und unten und hoch und runter und hoch Die Werte dafür ändern sich im Laufe der Zeit immer wieder schnell. Wir werden das hier auf der ganzen Linie mit Eins multiplizieren . Jetzt werden wir das verwenden, um um unser Mesh zu vergrößern. Ich spreche hier von diesem echten Drei-D-Mannequin-Mesh diesem echten Drei-D-Mannequin-Mesh Gehen wir zurück zu unserem Event-Graph und ich füge einen Verweis auf unser Mesh hinzu Wir ziehen das in die Länge und geben Set Relative Scale Three D ein. Da unsere Zeitleiste hier aktualisiert wird, werden wir die Skalierung unseres Meshs mit ein bisschen Mathematik hier ändern die Skalierung unseres Meshs . Das könnte die Frage aufwerfen, warum skalieren wir unser Mesh und nicht unsere Kapselkomponente? Denn wenn wir unsere Kapselkomponente skalieren würden, würde sich alles andere von selbst ergeben. Warum machen wir es nicht einfach so? Nun, der Grund dafür ist, dass, wenn wir das skalieren, statt unseres Netzes, unser Federarm und unsere Kamera, die wir hier aufstellen , komische Dinge bewirken werden. Also werden wir diesen Ansatz wählen und dann die Größe unserer Kapselkomponente manuell ändern. Also das wird gleich hier her kommen. Und tatsächlich werden wir uns direkt nach dem fertigen Pin unserer Timeline darum kümmern . Hier werde ich von unserer Richtung abschweifen. Das kann uns die Richtung unseres Zeitplans geben , den wir von hier wegziehen müssen. Und ich gebe Schalter auf Timeline-Richtung ein. Jetzt haben wir eine Vorwärts - und Rückwärtsrichtung , die unsere Timeline über diesen Finish-Pin hier einspielen kann , also wollen wir einen Verweis auf unsere Kapselkomponente einfügen Ziehen Sie das nun hinein, was wir tun wollen, ist es wegziehen und die halbe Höhe der Kapsel einstellen eingeben halbe Höhe der Kapsel einstellen Und dann ziehe ich das auch weg und tippe Set Capsule Radius ein. Wenn wir mit dem Abspielen unserer Timeline in Vorwärtsrichtung fertig sind, wollen wir unsere Kapselhöhe festlegen, weil unser Mesh im Grunde genommen größer sein wird. Außerdem müssen wir die Größe unserer Kapsel die unseren Charakter umgibt, anpassen. Wir werden die halbe Höhe unserer Kapsel auf 120 einstellen. Hoppla, 120. Wir werden unseren Radius hier auf 40 festlegen Stellen Sie sicher, dass Sie das so verkabeln. Das heißt, wir spielen es vorwärts und im Grunde sind wir gewachsen. Etwas anderes, was ich hier tun möchte, ist, dass ich einen weiteren Hinweis auf unser Netz einbringen möchte. Zieh das so rein. Wir ziehen das weg und geben die festgelegte Position ein. Wir werden auch die Position unseres Netzes manuell anpassen die Position unseres Netzes damit es gut in diese verkleinerte Kapselkomponente passt diese verkleinerte Kapselkomponente Also habe ich all diese Werte anhand einiger Versuchserzählungen herausgefunden , um uns etwas Zeit zu sparen Und ich werde unseren neuen Standort hier auf minus 90 setzen hier auf minus 90 Okay, das wird also außerhalb der Zeitlinie liegen. Richtung vorwärts. Okay. Nun, wenn wir diese Zeitlinie rückwärts abspielen, also dass wir getroffen wurden, wollen wir diese Effekte im Grunde rückgängig machen Ich werde also die Strg-Taste gedrückt halten und sicherstellen , dass ich diese Knoten genau hier auswähle, 1,234.5 Lassen Sie mich sie noch einmal hervorheben Ich werde Strg D drücken, um sie alle zu duplizieren. Und ich werde einen weiteren Satz von ihnen aus dieser umgekehrten Richtung entfernen Wenn wir diese Timeline im Grunde rückwärts abspielen, also wir getroffen wurden, möchte ich unsere Kapselkomponente wieder auf ihre normale Größe zurücksetzen wieder auf ihre normale Und unsere halbe Größe war standardmäßig 96. Unser Radius war standardmäßig 34. Und unser Standort hier war standardmäßig, ungefähr minus 8.060,86. Das habe ich in Wie dem auch sei, das ist ein bisschen Drehbuch, das aus dem fertigen Teil unserer Timeline stammt dem fertigen Teil Offensichtlich wird diese Zeitlinie hier nicht rückwärts abgespielt diese Zeitlinie hier nicht rückwärts , es sei denn, wir haben ein Ereignis, das dazu auffordert Ich werde nun ein wenig auf „Schwenken“ klicken. Ich werde erneut mit der rechten Maustaste klicken. Benutzerdefinierte Ereignisse. Wir möchten diesen Spieler als beschädigt bezeichnen. Wir haben also ein benutzerdefiniertes Event namens Player Damage. Wir stecken das vom Ende her in die umgekehrte Richtung, also müssen wir es manuell angeben, wann wir es aufrufen wollen. Jetzt, wo das erledigt ist, können wir zu unserem Skript zur Anpassung der Trefferpunkte gehen und die Dinge ein wenig modifizieren. Also werde ich darauf doppelklicken, um zu diesem Teil des Skripts zu gelangen. Unsere Anpassung der Trefferpunkte ganz unten rechts. Wenn Sie das alles interpretieren wollen, können Sie das, aber im Grunde genommen werden wir hier beschädigt. Wo wir getroffen werden, werden wir unsere Feuerblumenbarren platzieren, lassen Sie uns das wie folgt auf diese Stecknadel ziehen Da kommt automatisch ein Setter rein. Das setzen wir wieder auf „ Falsch“ zurück. Und wir werden das auch in die Länge ziehen und Spieler, der beschädigt ist , eintippen. Wir rufen das benutzerdefinierte Ereignis auf, das wir gerade erstellt und in die Rückseite der Timeline Wenn wir also quasi einen Hüftpunkt verlieren, setzen wir den Wert für „Has Fire Flower“ auf „Falsch“ um und rufen dieses benutzerdefinierte Ereignis auf, sodass unsere Timeline rückwärts abgespielt wird rufen dieses benutzerdefinierte Ereignis auf unsere Timeline rückwärts abgespielt In Ordnung, fast fertig. Jetzt müssen wir das Got Flower Power Custom Event nennen. Lass uns weitermachen und hier kompilieren und speichern. Sehr wichtig, dass wir kompilieren und speichern und jetzt müssen wir das von unserem Fire-Blueprint aus aufrufen Also lasst uns unseren Feuerblumenblock öffnen. Blueprint, wo ist unsere Feuerblume? Da ist sie Lass uns darauf doppelklicken. Geh da rein. Wir wollen es irgendwo hier nennen. Derzeit prüfen wir, ob es unser Spielercharakter ist der das Überlappen macht und dann die Feuerblume und den ganzen Jazz einsammelt Das ist alles schön und gut, aber wir müssen tatsächlich auf dieses benutzerdefinierte Got Flower Power-Event zugreifen Und diese Einrichtung hier wird es nicht tun. Das reicht aus, um eine Überlappung zu erkennen. Aber wir wollen überprüfen, ob es unser Charakter aus der dritten Person ist , der die Überlappung vornimmt Der Grund dafür ist, dass wir unseren Charakter aus der dritten Person benötigen unseren Charakter aus der dritten Person , um dieses benutzerdefinierte Ereignis auszurufen Wir löschen diese drei einfach hier draußen, 12.3. Stattdessen ziehen wir unseren anderen Schauspieler so ab und casten für einen Charakter aus der dritten Person Und der Grund, warum wir uns für dieses Setup entscheiden, ist wir uns jetzt von hier wegziehen und Got Flower Power eingeben können , um unseren Charakter aus der dritten Person anzurufen Und dann können wir das an unseren Sequenzknoten anschließen. Okay, lassen Sie uns weitermachen und es uns versuchen, kompilieren und speichern. Und wenn ich zurück zu unserem Level-Editor gehe, werde ich direkt ins Spiel kommen . Du wirst feststellen, dass ich standardmäßig kleiner bin, also lass uns weitermachen und mit dem Block interagieren und dann nach oben springen. Sie können sehen, dass ich an Größe zugenommen habe und die Kollision bei meiner größeren Größe scheint intakt zu sein. Jetzt lass uns weitermachen und getroffen werden. Mal sehen, ob es rückwärts geht. Als wir beschädigt wurden, sind wir wieder geschrumpft und es sieht so aus, als ob auch unsere Kapitalkomponente wieder geschrumpft Es scheint, dass alles wie vorgesehen funktioniert. Lassen Sie uns einfach unser letztes Drehbuch in unserem BP-Third-Person-Charakter zusammenstellen . Wenn Sie es noch einmal überprüfen möchten, setzen Sie den echten Power-Up-Hüftpunkt-Modifikator auf eins Und dann passen wir hier Wachstumsgröße unseres Charakters an und ändern auch die Größe der Kapselkomponenten und auch die Position unserer Maschen innerhalb dieser In Ordnung, Leute, das wird es für diesen Fall reichen. Wir sehen uns im nächsten. 43. Fireball-Blueprint: Ordnung, jetzt, wo wir die Feuerblume einsammeln können und unser Spieler sich verwandelt, ist der nächste Schritt für uns, sie so zu gestalten dass der Spieler einige Feuerbälle abschießen kann Und um das zu tun, müssen wir einen Feuerball-Blueprint erstellen. Das werden wir in diesem Video erreichen. Und wir werden hier in unseren Projekteinstellungen beginnen und etwas erstellen, etwas erstellen als Kollisionskanal bekannt ist. Und das wird in unserem Fireball-Blueprint ganz oben rechts verwendet unserem Fireball-Blueprint ganz oben rechts Wir haben diese Einstellungen, wir werden auf dieses Drop-down-Menü klicken Wir möchten auf unsere Projekteinstellungen zugreifen. In unseren Projekteinstellungen werden wir hier auf der linken Seite auf den Kollisionsbereich zugreifen . Jetzt genau hier, wo es Objektkanäle heißt. Wir werden einen neuen Objektkanal erstellen. genau hier darauf klicken, werden wir aufgefordert, einen Namen anzugeben. Ich nenne das Fireball und belasse die Standardantwort als Block Und ich werde auf Akzeptieren klicken. Jetzt werden wir das hier kurz verwenden, aber vorerst können wir unsere Projekteinstellungen schließen . Das ist alles, was wir hier tun mussten, war einen neuen Kollisionskanal zu erstellen. Klicken Sie lieber hier raus oder auf einen neuen Objektkanal. Gehen wir in unseren Ordner mit Plattform-Blueprints und suchen nach einem leeren Bereich Ich werde die Strg-Taste gedrückt halten und das Rad zurückblättern , um hier einen leeren Bereich zu finden Klicken Sie mit der rechten Maustaste auf Blueprint-Klasse. Das wird ein Schauspielkurs sein. Blaupause. Ich nenne das BP Underscore Fireball Und wenn das ausgewählt ist, tippe ich hier auf die Leertaste, um es zu öffnen Als Erstes möchte ich hier eine Kugelkomponente hinzufügen, also klicke ich unter und wähle die Kugelkomponente direkt unter einem statischen Netz aus. Und ich lasse es mit dem Namen Kugel belassen. Jetzt werde ich das tatsächlich zu meiner Hauptkomponente für Projektile machen meiner Hauptkomponente für Projektile Sie möchten machen, was auch immer Sie projizieren möchten. In diesem Fall wird es sich um eine Projektilwurzelkomponente handeln, also werde ich sie wie folgt auf meinen Standard-Szenenstamm ziehen und dort ablegen wie folgt auf meinen Standard-Szenenstamm Und das wird es zur neuen Wurzel machen. Jetzt drüben im Detailbereich, und ich muss meinen Detailbereich wieder erweitern. Es gibt einige Einstellungen, die ich hier für Sterne ändern möchte . Ich werde das Material dafür in meinem Abschnitt Material ändern . Ich werde auf dieses Drop-down-Menü klicken. Und ich habe einen in diesem Infinity Blade of X-Pack namens Lava Underscore Hot Es wird dieses M sein, das heiße Lava fließt. Und das wird ihm einfach einen Feuerball-Look verleihen , ziemlich cool Und dann unten im Detailbereich haben wir unseren Kollisionsbereich Und für Kollisions-Presets werde ich das hier erweitern Ich werde das so ändern , dass es benutzerdefiniert ist. Und dann werde ich unseren Objekttyp hier so ändern , dass er ein Fireball Der Grund, warum das existiert, ist, dass wir es einfach in unseren Projekteinstellungen eingerichtet Ich werde das auf Fireball setzen . Jetzt wird dies als Fireball-Objekttyp bezeichnet, und jetzt können wir Kollisionseinstellungen für verschiedene Objekttypen festlegen für verschiedene Objekttypen Jetzt werde ich dies so einstellen, dass es für die meisten davon blockiert Ich werde dies jedoch so einstellen , dass einige Trace-Kanäle hier ignoriert werden. Ich werde dies auch so einstellen, dass die Spielfigur ignoriert wird, die wir, unser Spielercharakter, Und ich werde das auch so einstellen, dass andere Feuerbälle ignoriert werden. Das wird wichtig sein, weil wir in der Lage sein werden , mehrere Feuerbälle abzufeuern und wir wollen nicht , dass sie voneinander abprallen können Das wird also genau dafür wichtig sein. Um die Kollisionsvoreinstellung zu überprüfen, setzen Sie diese Einstellung auf Benutzerdefiniert. Sie möchten, dass Ihr Objekttyp auf Fireball gesetzt Das haben wir gerade in unseren Projekteinstellungen erstellt. Und dann stellen Sie für die Kollisionsreaktionen sicher, dass Sie sie wie folgt eingerichtet haben. Als Nächstes füge ich hier eine weitere Komponente hinzu. Das sieht irgendwie brandgefährlich aus, aber ich werde auch ein Partikelsystem hinzufügen . Klicken Sie auf Hinzufügen Und was ich suche, ist, Partikel einzugeben und eine kaskadierende Partikelsystemkomponente hinzuzufügen Das ist ein älteres Partikelsystem. Die neueren Versionen von Unreal verwendeten Niagara. Aber ich weiß, dass dieses bestimmte Partikel , das ich hier reinschieben werde, in unserem gestarteten Inhalt hier existiert Ich werde mich für dieses Partikelsystem entscheiden. Du kannst jedes Partikel deiner Wahl für mich wählen. Ich werde mit dieser ausgewählten Komponente hierher kommen. Und wo Particles Template steht, wähle ich Underscore Fire Das ist wieder einmal in meinem Starter-Inhaltspaket enthalten. Sie können jeden dieser anderen ausprobieren, aber ich werde diesen ausprobieren. Jetzt wird es also so aussehen. Also, nur damit es ein bisschen gefährlicher aussieht, wenn Sie so wollen, werde ich die benutzerdefinierte Zeitdilatation einstellen Das ist im Grunde die Abspielgeschwindigkeit von jetzt mal zehn, denn wenn wir das erledigt haben, wollen wir sichergehen, dass unsere Flammen nicht zu sehr hinterherhinken Hinter diesem Teilchensystem verbirgt sich diese Kugel. Und wenn wir unser Spiel genau hier einstellen, unsere benutzerdefinierte Zeitdilatation auf zehn, wird es so aussehen, als würde es ständig brennen Okay, noch eine Komponente, die wir hier oben links hinzufügen müssen die wir hier oben links hinzufügen Wir suchen nach einer Komponente für die Projektilbewegung Und das ist es, was tatsächlich in der Lage sein wird, diesen Feuerball in unserer Umgebung zu bewegen diesen Feuerball in unserer Umgebung zu bewegen , diese Komponente der Projektilbewegung diese Option ausgewählt ist, gibt es mehrere Eigenschaften die ich im Detailbereich ändern möchte Die Anfangs- und Höchstgeschwindigkeit. So schnell wird es anfangs und dann maximal gehen Ich werde diese jeweils auf 2.500 setzen . Für beide. Ich sollte auch genau hier abprallen, weil ich möchte, dass es vom Boden abprallt Also kreuzen Sie das Kästchen an. Dann gehe ich auch runter, es gibt eine Sprungkraft und es gibt eine Reibung Ich stelle die Sprungkraft auf 0,5 und die Reibung auf 0,5 und die Reibung Wir können also sehen, dass diese Eigenschaften hier geändert wurden Das ist es, was dieser kleine Rückpfeil mit ihnen spielen kann, wenn wir sie in unser Spiel integrieren Ordnung, und zu guter Letzt haben wir hier oben unsere Schaltfläche „Klassen-Standardeinstellungen“, die einige Eigenschaften dieses Schauspielerklassen-Blueprints festlegt einige Eigenschaften dieses Schauspielerklassen-Blueprints Ich werde weit nach unten zu ihnen scrollen, nicht gerade nach unten Hier ist es, Initial Lifespan. Wir können die Lebensdauer dieses Schauspielers genau hier festlegen dieses Schauspielers genau Auch hier ein Standardwert von Null. Wie Sie dem Tooltip entnehmen können bedeutet dies, dass es ewig leben Ich werde das auf 2,0 setzen, was bedeutet, dass es nach 2 Sekunden automatisch zerstört wird Damit werde ich weitermachen und diesen Entwurf speichern. Das ist alles, was wir in diesem Fall erreichen wollten. In den nächsten beiden Videos werden wir es so machen, dass wir diesen Feuerball abschießen können . Wir sehen uns dort 44. Schieße auf Feuerbälle (Basic): Nun, da wir einen Fireball-Blueprint erstellt haben, wollen wir darauf hinarbeiten, dass unsere Spieler ihn abschießen Dafür werden wir in unserem Blueprints-Ordner arbeiten unserem Blueprints-Ordner Wähle deinen BP-Charakter aus der dritten Person, wenn er ausgewählt ist. Tippe auf die Leertaste, um ihn zu öffnen. Und ich werde sofort zu unserem Viewpoort-Tab kommen , weil wir hier eine Komponente hinzufügen werden hier eine Komponente hinzufügen , die Sie alle Jetzt wähle ich hier unser Ich aus. Und der Grund, warum ich das auswähle, ist, dass ich eine weitere Komponente an unser Netz anhängen möchte . Solange dies zuerst ausgewählt ist und wir eine Komponente hinzufügen. Und ich werde auf Hinzufügen klicken, ich werde eine Pfeilkomponente hinzufügen. Diese Komponente ist jetzt also an unser Netz angehängt. Derzeit liegt es ihnen zu Füßen, aber ich werde die Position hier gleich ändern . Ich werde das in meine Fire Ball Spawn Points umbenennen, weil wir es dafür verwenden werden Hoppla, ich habe dort den On-Spawn-Punkt vergessen. diese Option ausgewählt ist, werde ich einige Details im Detailbereich unter der Y-Position einstellen einige Details im Detailbereich unter der Y-Position Ich werde diesen Wert auf 240 einstellen. Ich werde es unserem Charakter nur ein bisschen vor Bei der Z-Position werde ich so auf 135 aufsteigen. Und dann drehe ich diese Drehung, die Y-Rotation, ich habe einen Wert von minus 30. Und für die Z-Rotation werde ich sie auf 90 setzen. Im Wesentlichen wird unsere Pfeilkomponente in diese Richtung nach unten zeigen Es ist an unserem zweiten Netz befestigt. Wenn wir unseren Charakter in unserem Level umdrehen, dreht sich auch dieser Pfeil. Das zeigt nicht nur den Spawnpunkt an, er wird auch genau hier spawnen Wenn wir auf eine Taste tippen, wird ein Feuerball erscheinen. Es wird ihn auch in diese Richtung spawnen. Also wisse einfach, wenn du die Flugbahn deines Feuerballs ändern willst , kannst du auch mit diesem Winkel herumspielen Okay, als Nächstes tauchen wir wieder in unseren Inhaltsbrowser ein und verwenden das Eingabesystem, und verwenden das mit unserem Charakter aus der dritten Person geliefert wurde mit unserem Charakter aus der dritten Person geliefert Dies wurde in den letzten Versionen von Unreal eingeführt. Und wir werden hier in unseren Aktionsordner fallen. Und was wir hinzufügen müssen, ist ein neues Input-Action-Asset. Jetzt können wir das tun, indem rechten Maustaste in den Inhaltsbrowser klicken. Hier in diesem Verzeichnis werde ich unter Eingabe fallen und wir werden Eingabeaktionen hinzufügen. Und ich werde diesen Underscore Shot, Underscore Fireball nennen diesen Underscore Shot, Underscore Fireball Und wenn ich dann die Leertaste drücke, um das zu öffnen, können Sie sehen, dass unsere Eingabe vom booleschen Typ sein wird , als ob das War es nicht? Das ist alles schön und gut. Lass uns weitermachen und das speichern. Und dann werde ich wieder in den Inhaltsbrowser eintauchen. In unserem Eingabeordner hier haben wir diesen IMC, Underscore-Standard, Underscore-Standard, das sind die Eingabezuordnungen, die Und ich werde das auswählen und auch die Leertaste drücken Mc default, das ist die Abkürzung für Input Mapping Context. Ich werde hier die Leertaste drücken, um das zu öffnen. Und jetzt muss ich unsere Eingabeaktion einbauen , Fireball hier drinnen zu schießen Also werde ich das plus Mapping anklicken. Ich setze unseren neu erstellten Unterstrich Fireball ein oder schieße lieber Fireball oder schieße lieber Fireball Feuerball abgeschossen. Jetzt muss ich auch entscheiden, welche Taste oder Buttons ich dieser Aktion zuordnen möchte Ein paar Dinge, die wir hier tun können, sind, wenn Sie diese Tastatur so auswählen, können Sie jetzt jede Taste auf Ihrer Tastatur der Tastatur zuordnen. Wenn ich also auf die F-Taste tippen würde, können Sie sehen, dass sie jetzt genau dort zugeordnet wird. Die F-Taste wird also dafür sorgen, dass diese Eingabe erfolgt. Ich werde die Taste auch noch einmal drücken, und für diejenigen unter Ihnen, die einen Controller haben, können wir ihn auch auf einen Controller einstellen , wenn Sie einfach diese Tastatur auswählen. Und ich habe einen Controller angeschlossen und werde die X-Taste auf meinem Xbox-Controller drücken, das ist die linke Taste Sie können sehen, wie er auch dort automatisch zugeordnet wird, wenn Sie die Taste oder in meinem Fall meinen Xbox-Controller der X-Taste drücken, die ich aufrufen werde, damit dieser Eingang ausgelöst Lass uns weitermachen und das sofort speichern. Nun, falls Sie sich nicht von früher im Kurs erinnern, wo zum Teufel wurde das alles benutzt? Nun, innerhalb unseres BP-Third-Person-Charakters, innerhalb unseres Event-Graphen Hier, ich muss es finden. Hier oben ist unser Eingabe-Mapping-Kontext mit unserem BP-Third-Person-Charakter verknüpft. Das geht über diese Funktion genau hier, diese IMC-Standardeinstellung. Hier wird unserem Charakter aus der dritten Person sozusagen gesagt, er soll diese Sammlung von Aktionen verwenden In Ordnung, ich werde das einfach zusammenbrechen lassen. Stellen Sie sicher, dass Sie das speichern können genauso wie Ihre IA den Feuerball abfeuern Okay, lassen Sie uns den ersten Durchgang unseres Feuerballschießens durchführen Ich suche mir hier einfach einen leeren Platz und ich habe meine Got Flower Power genau hier. Ich werde sogar mit der linken Maustaste klicken und das alles mit der Maus herumziehen. Tippen Sie auf die C-Taste und geben Sie got ein. Flower Power. Nur damit ich den Teil des Skripts leicht identifizieren kann, mach es schwarz. Und direkt darunter schieße ich den Feuerball ab Also werde ich einfach die Steuerung gedrückt halten und ein bisschen vergrößern Klicken Sie mit der rechten Maustaste in eine leere Stelle. Ich gebe einfach Schießen ein, da ist mein Eingabe-Action-Event für Abfeuern des Feuerballs. Ich werde das reinbringen Ich möchte, dass, wenn wir mit der Aktion beginnen, eine Filiale herausbringen und ich möchte herausfinden ob sie in meinem Blueprint-Panel unter dem Bereich Spielergesundheit erweitert meinem Blueprint-Panel unter dem Bereich Spielergesundheit Ich möchte herausfinden, ob wir die Feuerblume haben. Ich ziehe das per Drag-and-Drop. Zusätzlich zu unserer Bedingung wollen wir nur spawnen , also Feuerbälle abschießen können , wenn wir die Feuerblume haben Wenn ich jetzt mit der rechten Maustaste auf meine Feuerblume hier klicke , diesen Goldbarren, kann ich in dieser Grafik Hinweise darauf finden und mir das ansehen Wenn Sie auf eine dieser Optionen doppelklicken, können Sie sehen, wo wir den Feuerfluss, die Flower-Power bekommen , wenn dieses benutzerdefinierte Ereignis aufgerufen wird, wir das auf „true“ umdrehen So können Sie herausfinden, wo verschiedene Variablen verwendet werden Sie können einfach auf sie doppelklicken , nachdem Sie mit der rechten Maustaste darauf geklickt haben und die Referenz finden Okay, also werden wir fragen, hat unser Spieler die Feuerblume Wenn das stimmt, werden wir uns in Spawn Actor aus dem Unterricht herausholen Spawn Actor aus dem Unterricht Nun, wir haben gerade einen Fireball-Blueprint erstellt, also werde ich hier klicken und Fireball eingeben Mein BP Fireball wäre ein bisschen komisch in einer Feuerleiste spawnen und jetzt muss ich uns sagen, wo er spawnen soll ? Nun, wir haben gerade einen Fireball-Spawnpunkt erstellt. Lassen Sie uns weitermachen und diese Komponente hineinziehen. Ziehen Sie also von hier weg und geben Sie get transform ein. Wir wollen die Welt verändern, die Welt verändern, genau hier. Welt verändern, wo auch immer sie sich auf der Welt befindet. Zu der Zeit drücken wir die F-Taste und lassen uns dann auch einen Ton davon abspielen. Also werde ich mich einfach von hier wegziehen und den Ton eingeben. Sie könnten einen Sound an einem oder zwei Orten abspielen D Sound. Ich denke, ich werde am Ort unseres Charakters einen Sound abspielen . Ich kann mit der rechten Maustaste auf ein leeres Feld klicken und den Standort des Schauspielers abrufen eingeben . Das wird der Standort unseres Charakters aus der dritten Person sein . Für den Sound. Ich habe einen Fireball. In Ordnung, also hier wird es unser Basisskript geben. Lass uns weitermachen und kompilieren und speichern. Und dann springen Sie hier zurück zu unserem Level-Editor. Bevor ich auf Play klicke, werde ich auf Anhieb ein Problem damit aufdecken , das wir beheben werden. Aber ich gehe in meinen Blueprints-Ordner und lege ein paar Münzen in den Pfad meines Charakters, um sicherzustellen, dass ich meine beiden D-Snap-Einstellungen auf der Hauptebene habe D-Snap-Einstellungen auf der Hauptebene Ich werde hier eine Münze platzieren. Ich werde auch eine oben platzieren, weil ich versuche, das Problem aufzudecken. In Ordnung, lass uns reinspringen und spielen und schauen, ob ich, sobald ich die Feuerblume habe, einen Feuerball abschießen kann Ordnung, im Spiel hier, tippe auf die F-Taste und schau, ob wir einen Feuerball direkt vom Gecko abfeuern können Ich kann nicht. Lass uns weitermachen und die verwandelte Feuerblume einsammeln. Ich tippe jetzt auf die F-Taste. Offensichtlich ist der Feuerball ein bisschen groß und wir konnten genau hier ein Problem sehen, das ich erwartet hatte Lass mich einfach runterkommen. Hoppla. Wir sind dort gestorben Lass uns weitermachen und wieder reinspringen und spielen. Du hast das erste Problem gesehen. Sie kollidiert mit der, mit unserer unsichtbaren Münze Damit müssen wir uns gleich befassen. Aber wenn Sie versuchen, hier runterzufallen werden Sie auch feststellen , dass es auch mit dem Kollisionsvolumen rund um Ihre Münze kollidiert auch mit dem Kollisionsvolumen rund um Ihre Münze Also hier ein paar Probleme zum Aufräumen. Problem Nummer eins, das wir bereinigen werden, ist, dass unsere Feuerbälle mit einigen Dingen kollidieren , mit denen wir nicht wollen, dass sie kollidieren, wie diese Triggerbox genau hier und diese Triggerlautstärke Und das können wir tun, indem wir in unsere Einstellungen, Projekteinstellungen gehen unsere Einstellungen, Projekteinstellungen Und wir waren gerade hier drin unter der Kollisionsabteilung. Wir werden gleich hier unten auf unsere verschiedenen Voreinstellungen eingehen. Also klicke ich einfach hier auf dieses Preset. Und es gibt ein paar davon, die ich bearbeiten möchte. Die erste davon ist, dass sie sich alle dynamisch überschneiden. Wenn Sie „ Alle dynamischen Überlappungen“ auswählen und dann auf „Bearbeiten“ klicken, können Sie die aktuellen Reaktionen auf diese verschiedenen Kollisionskollisionen sehen diese verschiedenen Kollisionskollisionen Im Moment ist unser Fireball, also alles, was als Feuerball bezeichnet wird, wie unser BP-Feuerball, so eingestellt, dass er blockiert . Dies ist so eingestellt, dass eine Fireball-Antwort blockiert wird. Ich werde das auf Ignorieren setzen. Noch einmal, in unserem BP-Feuerball können wir sehen, dass unsere Kugel auf einen Feuerballtyp eingestellt ist Zurück in unsere Projektumgebung wollten wir die gesamte Dynamik überlagern, wollten wir austauschen Außerdem werden wir alles überschneiden und das werden wir bearbeiten. Dies ist auch so eingestellt, dass es unseren Fireball blockiert. Stellen wir das so ein, dass es ignoriert und akzeptiert wird. Wir werden auch unser Preset auswählen. Wir werden das machen. Und wir werden dies auf Ignorieren setzen und auf Akzeptieren klicken. Wir müssen das tun, weil unsere BP-Punkte-Widget-Komponente das UI-Kollisions-Preset verwendet. Möglicherweise müssen Sie dies im weiteren Verlauf des Kurses für andere Objekttypen tun. Seien Sie sich also bewusst, dass Ihr Fireball, wenn er mit Dingen kollidiert nicht mit anderen kollidieren sollte Um in Ihren Projekteinstellungen hierher zurückzukehren, gehen Sie in den Kollisionsbereich und ändern Sie einige Ihrer Kollisions-Voreinstellungen hier, wie ich es gerade damit gemacht Gehen wir zurück zu unserem Level und klicken auf diese Taste. Da gleitet es nicht hin. Als Nächstes versuchen wir, die Größe unseres Feuerballs anzupassen. Gehen wir also zurück zu unserem Feuerball-Blueprint, wobei unsere Kugel wobei unsere Kugel Gehen wir hier nach oben, wo wir unsere Waage haben. Ich werde das einheitlich skalieren, also stellen Sie sicher, dass wir unser Schloss hier haben Sie können das ein- und ausschalten. Dadurch wird es so , dass die Änderung eines dieser Parameter den Rest ändert Ich werde das auf 2.3 setzen. Lass uns das versuchen. Es wird also ein bisschen kleiner sein. Wenn wir dann wieder in unser Level zurückkehren, springen wir rein und spielen. Mal sehen, was wir hier haben. Okay, lass uns sehen. Ich werde die Taste drücken. Es kollidiert nicht mehr mit dem Block. Das ist also ziemlich gut und es scheint auch nicht mit unseren Münzen zu kollidieren Sie können also natürlich Ihre Fireball-Größe nach Ihren Ich werde das vorerst so lassen, wie es ist. Aber Leute, das wird alles für diese Basisversion von Shooting Out Unseren Feuerball reichen In unserem nächsten Video werden wir einige Regeln hinzufügen, um es noch stärker zu betonen . Wir sehen uns dort 45. Feuerbälle schießen (Fortgeschritten): In Ordnung, heiße alle willkommen. In diesem Video werden wir unsere Feuerbälle auf die nächste Stufe heben, indem wir einige Regeln implementieren Und damit meine ich, dass wir die Anzahl der lebenden Feuerbälle, die wir gleichzeitig haben, einschränken die Anzahl der lebenden Feuerbälle, die wir gleichzeitig haben Wir werden auch die Anzahl der Sprünge, die der Feuerball machen kann, einschränken die Anzahl der Sprünge, die der Feuerball machen Wir werden einige visuelle Effekte erzeugen, wenn unser Feuerball zweimal hier und unwirklich abprallt Wir werden sowohl in unserem BP-Feuerball als auch in unserem Charakter aus der dritten Person etwas arbeiten unserem BP-Feuerball als auch in unserem Charakter aus der dritten Person Also solltest du vielleicht beide öffnen . Wir werden mit unserem BP-Third-Person-Charakter beginnen BP-Third-Person-Charakter und sofort eine brandneue Variable erstellen . Dadurch wird die Anzahl der Live-Feuerbälle gleichzeitig Das richtige Wort sagt hier also Variablen. Klicken Sie auf diese Plus-Schaltfläche und wir werden einen erstellen, der als Live-Fireballs bezeichnet wird Und ich werde das in eine Ganzzahl ändern . Dies wird verfolgen, wie viele lebende Feuerbälle wir gleichzeitig haben. Ich kompiliere hier, wir beginnen mit dem Standardwert Null Komm jetzt und finde dein aktuelles Fireball-Schießskript. Weil wir das modifizieren werden, und insbesondere werden wir diese drei Knoten nehmen sie hier zur Seite ziehen. Wir werden genau hier eine Lücke schaffen. Also gib dir so etwas Freiraum. Und wir werden es als solches modifizieren. Nachdem wir hier einen Feuerball abgeschossen haben, ziehen wir, wenn wir die Feuerblume haben, den echten Ast ab Und jetzt werden wir alle Schauspieler der Klasse haben. Und wir werden alle Schauspieler unserer Fireball-Klasse bekommen. Wir geben einfach Fireball ein. Und dann klicken wir mit der rechten Maustaste auf diese Stecknadel von unseren Schauspielern Und wir werden das zu einer Variablen heraufstufen. Wir werden das unser Fireballs-Array nennen. Und wir werden das so einhängen , dass es jedes Mal, wenn wir einen Feuerball abschießen, im Grunde genommen herausfinden wird , hey, wie viele Feuerbälle es auf der Welt gibt Und das werden wir in unserer Liste speichern. Der Grund, warum wir das tun werden, ist dass wir uns aus dieser Stecknadel herausziehen werden. Und wir werden die Länge unseres Arrays herausfinden, die Länge unserer Liste, wie viele Feuerbälle auf dieser Liste existieren Und der Grund, warum wir das tun werden , ist, dass wir unsere Anzahl an lebenden Feuerbällen festlegen also hier unten im Bereich „ Mein Blueprint“ Suchen Sie also hier unten im Bereich „ Mein Blueprint“ nach Ihrem Live-Fireball-Array und wir können es einfach per Drag-and-Drop auf diesen Outpin Wenn wir zum Beispiel schnell zwei Feuerbälle abschießen würden, schnell zwei Feuerbälle abschießen indem wir zweimal die F-Taste drücken, Bang, peng, dann kämen wir hierher Haben wir den Fireball? Ja. Oder Feuerblume? Ja. Okay. Es gibt zwei Feuerbälle auf der Welt Wir werden sie zu unserer Liste hinzufügen. Die beiden sind da draußen. Das wird die Länge sein. Diese Variable wird die Zahl Zwei enthalten. Das wird wertvoll sein, weil wir uns dann hier rausziehen und einen Knoten hineinbringen werden. Wir werden herausfinden, dass es weniger als zwei lebende Feuerbälle gibt. Nur wenn wir weniger als zwei lebende Feuerbälle haben werden wir das Spawnen eines weiteren zulassen. Ich werde das in einen Zweig einbinden so wie unser Skript so aussehen wird Und ich werde hier nur diesen mittleren Teil hervorheben . Tippen Sie auf die Seetaste und dies wird mein Skript zur Beschränkung der Anzahl von Live-Fireballs-Skripten Das wird optional sein, aber ich hätte das gerne hier drin und wenn du Mario-Spiele spielst, machen sie das tatsächlich Ich färbe das vielleicht etwas dunkelblau, so etwas. Nur um das zu vergrößern, was wir hier haben, das wird unser Drehbuch sein. Wenn Sie ein Video hier jederzeit pausieren möchten , um es sich anzusehen, stellen Sie sicher, dass Sie Nummer zwei haben. Und das hier ist weniger als ein Knoten. Okay, lassen Sie uns das schnell kompilieren und dann können wir es sofort testen. Also springe ich einfach rein und spiele. Also, jetzt gehe ich hier auf meiner F-Taste zu Sam, schau mal, wie viele. Also, du kannst sehen, dass ich immer nur zwei lebende Feuerbälle habe, und diese müssen erlöschen bevor ich neue spawnen kann Als Nächstes werden wir die Anzahl der Sprünge, die ein Feuerball machen kann, einschränken die Anzahl der Sprünge, die ein Feuerball machen kann Und dafür werden wir in unseren BP-Feuerball gehen. Hier werden wir eine Variable hinzufügen, klicken Sie genau dort Das wird unser genannt werden. Fireball Bounce Counter, auch das wird eine Ganzzahl sein Wenn ich das sofort kompiliere, möchte ich es auf einem Standardwert von Null belassen Lassen Sie uns als Nächstes auf unsere Komponentenliste eingehen. Also klicken wir mit der rechten Maustaste auf unsere Projektilbewegung. Wir werden ein Ereignis hinzufügen und wir werden ein Ereignis beim Projektilabprall hinzufügen Wenn wir das tun, springen wir zu unserem Ereignisdiagramm über Jedes Mal, wenn unser Projektil abprallt, wird es von hier aus abgefeuert Was wir hier tun werden, ist unseren Fireball-Abprallzähler einzubauen unseren Fireball-Abprallzähler Ich werde die Strg-Taste gedrückt halten, mit der linken Maustaste klicken und ziehen. Und wenn ich dann die Maus herausziehe kann ich einen Inkrementknoten einfügen Und das wird unserer Variablen hier eine hinzufügen unserer Variablen hier eine hinzufügen und sie dann wieder hier Wir müssen uns keine Gedanken darüber machen, unseren Fireball-Bounce-Zähler am anderen Ende Dieser spezielle Inkrementknoten wird einfach herausfinden, welchen Wert das hat Er wird es hinzufügen und dann wird es wieder hier rein gesetzt Nun ziehe ich aus diesem Ausgangsstift heraus und ich werde einen Wert größer als oder gleich einziehen, wenn er größer oder gleich der Zahl Zwei ist. Ich werde das in einen Zweigknoten stecken B gedrückt halte, und wenn ich mit der linken Maustaste klicke, wird ein Zweig angezeigt, bei dem der Fireball-Abprallzähler größer oder gleich zwei ist Ich werde den Emitter am Standort spawnen. Spawn-Emitter, den Emitter, den ich verwenden würde, ich verwende die Explosion gerne für Er ist auch im Startinhalt enthalten, weshalb ich den P-Unterstrich Explosion A verwende. Auch hier können Sie ein Spawn-System am Standort für ein Niagara-Partikel am Standort Ich muss dem einen Ort geben . Ich werde also den Standort unserer Sphäre hier herausfinden. Wir werden das so hineinziehen also wir werden es von hier wegziehen und den Standort der Welt ermitteln , wo auch immer sich das auf der Welt befindet. Dort werden wir diese Explosion auslösen. Natürlich ist es auch nett, ein bisschen Sound zu haben auch nett, ein bisschen Sound zu Was ich tun werde, ist, wenn wir den Ort des Spawn-Emitters gefunden haben, werde ich mich von hier wegziehen und den Spawn-Sound als Anhang eingeben Spawn-Sound als Anhang Ich kann einfach unseren Rückgabewert nehmen und so an die Komponente anhängen Und das wird hineinspawnen. Ich muss hier ein Explosionsgeräusch Ich werde einfach den Explosionshinweis verwenden. Dann werde ich ganz am Ende einfach wegziehen und sagen, welchen Schauspieler wir zerstören, also diesen Feuerball Ordnung, also werde ich versuchen, das alles zusammenzustellen , damit du es dir ansehen kannst Achte darauf, dass du die beiden hast. Das ist eine Explosion, die größer oder gleich einer Explosion ist. Damit wir das leichter testen können, wähle ich unsere Projektilbewegung Und vorübergehend werde ich hier unsere Geschwindigkeit verringern, denn im Moment werden wir diesen Sprung nicht zweimal sehen Lass mich das einfach auf etwa 500, 500 ändern. Ich werde das irgendwann wieder hier ändern , wahrscheinlich zwischen den Videos. Also werde ich das kompilieren, wir werden hier spielen. Wie oft springt es? 12, bumm. 12. Es wird automatisch zerstört, wenn diese Effekte und so weiter beim zweiten Sprung sichtbar Ordnung, bevor ich es vergesse, werde ich meine Geschwindigkeit hier wieder auf 2.500.2500 einstellen . Aber auch hier können Sie nach Belieben damit herumspielen Okay, das nächste, was ich hier tun möchte, ist zu überprüfen, ob unser Feuerball auf eine größtenteils vertikale Oberfläche trifft, und wenn ja, werden wir sie sofort explodieren lassen Anstatt darauf zu warten, dass unser Feuerball zweimal abprallt Um das zu tun, ziehe ich mein Projektil etwas weiter nach oben und wir können unser Aufprallergebnis etwas weiter nach oben und wir können unser ermitteln. Und das können wir tun, indem wir es hier rausziehen und Pause, Hit Result eingeben Also werde ich das erweitern, tun. Ich will also unsere Normalität finden. Wir werden das in die Länge ziehen, ich tippe in einen Vektor, mache Bauchmuskeln. Dann nehme ich das und ich werde es rausholen. Wir werden diesen Vektor durchbrechen. Wir werden das Z daraus herausfinden. Und wir werden das in einen Knoten ziehen, der kleiner als ist, und wir werden herausfinden, ob das weniger als 0,9 ist . Und wir werden hier gleich einige Beispielszenarien durchgehen . Ich werde die B-Taste gedrückt halten und mit der linken Maustaste klicken, um einen Zweig wie diesen einzufügen. Und ich werde das so hineinziehen. Okay. Was wir dann tun werden , ist herauszufinden welche Zahl hier ausgegeben wird, indem einfach eine temporäre gedruckte Zeichenkettennotiz einfügen. Also werde ich mit der rechten Maustaste in eine leere Stelle klicken. Geben Sie die Druckzeichenfolge ein. Das wird nur eine vorübergehende Notiz sein. Ich werde vorübergehend das Wahre und das Falsche hineinstecken und dann diesen Z-Wert nehmen. Und stecke es direkt hier ein. Nur damit Sie sehen können, wie diese Nummer auf dem Bildschirm ausgegeben wird Jetzt platziere ich hier unten eine Fläche und schieße dann einen Feuerball hinein Ich werde es hier sogar oben platzieren, damit wir einige Werte sehen können, die hier sogar oben platzieren, damit wir einige Werte sehen können ausgespuckt werden , wenn wir unseren Feuerball abfeuern Also werde ich hier einfach einen Würfel reinbringen. Ich werde es einfach ein bisschen so machen. Ich werde ein bisschen so rotieren. Ich werde es so ein bisschen nach unten bewegen. Ich werde von einer Oberfläche wie dieser abschießen. Okay? Reinspringen und spielen. In Ordnung, also los geht's. Du bekommst diesen Feuerball. Sie werden nach dem Mario-Symbol ganz oben auf dieser Zahl suchen die wollen, die auf dem Bildschirm ausgedruckt Also los geht's, 0,5 0,5 0,5 Okay, Sie bekommen also eine Vorstellung von den Werten, die hier ausgespuckt werden Lass mich einfach meine Angular-Snap-Einstellungen ausschalten. Dreh das noch ein bisschen, okay, lass es mich so anwinkeln. 0.7 0.7 0.7 Ich drehe es jetzt so an, dass es ein bisschen vertikaler Los geht's. Es ist, die erste Zahl ist 0,178 und dann bekommt sie Wert eins, weil sie von der flachen Oberfläche abprallt Der absolute Wert wird sicherstellen, dass wir dort keine negative Zahl haben Und was wir hier im Wesentlichen tun wollen, ich werde diese Knoten einfach zerstören , ist Folgendes. Ich möchte unseren Absprungzähler erhöhen. Ich werde das tatsächlich ein bisschen zurückziehen , und ich werde das sogar ein bisschen reduzieren Wenn sich das als wahr herausstellt, möchte ich diese Effekte sofort einblenden Okay, wir wollen den Absprungzähler nicht einmal erhöhen Okay, lass mich das einfach fallen lassen. Ich werde mir das so gut wie möglich ausdenken. Also lass uns weitermachen und das kompilieren. Und dann ist der Test draußen, ich springe zurück zu meinem Level und spiele. Also, du wirst sehen, ich werde das hauptsächlich vertikal drehen. Es wird es sofort zerstören, ohne auf einen zweiten Sprung zu warten. Ich werde das ein bisschen mehr so neigen . Lass uns das versuchen. Das werden wir sofort vernichten . Wenn ich einfach sagen sollte, sollte ich nicht hauptsächlich vertikal sagen, ich sollte eher vertikal sagen. Jetzt werden wir uns also überhaupt keine Sorgen mehr über eine leicht geneigte Umgebung Dadurch kann es abprallen, aber solange wir eine solche leicht abgewinkelte Oberfläche haben , wird es sie sofort zerstören Es wird nicht auf einen zweiten Sprung warten. Ordnung, noch eine Sache, die wir mit unseren Feuerbällen reparieren Bevor ich's vergesse, ich habe vergessen , unseren unsichtbaren Block hier anzusprechen Hier ist das aktuelle Problem. Wenn ich wieder reinspringe und spiele und unsere Feuerblume hole. Und du kannst sehen, dass ich hier unten unsichtbare Blöcke habe . Wenn ich auf die F-Taste tippe, kannst du sehen, dass sie bereits mit dem unsichtbaren Block kollidiert , also müssen wir dieses Problem lösen Also werden wir uns mit unserem unsichtbaren Block, der Blaupause, befassen unserem unsichtbaren Block, der Blaupause, Sie können jeden dieser unsichtbaren Blöcke auswählen. Ich kann den unsichtbaren Block bearbeiten, indem ich direkt dorthin gehe. Das aktuelle Problem ist, dass ich , an der wir mit dem Spielen beginnen, nach oben zoomen werde. Genau hier, unser Würfel. Wenn ich derzeit unseren Würfel auswähle und in die Kollisionseinstellungen gehe, kannst du sehen, dass wir den Feuerball hinzugefügt haben und er so eingestellt ist in die Kollisionseinstellungen gehe, kannst du sehen, dass wir den Feuerball hinzugefügt haben und er so eingestellt ist, dass er den Feuerball hier blockiert, wenn das Event beginnt Was wir tun können, ist, unseren Würfel herunterzuziehen und Set Collision Response einzugeben, Set Collision Response einzugeben um diesen Knoten genau hier zu kanalisieren Wir werden das verkabeln. Wir werden den Kanal auf Fireball einstellen und dann werden wir die neue Antwort einstellen Stellen Sie sicher, dass dieser Wert auf Ignorieren gesetzt ist. Fahren Sie fort und kompilieren und speichern Sie das. Wenn ich dann reinspringe und spiele und meine Feuerleiste hier aus dem Weg räumen lasse , habe ich da eigentlich nur einen Block in den Feuerbalken, einfach aussieht, als würde er darin liegen, so dass er mich nicht mehr treffen sollte. Okay. Ich werde reinspringen und hier spielen. Lass das Feuer an der Blume klopfen. Und du kannst sehen, dass es nicht mehr mit diesem unsichtbaren Block kollidiert mit diesem unsichtbaren Lass mich das holen. Lass uns sehen, ob ich daraus einen Feuerball abfeuern kann. Sie können jetzt sehen, dass das Problem darin besteht, dass es direkt durch diesen Block geht, nachdem ich mit ihm interagiert habe Also muss ich sicherstellen, dass ich die Kollision wieder einschalte, sobald wir den unsichtbaren Block aufgedeckt haben. Um das zu tun, gehe ich zurück in meinen BP-Block, die unsichtbare Münze. Und wir werden sagen, dass ich, nachdem wir damit fertig sind, wieder runter gehen werde , wo wir unsere Unsichtbarkeit einschalten Lass es uns genau hier in diesem Bereich platzieren. Ich ziehe das einfach an, um unseren Würfel rüber zu bringen. Ich werde es eintippen, eigentlich klauen ich einfach den Knoten von hier oben. Es hieß Set Collision Response to Channel. Ich werde diesen Knoten einfach kopieren. Wir werden ihn gleich wieder hier unten einbauen und ich werde diesen Knoten einfügen. Wir werden das genau hier reinschleichen. Stellen Sie sicher, dass Sie Ihren Cube als Ziel einstecken. Und dieses Mal werden wir sagen, dass wir, nachdem wir mit ihm interagiert haben, den Feuerball nicht mehr ignorieren werden, sondern ihn stattdessen blockieren werden Also mach weiter und kompiliere und sag das, lass uns das versuchen. Noch einmal, wieder reinspringen und spielen. Sie können sehen, dass es genau da hindurchgeht, auf den anderen Block trifft und nicht mit diesem Block interagiert. Wenn ich jetzt versuche, auf diesen Block zu schießen, interagiert er mit ihm und kollidiert dort, wo er sollte Ordnung, wir haben jetzt eine erweiterte Version der Fireball-Jungs , die alles für diesen machen wird Wir sehen uns im nächsten. 46. Basisblockkomponenten und Funktionen: Im Laufe der nächsten Videos. Hier werden wir einen Block zusammenstellen. Und was ein Block für diejenigen tut es nicht kennen, ist, dass er normale Blöcke für eine begrenzte Zeit in Münzen verwandelt . Sobald der Timer abgelaufen ist, die Blöcke, die zu Münzen wurden, wieder zu Blöcken. Damit wir das wieder in der Engine erreichen können, werden wir einige Änderungen an unserem BP-Basisblock vornehmen . Wählen Sie das aus und drücken Sie dann die Leertaste, um es zu öffnen. Hier werden wir ein paar Komponenten hinzufügen. Lassen Sie mich hier zu meiner Viewport-Ansicht zurückkehren. Lassen Sie uns eine Komponente hinzufügen. Das erste wird ein Kind sein. Wenn wir Kind eingeben, wird es ein Kinderdarsteller sein der dann unserem Kinderdarsteller zugeordnet wird. Stellen Sie also sicher, dass Sie dies ausgewählt haben. Wir werden eine Sphärenkollision hinzufügen. Und das finden wir hier unten im Abschnitt Kollision. Sphärenkollision, ich nenne das meinen Coin Collider. unser Coin Collider ausgewählt ist, werde ich den Kugelradius ändern Ich werde ihn nur ein bisschen größer machen auf 35. Es ist gerade auf der Innenseite unseres Blocks vergraben, was wir wollen, wir wollen nicht, dass es an der Außenseite unseres Blocks freigelegt wird . Und unser Kinderdarsteller drüben im Detailbereich, wir können einen Kurs für Kinderdarsteller buchen. Wir lassen das vorerst leer. Nun, innerhalb der Baupläne, dass wir eine Münze freilegen wollen, wenn der Block getroffen wird, setzen wir das auf BP, nehmen Münze auf, aber wir werden das nicht hier innerhalb dieses übergeordneten Bauplans tun innerhalb dieses übergeordneten Bauplans Als Nächstes werden wir hier in unserer BP-Blockbasis ein paar Funktionen erstellen hier in unserer BP-Blockbasis ein paar Funktionen Und diese werden dazu dienen, die verschiedenen Effekte ein- und auszuschalten , wenn wir mit unserem Block interagieren. Also, genau hier in meinem Blueprint-Bereich unter Funktionen werden wir auf diese Plus-Schaltfläche klicken Diesen ersten nennen wir Block. Beim zweiten rufen wir an, indem wir auf diese Plus-Schaltfläche klicken. Ich werde es noch einmal Block Off nennen. Einfach genug. Nachdem jedes dieser Elemente erstellt wurde, haben wir hier oben einige Tabs für unsere verschiedenen Funktionen hinzugefügt . Ich fange mit meinem Block an, also stelle sicher, dass dieser ausgewählt ist. Die Funktionalität, die ich hier hinzufügen möchte, besteht darin, dass ich einen Verweis auf unsere Würfel einfüge. Sie können das wie folgt per Drag-and-Drop hineinziehen. Dann ziehe ich das raus und gebe „Sichtbarkeit festlegen“ ein, wenn unser Block aktiviert ist, wir mit unserem Block interagiert haben, ich werde die Sichtbarkeit unseres Würfels ausschalten Also lassen wir das unmarkiert. Dann werde ich hier noch einmal aus unserem Würfel ziehen. Und ich gebe Set Collision Enabled ein. Also werden wir unsere Kollision so einstellen dieser Würfel keine Kollision hat, weil die Blöcke an sind, wir nicht wollen, dass er mit dem Würfel kollidiert Dann wollen wir in der Lage sein, uns auf unseren Kinderdarsteller zu beziehen Dann ziehen wir diese Art von eingestellter Sichtbarkeit in die Länge. Wir schalten die Sichtbarkeit unseres untergeordneten Schauspielers für unseren Funktionsblock ein. Ich klicke mit der linken Maustaste ziehe, um das Steuerelement C dieser Knoten zu kopieren . Ich gehe jetzt zu meiner Block-Off-Funktion , nur um hier etwas Zeit zu sparen. Ich werde hier reinklicken und dann Strg V drücken, um das alles einzufügen. Das wird größtenteils ähnlich sein, außer dass wir hier nur all diese verschiedenen Einstellungen umkehren müssen Wenn unser Block also ausgeschaltet ist, wollen wir sicherstellen, dass unser Würfel wieder eingeschaltet ist. Wir wollen auch sicherstellen, dass wir die Kollision wieder aktiviert haben. Dazu werden wir also eine kollisionsfähige Abfrage in der Physik durchführen . Und dann der Kinderdarsteller, den wollen wir unsichtbar machen, sobald der Block ausgeschaltet ist. Sobald der Timer abgelaufen ist. Ordnung, als Nächstes fügen wir hier mit unserem Coin Collider ein bisschen mehr Skript Wir werden mit der rechten Maustaste darauf klicken. Wir werden ein Ereignis hinzufügen und Begin Overlap ausführen. Und wenn wir das tun, kehren wir hier zu unserem Ereignisdiagramm zurück. Ich zoome nach hinten und suche nach einer leeren Stelle, um das zu platzieren. Ich werde das hier unten hinstellen. Lassen Sie uns das wieder vergrößern. Und dann ziehe ich die PIN des anderen Schauspielers ab und tippe das Gleichheitssymbol ein und wir werden herausfinden, ob das unserem Charakter „ Spieler holen“ entspricht unserem Charakter „ Spieler holen“ entspricht Wenn es gleich ist, füge ich in eine Zweignote ein, indem ich B gedrückt halte und mit der linken Maustaste klicke Wenn das gleich ist, gehen wir einfach zum Schauspieler, also zu diesem Block selbst. Dadurch wird sichergestellt, dass, wenn Sie die Blockmünze darin einsammeln, es im Grunde Blockzeit ist. Diese Münze wurde freigelegt, dann wird der Block selbst zerstört und kommt somit nicht zurück. Sobald die Blockzeit abgelaufen ist, klicke ich mit der linken Maustaste und ziehe mit der Maus um den Block herum . Die darin enthaltene Blockmünze wird eingesammelt. Und ich werde das auch schwarz machen. Und Leute, das ist alles, was wir in diesem Film erreichen wollten . Also werde ich das einfach kompilieren und speichern. Und damit haben wir einen Teil der Grundlagen für unseren P-Block gelegt der Grundlagen für unseren P-Block Damit ist es für diesen erledigt. Wir sehen uns im nächsten. 47. Kinderblock-Tag und Kinderschauspieler: Willkommen zurück alle. In diesem Video ist es unser Ziel, ein Schlagwort hinzuzufügen und innerhalb von Blöcken eine Klasse für Kinderschauspieler einzurichten. Wir wären gerne in Münzen verwandelt worden. Wenn unser Block aktiv ist, kannst du wählen, in welche Blöcke du ihn setzen möchtest. Ich werde nur zwei unserer Blöcke setzen, unseren Block zerbrechlich und unseren falschen, um Münzen darin zu haben, wenn wir irgendwann mit unserem Block interagieren Beachten Sie jedoch, dass Sie dies auch für andere Blöcke festlegen können. Wenn ich diese beiden jetzt öffne, drücke ich einfach die Leertaste, damit sie sich beide öffnen Was wir sehen können , ist, dass sie in jedem von ihnen, dem Block Breakable und dem Fake Breakable, dem Block Breakable und dem Fake Breakable, nun den Child Actor und die Coin Collider-Komponenten übernommen haben , die wir in unserer Blockbasis eingerichtet Also haben wir sie in unserer Blockbasis eingerichtet , die Kinder davon, einschließlich unserer Block Breakable und Fake Breakable einschließlich unserer Block Breakable und Fake Breakable . Sie haben sie beide Okay. Bei beiden werde ich reinkommen und den Kinderdarsteller einstellen , also ist das mein vorgetäuschter Breakable Ich setze zuerst den Kinderdarsteller ein, ich setze das auf meine Münze, hole BP, nehme Münze Und dann mache ich dasselbe innerhalb meines Blocks. Zerbrechlicher Kinderdarsteller, Kinderdarsteller, Klassenmünze. Und wir setzen es auf die aufgesammelte Münze. Dann werde ich für jeden von ihnen unter die Klassenstandardwerte fallen Klicken Sie ganz oben auf Klassenstandards , und wir werden dafür ein Tag hinzufügen Und du wirst ein bisschen später sehen, wo das Tag ins Spiel kommt , aber es wird uns das ermöglichen Und dann gehe ich einfach hier in den Detailbereich und suche nach dem Tag. Erlauben Sie uns, hier ein Tag hinzuzufügen , indem Sie auf diese Plus-Schaltfläche klicken. Und ich werde einen erstellen, der einfach Block heißt. Genau so werde ich hier Strg C drücken , nachdem ich das markiert habe. Und dann drüben in meinem BP-Fake Breakable wähle ich Klassenstandards aus, suche nach einem Tag und erstelle ein Ich werde das nur hervorheben und V kontrollieren, um Sap zu bezahlen Und das ist im Grunde ein Etikett, das wir jedem dieser Blöcke zuordnen Auch hier werden wir das später für jeden Block verwenden , in dem wir eine Münze haben möchten. Stellen Sie sicher, dass Sie auch dieses Etikett hinzufügen Also werde ich nur diese beiden Blöcke machen, aber wenn du es zu anderen Blöcken hinzufügen willst, kannst du sicherstellen, dass du danach die ganze Sache mit dem Kompilieren und Speichern erledigt hast. Und das wird alles für diesen einen machen, Leute. Wir sehen uns im nächsten. 48. Kamera-Shake-Blueprint: Willkommen zurück alle. In diesem Video ist es unser Ziel, einen Kamera-Shake-Entwurf zu erstellen , der abgespielt werden kann, wenn wir mit unserem Block interagieren Also ein bisschen mehr Vorbereitungsarbeit, bevor wir unseren Block-Blueprint selbst erstellen Wir werden das in unseren Blueprints-Ordner legen. Rechtsklick, es ist ein leerer Bereich. Das wird ein Blueprint-Kurs sein. Dafür wir uns nicht für eine der gängigsten Elternklassen entscheiden gängigsten Elternklassen Wir werden hier in deiner Suchleiste alle Klassen finden. Suchen Sie nach Camera Shake. Was Sie hier suchen, ist Camera Shake, Base. Mach weiter und wähle das aus. Und dann wählen wir hier Select. Lassen Sie uns das gleich benennen. Bp unterstreicht Kamerawackeln. Und dann lassen Sie uns weitermachen und die Leertaste drücken es hier zu öffnen. Wir werden einige Verwacklungseinstellungen im Detailbereich vornehmen, wo es Kamera-Verwacklungsmuster , Root-Shake-Muster heißt , Root-Shake-Muster Wir werden darauf klicken und den Wellenoszillator wählen. Jetzt werden wir das erweitern und wir haben viele Möglichkeiten , wie wir das ändern können Ich werde das abwechselnd schütteln. Sie können es ändern, indem Sie auch den tatsächlichen Standort schütteln, aber ich werde mich auf die Rotation , die Tonhöhe, das Gieren aber ich werde mich auf die Rotation , die Tonhöhe, und die Rolle für jedes und die Rolle für Ich stelle die Frequenz einfach auf fünf ein. der Kategorie Timing bestimmt das also bestimmt das die Dauer der Ein- und Ausblendzeit. Ich stelle die Dauer auf 0,3 ein. Die Einblendzeit 0,1 und die Überblendzeit werden 0,2 sein. Das ist unser Shake, der etwas kurz macht 0,2 sein. Das ist unser Shake, der etwas kurz macht und weht, den wir zum Spielen aufrufen, wenn wir auf unseren Block stampfen, Leute, das ist buchstäblich alles wir in diesem Spiel tun wollen Macht weiter, kompiliert und sagt wenn wir mit diesem fertig sind, sehen wir uns im nächsten 49. Force-Feedback-Asset: Willkommen. Ich dachte, es wäre nett, ein bisschen Force-Feedback zu haben. Das ist Controller-Grollen , wenn wir auf unserem Block anhalten. Also für diejenigen unter Ihnen, die einen Controller an Ihren Computer angeschlossen haben , bleiben Sie dran Dieses Video ist für dich. Wenn Sie nur mit Tastatur und Maus spielen möchten, können Sie diese Option gerne überspringen Unser Ziel ist es, ein benutzerdefiniertes Force-Feedback-Asset zu erstellen. Da es sich um eine Art einmaliges Asset handelt, werde ich hier keinen ganzen separaten Ordner erstellen . Sie könnten das tun, aber ich werde dieses Asset hier in unserem Block-Ordner speichern. Und um anzufangen, schreibe ich Klick auf eine leere Stelle. Wir werden unter Input fallen und einen Force-Feedback-Effekt erzeugen. Wenn wir darauf klicken, müssen wir nur einen Namen angeben. Ich werde meins anrufen, um Feedback zu erhalten. Und dann drücke ich einfach die Leertaste, um das zu öffnen. Hier werden wir hier auf unsere Kanaldetails klicken und unseren Index erweitern Und wir werden einen Kurveneditor finden. Und wie Sie bereits in diesem Kurs mit unseren verschiedenen Zeitplänen gesehen haben, werden wir unseren Zeitplänen einige Schlüsselbilder hinzufügen, um Feedback zum Wald zu definieren. Ich klicke hier einfach mit der rechten Maustaste in leere Stelle , um das ausgewählt ist, füge ich einen Zeitwert von Null und einen Wert von Null hinzu. Und dann klicke ich erneut mit der rechten Maustaste. Wir werden einen weiteren Schlüssel hinzufügen. Dieses Mal füge ich einen Zeitwert von 0,2 hinzu, sodass unser Shake nur 0,2 Sekunden dauert, und dieses Mal wird unser Wert zehn sein. Wir können uns beide hier anzeigen lassen , indem wir auf diese Pfeile klicken. Wenn Sie also möchten, dass Ihr Ruck länger anhält, können Sie natürlich mit dem Zeitwert herumspielen Und wenn Sie einen größeren Ruck haben möchten, können Sie Ihren Wert höher oder einen kleineren Wert einstellen , wenn Sie einen geringeren Ruck wünschen Und genau hier oben haben Sie Ihre Aktuatoren, die Sie in Ihrem Controller beeinflussen können Derzeit werde ich das auf ihren Standardeinstellungen belassen, also links groß, klein, rechts groß und klein Wir werden das einfach speichern. Und wenn das erledigt ist, haben wir jetzt eine Feedback-Ressource , die wir in unserem kommenden P-Block-Blueprint verwenden können , Leute , die es für diesen erledigen werden Wir sehen uns im nächsten. 50. P Blockiere Materialien und Sounds: Willkommen. In diesem Video werden wir lediglich sicherstellen, dass wir alle Audio- , Textur- und Materialressourcen eingerichtet haben Textur- und Materialressourcen , bevor wir unseren Blockplan erstellen , wie Sie in unserem Pausenvideo hier sehen können So wird ein Block aussehen. Es hat diesen bläulich aussehenden Schalter an der Oberseite und es hat diese silberne Unterseite Nur um sicherzugehen, dass wir all das haben bevor wir unseren Block-Blueprint erstellen, , bevor wir unseren Block-Blueprint erstellen, schauen wir uns an, was wir in unserem Inhaltsbrowser haben Zurück in unserem Inhaltsbrowser bin ich in unserem Audioordner und habe diesen Sumpfsound, den wir in unserem Block verwenden werden in unserem Block verwenden Stellen Sie sicher, dass Sie das haben. Stelle dann in unserem Texturen-Ordner sicher, dass du Zugriff auf den Block, den Block, der zerbrechlich ist, sowie auf eine dieser Münzen Nun, wir hätten uns bereits mit dem zerbrechlichen Block und der Münze befassen sollen, aber wir haben diesen Block noch nicht in ein Material verwandelt Das wird unser nächster Schritt hier sein. Ich werde mit der rechten Maustaste darauf klicken. Wir werden daraus ein Material erstellen. Ich werde diesen Standardnamen beibehalten. Ich werde hier einfach die Eingabetaste drücken. Und dann werde ich das in unseren Materialordner verschieben. Also werde ich es aus unserem Texturen-Ordner hier in unseren Materialordner ziehen und dort ablegen es aus unserem Texturen-Ordner hier in unseren Materialordner . Wir werden es hierher verschieben. Und dann gehe ich zu unserem Materialordner, wähle ihn aus, dann drücke ich die Leertaste, um ihn zu öffnen. Jetzt gibt es hier ein paar Dinge, die ich in unserem Detailbereich anpassen möchte . Im Mischmodus möchte ich den Wert von undurchsichtig auf durchscheinend ändern von undurchsichtig auf durchscheinend Ich möchte dieses Kästchen auch für zweiseitig aktivieren. Nachdem ich unseren Mischmodus hier durchsichtig gemacht habe, habe ich diese Opazitätseingabe auch einfach auf unserem Master-Material-Node hier verfügbar gemacht auf unserem Master-Material-Node hier verfügbar Was wir tun wollen, ist unseren Alpha-Wert aus unserer Textur zu nehmen und ihn in die Opazität einzufügen Bevor ich das mache, werde ich hier unsere Vorschau ändern. Es befindet sich derzeit auf unserer Sphäre. Ich werde es in einen Würfel umwandeln, damit Sie sehen können, wie das aussieht. Und das sieht offensichtlich schrecklich aus, oder? Sobald wir diesen Wert jedoch in die Opazität unser Alpha in die Opazität einbauen, wird es viel schöner aussehen , indem diese Streifen entfernt werden Sobald wir das im Spiel sehen, werden wir nur eine Seite davon sehen Es ist wie in einem Flugzeug. Etwas Ähnliches. Also habe ich hier einfach ein Flugzeug ausgewählt , um zu sehen, wie es aussehen wird. Toll, das ist alles schön und gut. Also fahren Sie fort und klicken Sie auf Speichern. Dann können wir hier raus. Und jetzt wollen wir ein brandneues Material kreieren. Denn wenn wir bei diesem Block anhalten, wollen wir, dass eine Art gequetschte Version davon zu sehen ist. Also wollen wir im Grunde einen Look für diesen Block haben, der etwas von dem Blau beibehält, aber wir werden keinen Buchstaben sehen und er wird wie ein Stück Blau aussehen , seit wir auf den Schalter getreten Also mach weiter und verschwinde von hier. Und zurück in unserer Materialmappe. Ich klicke mit der rechten Maustaste in eine leere Stelle. Wir werden ein brandneues Material kreieren indem wir gleich hierher kommen, ich werde es tun. Dieser Unterstrich-Block. Unterstrich blau. Lass uns weitermachen und die Leertaste drücken, um das zu öffnen. Jetzt füge ich hier einfach eine Farbe hinzu. Indem Sie die drei Tasten Nummer drei gedrückt halten und mit der linken Maustaste klicken. Dadurch entsteht ein konstanter Knoten mit drei Vektoren. setze ich gleich hier unten in unsere Emissionsfarbe Ich möchte, dass es ein bisschen leuchtet. Ich habe erneut die Drei-Tasten gedrückt gehalten und mit der linken Maustaste geklickt, um den Knoten zu öffnen Wozu das gut ist, ist, dass Sie einfach einen Farbwert eingeben können , indem Sie in den Bereich „Details“ gehen. Sie könnten auf diese Farbleiste klicken und eine solche auswählen. Ich habe jedoch einige harte Werte, die ich gerne eingeben würde, also lasse ich das R, den Rotwert, bei Null. Der Wert werde ich 0,5 sein und den Wert, den ich auf eins setzen werde , um eine Farbe zu erzeugen, die ungefähr so aussieht. Und das nennen wir vorerst gut. Wir werden in der Lage sein, in kurzer Zeit davon Gebrauch zu machen . Also werde ich weitermachen und auf Speichern klicken, und dann können wir hier schließen. Nachdem das Speichern abgeschlossen ist, sind wir jetzt in ziemlich guter Form, um mit der Erstellung unseres Blockplans zu beginnen , Leute, der wird alles für diesen erledigen, den nächsten gewinnen 51. P-Block-Blueprint: Willkommen. In diesem Video ist es unser Ziel einen Plan der Schauspielerklasse für unseren P-Block zu erstellen , mit dem wir interagieren können der andere Blöcke für eine bestimmte Zeit in Münzen verwandelt In diesem Video werden wir einfach unseren Block-Blueprint zusammenstellen unseren Block-Blueprint zusammenstellen In der nächsten Version werden wir das Scripting tatsächlich implementieren , um all diese Funktionen zu ermöglichen Um hier anzufangen, möchte ich meinen BP-Kamera-Shake, den wir im Vorfeld dieses Videos erzeugt haben, verschieben meinen BP-Kamera-Shake, den wir im Vorfeld dieses Videos erzeugt haben , Ich werde das in unseren Blocks-Ordner verschieben. Ich werde das einfach per Drag & in unseren Blocks-Ordner ziehen. Wir werden es hierher verschieben. Dann gehe ich in meinen Blocks-Ordner. Tatsächlich werde ich hier einen separaten Blockordner erstellen . Also werde ich auf meinen Blockordner klicken, neuen Ordner, ich werde diesen Block einfach nennen. Dann gehe ich in meinen Blockordner. wähle ich meinen Kamera-Shake und mein Force-Feedback, diese beiden. Und ich werde die per Drag-and-Drop da reinziehen. Wir werden sie hierher in unseren Blockordner verschieben. Ich werde klicken, wir werden eine neue Blueprint-Klasse erstellen Das wird eine Actor-Klasse sein, und ich nenne das BP-Score-Block-Underscore Dann lass uns weitermachen und hier die Leertaste drücken , um es zu öffnen Ich glaube, wir haben hier sechs Komponenten, die wir hinzufügen werden All diese werden an unsere Standardszene angehängt. Wurzel. Dieses Symbol genau hier. Stellen Sie sicher, dass alle diese Elemente an die Standard-Szenenroute angehängt sind . Wenn wir den ersten hinzufügen, wird er automatisch an diesen angehängt. Das wird also ein Flugzeug genau hier sein. Ich werde das im Detailbereich einen Block Unterstrich nennen im Detailbereich einen Block Unterstrich Ich werde gleich einige Einstellungen dafür vornehmen. Das Material, das ich dafür einstellen werde, wird unser Block-Underscore-Material sein, dieses mit dem Symbol darauf Ich werde es auch drehen und ein wenig verschieben, sodass meine Drehung hier 90 sein wird Es wird es so hochklappen. Ich werde den Standort auf 50 setzen. Ich werde es ein bisschen nach oben verschieben. Dann werde ich unten im Detailbereich unter der Kollision die Kollisions-Voreinstellung so einstellen , dass es keine Kollision ist. Ich möchte nicht, dass es zu Kollisionen kommt Als Nächstes wähle ich unsere Standard-Szenenroute aus, sodass die nächste Komponente , die ich hinzufüge, daran angehängt wird . Wir werden hinzufügen gehen. Das wird Blockkollision sein, also scrolle ich weiter nach unten oder Boxkollision, nicht Blockkollision, Boxkollision. Ich werde diesen Namen einfach als Box belassen. Und wenn dies im Detailbereich ausgewählt ist, werde ich hier die Größe meiner Box festlegen. Ich werde das auf 42 mal 42 mal 100 einstellen. Noch einmal, ich habe all diese Werte im Voraus bestimmt . Die Kollisionsvoreinstellung für dieses Scrollen nach unten wird die Voreinstellung Alle Kollisionen blockieren sein Stellen Sie diese Option ein, um alles zu blockieren. Als Nächstes wählen wir erneut unsere Standard-Szenenroute aus. Wir werden eine Komponente hinzufügen. Das wird ein statisches Netz sein. Ich nenne das einen Block Underscore, Underscore Base, Underscore Smashed Das wird ein Zylinder drüben im Detailbereich sein. Suchen Sie nach einem Zylinder. Und ich mache das mit unserem Motor, Basic Shapes. Es hat die ungefähre Größe von 100 mal 100 mal 100. Also werden wir das einstellen. Ich möchte die Position dafür festlegen, die Z-Position auf 7,85. Ich werde die Skala auf 0,92 im X setzen . Ich werde tatsächlich verschiedene Werte für all diese haben, um deine Skala hier freizuschalten Auf diese Weise können wir für jedes Feld eindeutige Werte festlegen. Es wird 0,92 mal 0,92 sein, bei 0,15 wird es etwas Zerbrochenes sein , das so aussieht Und ich werde das Material hier so einstellen, dass es eine verchromte Kugel ist, hier etwas Glänzendes Diese Chromkugel sollte im Rendering-Bereich einfach gut funktionieren. Dafür werden wir diese sichtbare Checkbox ausschalten. Das bedeutet, dass wir dieses Spiel erst sehen können, wenn wir es sichtbar machen. Was im Wesentlichen passieren wird, ist, dass wir, sobald wir diesen Blockschalter betätigen, ihn wieder erscheinen lassen Okay, als Nächstes wählen wir unseren Standard-Szenenstamm aus. Wir werden hier noch einmal eine weitere Komponente hinzufügen. Dieses wird ein statisches Netz sein und dieses wird Block, Underscore, Underscore, Top, Underscore, Smashed heißen Underscore, Underscore, Top, Underscore, Smashed diese Komponente ausgewählt ist, werden wir das statische Netz so einstellen, dass es sich ebenfalls um einen Zylinder handelt Derselbe Zylinder aus dem Grundformpfad des Motors. Und wenn Sie keinen Zugriff auf Ihren Motorordner haben, können Sie auf dieses Zahnradsymbol klicken und sich den Motorinhalt anzeigen lassen , um sicherzustellen , dass Sie sehen , dass wir das hier zu unserem Zylinder machen werden. Ich habe hier eine Größe im Kopf. Die Skala wird 0,85 mal 0,85 mal 0,1 sein , also etwas kleineres Dann werde ich auch den Z-Wert dafür auf 20 setzen , ein wenig nach oben Ich werde das Material dafür hier auch so einstellen , dass es das ist, was wir gerade erstellt haben. Es wird ein Blockunterstrich sein , dieses blaue Material So werden wir unseren Schalter im Wesentlichen aussehen lassen, nachdem wir ihn betreten haben Dies soll hier den blauen Teil dieses Schalters darstellen hier den blauen Teil dieses Schalters Ich werde auch in den Bereich Rendern kommen , wo es hier sichtbar steht. Ich werde das vorerst einfach deaktivieren , zwei weitere folgen hier. Wählen wir also unsere Standard-Szenenroute aus. Die nächste Komponente , die wir hinzufügen werden, wird Box Collision sein. Ich komme wieder einmal unter Box Collision. Dieses hier nenne ich Box Underscore Two, Box Underscore Smashed , wenn dieser Ich werde die Position auf 13 im Z setzen . Ich werde die Größe der Box hier unten auf 42 mal 100 mal 13 setzen , so etwas Kleines so etwas Das soll den Kollisionsbereich darstellen , nachdem wir den Block zertrümmert haben Sie auch unter den Kollisionsbereich und wir werden die Kollisions-Voreinstellung für diesen Bereich auf Block einstellen Eine weitere Komponente, die Sie hier hinzufügen möchten, klicken Sie auf die Standard-Szenenroute. Wir werden noch einmal hinzufügen, diese wird eine Audiokomponente ganz oben sein, Audio. Ich werde diesen Namen hinterlassen. Nein, ich werde es tatsächlich in Musik ändern. Lass es uns stattdessen in Musik ändern. Musik Wenn diese Option im Detailbereich ausgewählt ist, wir unseren Sound hier ändern, sodass er unser werden wir unseren Sound hier ändern, sodass er unser Starter-Musik-Qué ist. Wir scrollen weiter nach unten. Wir sollten unsere Starter-Hintergrundwarteschlange finden. Etwas Wichtiges, an das wir uns auch erinnern müssen , ist, die automatische Aktivierung zu deaktivieren Andernfalls werden wir das sofort hören. Unten im Detailbereich genau hier. Du hast diese Aktivierung. Sie ist automatisch aktiviert, wir möchten also nicht, dass sie sofort abgespielt wird. Also lass uns das Häkchen entfernen. Und wenn das alles erledigt ist, können wir weitermachen und kompilieren und speichern Hier sind wir fertig mit dem Zusammenstellen unserer Komponenten. Im nächsten Video werden wir das Skript hinzufügen, um diese Funktionalität für unseren P-Block-Switch zu ermöglichen diese Funktionalität für . Wir sehen uns dort. 52. P-Block-Skript (Teil #1): Willkommen. In diesem Video ist es unser Ziel, Variablen hinzuzufügen und ein Skript zu erstellen, das erforderlich ist, um markierte Blöcke in Münzen umzuwandeln. Wenn wir mit einem P-Block interagieren. In diesem Fall gibt es viel Arbeit zu erledigen. Lass uns gleich loslegen, indem wir in unseren BP-Block eintauchen. Hier werden wir drei Variablen im Bereich „Mein Blueprint“ hinzufügen Bereich „Mein Blueprint“ indem wir auf diese Plus-Schaltfläche klicken Diese erste wird Tag genannt. Der Typ wird ein Name sein. Der zweite wird Blöcke heißen. Dieser wird vom Typ Schauspieler sein. Unter den Objekttypen finden Sie die Akteur-Objektreferenz. Der dritte Typ, den wir erstellen werden, wird eine Float-Variable sein. Und wir werden das Blockzeitdauer nennen. Lassen Sie uns das in einen Float ändern. Und wenn diese erstellt sind, wir weitermachen und einige der Werte hier kompilieren und ändern, ebenso wie einige der anderen Einstellungen. Beginnend mit unserer Blockzeitdauer werde ich unseren Standardwert auf 8,08 Sekunden setzen Ich werde dieses Kästchen auch ankreuzen, damit die Instanz bearbeitet werden kann. Im Editor können wir dies also überschreiben, wenn wir dies in der Blockvariablen möchten in der Blockvariablen möchten Ich werde einfach den Variablentyp von einem einzelnen in ein Array ändern . Im Wesentlichen werden wir eine Reihe von Blöcken speichern . Welche Anordnung von Blöcken? Wir werden eine Reihe von Blöcken speichern, A Share, ein ähnliches Tag für das Tag. Wir wählen das aus und fügen im Detailbereich unter dem Standardwert das Block-Tag ein. Falls Ihnen das bekannt vorkommt, liegt das daran, dass dieser Tag-Block genau derselbe ist, den wir für verschiedene Blöcke eingegeben haben. Hier in unserem Inhaltsbrowser. Ich habe dies sowohl zu unserem Block Breakable als auch zu unserem Block Fake Breakable hinzugefügt Breakable als auch zu unserem Block Fake Breakable Wenn ich nur eines davon öffne, bei dem ich mein Level habe , habe ich einen Block, der zerbrechlich Wir können sehen, dass wir, wenn ich bei der Suche nach einem Tag in die Standardklasse gehe , ein Tag namens Blocks hinzugefügt haben Wir werden im Grunde nach allen Blöcken suchen , die dieses Tag haben, und wir werden diejenigen, die dieses Tag haben , zu dieser Reihe von Blöcken hinzufügen . In Ordnung, weiter mit unserem Drehbuch. Was wir hier tun werden, ist unsere Box-Komponente auszuwählen und wir werden schreiben, klicken Sie darauf. Wir werden ein Ereignis hinzufügen, wenn wir auf diese Komponente stoßen. Das wird uns zu unserem Ereignisdiagramm hier weiterleiten. Und wir wollen überprüfen, ob der andere Schauspieler unserem Spielercharakter entspricht. Ich werde auf Spielercharakter abrufen klicken. Okay, also wenn das wahr ist, stecken wir das in einen Zweig ein die B-Taste gedrückt und klicken mit der linken Maustaste. Wenn das stimmt, werden wir auch herausfinden , ob wir das auf eine bestimmte Art getroffen haben. Also werden wir tatsächlich überprüfen , ob hier zwei Dinge wahr sind. Lass mich das einfach unterbrechen. die Alt-Taste gedrückt halten und mit der linken Maustaste klicken, werden wir einige Informationen darüber extrahieren , wie wir das Kästchen gedrückt haben. Und das kann ich tun, indem ich aus unserem Hit-Output-Pin herausziehe. Ich habe dieses Break-Hit-Ergebnis. Ich werde das erweitern und wir werden die Wirkung bewerten, wenn der normale Zug von hier weggezogen wird Wirkung bewerten, wenn der normale Zug von hier weggezogen , und ein Gleichheitssymbol eingeben. Wir werden überprüfen, ob unser Einfluss dieses Felds in Z-Richtung einen negativen Wert von Eins hat. Im Wesentlichen überprüfen wir hier , ob wir, wenn wir dieses Kästchen getroffen haben, es in Abwärtsrichtung beeinflusst haben? Setzen Sie diesen Wert hier, einen Z-Wert auf einen negativen Wert. Wir werden das überprüfen. Wir wollen herausfinden, ob das auch stimmt. Dies ist ein Toleranzwert. Ich werde das nur auf einen sehr kleinen Wert setzen. Ich werde es einfach auf 2,01 setzen und wir werden überprüfen, ob beide wahr sind Ich ziehe hier raus und tippe ein und suche nach einem Und-Goldbarren und ich stecke das auf der anderen Seite Und dann werden wir den Ausgang davon in unseren Zweigknoten stecken davon in unseren Zweigknoten Also überprüfen wir im Grunde, hey, ist etwas auf unsere Box gestoßen? Mal sehen, war es unser Spielercharakter? War das der andere Schauspieler, der es geschafft hat? Und oh übrigens, haben sie es in abwärts gerichteter Richtung getroffen ? Haben sie damit aufgehört? Wenn beides zutrifft, wollen wir etwas tun. Das erste, was wir tun werden, ist den Charakter zu starten. Dies ist eine Funktion, die für einen Charakter spezifisch ist. Also ziehe ich aus unserer Option Spielercharakter abrufen heraus und tippe Launch ein und du wirst diese Funktion finden , wenn du aus deinem Get-Player-Charakter herausziehst . Der Grund, warum wir das tun werden, ist, dass wir den Charakter nur ein bisschen auftauchen lassen, wenn er darauf herumtrampelt Es wird sie nur ein bisschen in Z-Richtung auftauchen lassen ein bisschen in Z-Richtung werde das auf 400 setzen und ich werde hier einen Knoten für die Umleitung einfügen, damit wir ein aussehendes Diagramm nicht desorganisieren müssen ein aussehendes Diagramm nicht desorganisieren müssen Okay. Dann, gleich danach, werden wir das in einen Sequenzknoten stecken, S-Taste gedrückt halten und mit der linken Maustaste klicken. Der Grund, warum ich eine Sequenznotiz einfüge, ist, wir wollen, dass hier eine Vielzahl von Dingen passiert. Die Sequenznotiz wird uns helfen, alles zu organisieren. Also werde ich ein paar Mal auf diesen Anzeigen-Pin klicken , um weitere Ausgangspins hinzuzufügen. Okay, das Erste, was ich mit unserem Null-Pin machen möchte , ist, rechten Maustaste zu klicken und einen Sound abzuspielen. Spielen Sie Sound zwei D ab, und der Sound, den ich abspielen möchte, indem ich auf dieses Sound-Drop-down-Menü klicke, wird unser Thwamp-Sound sein Danach ziehe ich den Spawn-Emitter heraus und tippe ihn an der Wenn Sie ein Nagra-Partikel erstellen möchten, wäre es das Spawn-System Das Partikelsystem , das ich hier verwenden möchte, heißt Pot Das ist aus dem Infinity Blades Pack, das ich zu Beginn des Kurses hinzugefügt habe. Jetzt muss ich dem einen Standort geben, ganz einfach. Wir können hier eine unserer Komponenten auswählen , aus der das generiert werden soll. Ich wähle hier meinen blockbasierten Smash, ziehe ihn rein, wir ziehen ihn raus und sagen, den Standort der Welt ermitteln Die Position dieser Komponente ist der Ort, an dem wir in diesem Emitter spawnen Was ich auch tun möchte, ich möchte sofort Musik spielen Ich ziehe unsere Musikkomponente rein, dann ziehe ich von hier ab, tippe einfach Play ein. Wir wollen das von Anfang an abspielen, also lasse ich die Startzeit außer Acht. Das ist das Erste , was ich tun möchte. Sobald wir auf unserem Block stehen bleiben, klicken Sie mit der linken Maustaste und ziehen Sie, tippen Sie auf die Taste. Ich werde sagen, das ist unser Block. Hoppla, blockiere das X-Skript. Es wird gut genug sein, dieses Schwarz zu färben. Okay, das ist gut und organisiert. Die zweite Sache, die ich machen möchte , ist, ein paar Kamerawackel - und Force-Feedback-Effekte abzuspielen . Dafür ziehe ich die Maus runter und tippe World Camera Shake abspielen“ innerhalb meiner World Camera Shake ein. Klicken wir darauf und schon haben wir unseren BP-Kamera-Shake. Übrigens, bevor ich es vergesse, eines habe ich vergessen, als ich unseren World Camera Shake Blueprint erstellt habe unseren World Camera Shake Blueprint erstellt Lassen Sie uns weitermachen und sofort zu diesem Thema navigieren. Das bringt dich dahin , wo das ist. Ich drücke die Leertaste, um unsere Kamera wackeln zu lassen Ich werde den kompletten Blueprint-Editor auf der rechten Seite unter unseren Kamera-Shake-Parametern öffnen . Ich habe vergessen, einen Rotationsamplituden-Multiplikator hinzuzufügen, dieser ist derzeit Null. Stellen Sie das auf eins ein und speichern Sie es dann. Das brauchen wir, um die Kamerawackelung zu sehen , die unter Root , Shake, Rotation, Rotation, Amplitude und Multiplikator Stellen Sie das auf eins ein. Wenn wir zurück zu unserem Block gehen , wird das unser Kamerawackeln sein. Ich muss ein Epizentrum angeben. Ich klicke mit der rechten Maustaste auf Spielercharakter abrufen. Wir werden diesen Typ bei der Suche nach dem Standort des Schauspielers in die Länge ziehen . Das wird unser Epizentrum sein, der innere und äußere Radius Wir werden das auf 1.000,2 Tausend setzen. Sie können anhand der QuickInfos genau angeben oder verstehen , was diese genau kurz zu machen , bei einigen Tests habe ich festgestellt, dass dies angesichts meiner Kameraeinstellungen ein guter Bereich ist, um diesen Weltkamera-Shake abzuspielen. Ich werde den Rest dieser Parameter unverändert lassen. Das wird unsere Kamera wackeln lassen. Als Nächstes klicke ich mit der rechten Maustaste und hole den Player-Controller. Wenn wir dann aus unserem Player-Controller herausziehen, ist das nur für euch Controller-Leute. Ein physischer Controller. Ich werde spielen, um Feedback zu erhalten. Wir werden das Feedback von Kunden erzwingen. Das ist der Knoten, nach dem wir suchen. Auch hier gilt: Wenn du mit Maus und Tastatur spielst , kannst du das weglassen Aber für diejenigen unter Ihnen, die einen Controller angeschlossen haben, ist dies ein netter Slot in unserer Force-Feedback-Anlage Und da haben wir es mit diesem kleinen Drehbuch. Ich werde das einfach weitermachen , die Taste von meiner einen Stecknadel hier drüber drücken. Das wird mein Script für Kamera-Shake und Force-Feedback heißen . Ich färbe das auch schwarz. In Ordnung, habe das Drehbuch fertig gemacht. Pausiere das Video hier, falls nötig. Als Nächstes bringen wir unsere Sequenznotiz hierher , um auf den dann zwei Pins hier aufzubauen. Wir werden unsere beiden Blockmaschen auswählen. Ich werde beide hervorheben, indem ich die Steuerung verwende und sie anklicke. Ich werde sie hier nach unten ziehen, damit ich einen Verweis auf beide habe. Dann können wir aus einem von beiden herausziehen und ich kann festgelegte Sichtbarkeit eingeben. Und wir können sie beide hier anschließen. Stecken Sie das auch hier ein, wir werden sie sichtbar machen. Wir werden hier im Wesentlichen ein bisschen visuell tricksen. Wir haben sie hier in unserem Viewport unsichtbar gemacht. Wenn Sie sich daran erinnern, dass wir sie unten im Rendering-Bereich unsichtbar gemacht haben, sobald wir damit aufhören, werden wir sie sichtbar machen Zurück zu unserem Event-Graph wollen wir auch unseren Block und unsere Box, diese beiden Komponenten, nehmen und sie hineinziehen. Wenn Sie von einer der beiden Komponenten wegziehen, können Sie int eingeben Wir wollen diese beiden Komponenten zerstören. Wenn ich zu unserem Standpunkt zurückkehre, zu unserem Block, werden wir im Grunde diese Komponente zerstören Wir werden hier unseren Box Collider zerstören. Wir zerstören die beiden und lassen sie dann auftauchen Es ist also ein kleiner visueller Taschenspielertrick , wenn Sie Klicken und ziehen Sie mit der linken Maustaste und tippen Sie auf die Taste. Das wird unsere Show sein. Lass mich das drüber ziehen, damit du siehst, was ich hier drucke. Zeige Netze und zerstöre Komponenten. Das machen wir mit diesem Teil des Skripts. Dann werden wir den Sound runterschalten und auf unseren damals drei Pins aufbauen. Hier fangen wir an zu erkennen , welcher unserer Blöcke das Tag hat. Bringen wir hier unsere Variable ein. Das werden wir uns holen. Wir werden das damit verbinden , alle Schauspieler mit Funktion zu bekommen . Das bedeutet , dass alle Schauspieler, die diesen Tag haben, mit all unseren Out-Schauspielern zurückgegeben werden. Wir können sie in unserer Liste speichern. Wir werden sie in diesem Block-Array speichern. Wir können es also direkt hierher ziehen und dort ablegen. Alle Blöcke in unserem Level , die dieses Block-Tag haben, werden alle gefunden. Es wird sie in dieser Liste speichern. Und dann ziehen wir uns von hier für jedes Element in unserer Liste jeweils eine Vierer-Schleife ein. Stellen Sie sicher , dass Sie das auch anschließen. Für jeden Artikel in unserer Liste ziehen wir ihn hier raus und werfen ihn auf unsere BP-Blockbasis. Wir werden die Funktion innerhalb unseres BP-Blocks aufrufen , Basisblock aktiviert. Lassen Sie uns für einen Moment wieder hier oben sein. Ich habe mir angesehen, dass einige unserer Blöcke dieses Block-Tag haben. Wir finden sie im Grunde alle und stellen sie in dieser Liste wieder her. Was wir dann tun, ist, unsere Liste hier nacheinander durchzugehen . Und für jeden von ihnen überprüfen wir, ob er zur Blockbasis gehört. Ist das das Elternteil unserer Blöcke hier? Lass mich gehen und unsere Blockbasis hier öffnen. Hier ist unsere Blockbasis. Hier drin, unsere Blockbasis. Wir haben diesen Block mit einer Funktion erstellt, die die Sichtbarkeit unseres Blockwürfels ausschalten wird. Es wird unseren Blockwürfel verstecken. Es wird die Kollision unseres Blockwürfels ausschalten. Und es wird auch die Sichtbarkeit des Kinderdarstellers erhöhen. Da wir nun unseren Block Breakable haben , der von unserer Blutdruck-Blockbasis erbt, wird er diese Auswirkungen auf die Kinder unserer BP-Block-Blockbasis übertragen die Kinder unserer BP-Block-Blockbasis Auch hier erbt Block Breakable von unserer BP-Blockbasis innerhalb unseres Blocks P, indem wir sagen: Hey, lasst uns herausfinden, ob unsere Array-Elemente von dieser Art BP-Blockbasis Hey, lasst uns herausfinden, ob sind Wenn sie es sind, ja, führe diese Funktion genau hier aus, um den Block auszublenden und die Sichtbarkeit des darin enthaltenen untergeordneten Schauspielers einzuschalten des darin enthaltenen untergeordneten Schauspielers Das ist es, was hier vor sich geht. Machen Sie einen Linksklick und ziehen Sie mit der Maus herum. Tippen Sie auf die Taste. Dies wird mein dreipiniges Skript sein, das sagt, finde alles mit Block-Tag und schalte Funktion ein, die im übergeordneten Block gefunden wurde. Der übergeordnete Block ist unsere BP-Blockbasis. In Ordnung, wir werden auch diesen Block umdrehen. 53. P-Block-Skript (Teil #2): Noch ein bisschen Skript hier. Ich muss noch einen Stift hinzufügen. Das wird ein wichtiger Punkt sein wir hier in die Länge ziehen werden. Und wir werden den eingestellten Timer für das Ereignis eingeben . Wir ziehen von diesem Event-Pin rückwärts ab. Und wir werden ein benutzerdefiniertes Ereignis einführen. Wir werden dies unsere Blockzeit für ein benutzerdefiniertes Ereignis nennen . Und das wird ausgelöst, wenn unsere Zeit hier abläuft Unsere Zeit wird durch diese Variable bestimmt , derzeit 8 Sekunden. Sobald wir bei diesem Block anhalten, wir unter anderem werden wir unter anderem einen Timer einstellen , der 8 Sekunden lang sein wird . Nachdem dieser Timer abgelaufen ist, werden wir dieses benutzerdefinierte Ereignis starten. So funktioniert das. Wir ziehen das hier raus und tippen in jeder Schleife vier ein. Die Schleife, die wir durchlaufen werden, sind unsere Blöcke. Der Drache, lass das hier fallen. Für jeden unserer Blöcke werden wir noch einmal auf Blockbasis werfen. Wir werden dann herausfinden , ob der Block in der Liste gültig ist, ob er gültig ist, weil wir die Münze in den Block hätten stecken und diesen Block somit komplett zerstören können . Wenn der Block noch gültig ist, also wir die darin enthaltene Münze nicht eingesammelt haben, ist er immer noch da, er existiert immer noch, er ist immer noch gültig. Wir ziehen uns dann von hier weg und sagen Block ab. Wir werden jeden Block aufrufen, der noch existiert, wir werden die Funktion Block Off aufrufen , die innerhalb unserer Blockbasis die unser Blocknetz, unseren Würfel, wieder sichtbar macht . Es wird die Kollision dafür wieder einschalten und das Kind darin unsichtbar machen. Zurück zum BP-Block. Zum Schluss wollen wir noch eine Sache machen, und das ist, unsere Musik einzubringen. Dann ziehen Sie sich davon zurück und sagen Sie, hey, hören Sie auf, diese Musik zu spielen. so willst, wird unsere Musik während der Dauer dieses Block-Events abgespielt der Dauer dieses Block-Events Wenn du so willst, wird unsere Musik während der Dauer dieses Block-Events abgespielt, aber wir werden sie nach 8 Sekunden ausschalten. Wir klicken mit der linken Maustaste und ziehen und tippen auf die C-Taste. Lassen Sie mich hier ein wenig heranzoomen. Zieh den ganzen Block drüber. Sie können das einrahmen, als ob Sie das Video pausieren müssen. Das wird mein Block-Timer-Skript sein. In Ordnung. Färbe das auch schwarz. Hier ist viel los. Ich weiß, dass ich das sehr schnell durchgemacht habe, um zu versuchen, das in mein Zeitlimit von 20 Minuten pro Video einzupassen . Das wird unser letztes Setup hier sein. Offensichtlich müssen wir das testen. Also haben wir unser Skript kompiliert. Es sieht gut aus. Wir haben es gerettet. Was ich jetzt tun werde, ist unseren Block reinzubringen. Ich werde das per Drag-and-Drop auf unser Level ziehen. Ich werde die Taste drücken, um es aufzuhängen. Beachten Sie, dass ich in meinem Level 12.3 drei Blöcke habe, in denen sich eine Kindermünze befindet. Wenn ich damit aufhöre, werden diese drei Blöcke, 12,3, zu Münzen Ich werde nur diese beiden sammeln und den Timer ablaufen lassen, sodass dieser wieder zu einem Block Bevor ich das alles mache, möchte ich darauf hinweisen, dass unser Block hier, drüben im Detailbereich, zu unserem Level hinzugefügt wurde , Sie sehen können, dass meine Blockzeit derzeit angezeigt wird. Ich könnte das also ändern , wenn ich wollte. Ich könnte diese Standardeinstellung überschreiben. Und wenn Sie ein zweites Mal davon hätten, wenn ich die Alt-Taste gedrückt halte, mit der linken Maustaste klicke und ziehe, könnte ich einen anderen Wert dafür festlegen Sie müssen nicht beide 8 Sekunden lang sein. Sie können sie so ändern, wie Sie es möchten. Lass uns weitermachen und uns hier einen kurzen Überblick geben. Sobald ich auf diesen Block trete. Musik ändert sich. Ich sehe, wie aus diesen Blöcken Münzen wurden. Ich sammle die beiden sofort ab. Ich lasse den Timer bei dem letzten ablaufen. Sie können sehen, dass ich den neuen Blockschalter betätigen kann , der aussieht, als wäre er kaputt gegangen Dieser wurde tatsächlich wieder in einen Block umgewandelt. Stellen wir sicher, dass diese tatsächlich unsichtbar sind und das sind sie Ich kann immer noch einmal mit diesem interagieren und dann die Münze darin einsammeln usw. Okay, das ist alles schön und gut. 54. P-Block-Fehlerbehebungen (Teil #1): Bei der Spieleentwicklung laufen die Dinge nie zu 100% nach Plan. Und so ist auch bei unserem Block etwas schief gelaufen bei unserem Block etwas schief Wir haben ein paar Fehler , die wir beheben müssen , bevor wir weitermachen Und Sie können tatsächlich einen der Fehler genau hier in unserem perspektivischen Viewport sehen. Und das heißt, wir haben unseren Kinderschauspieler, unsere Münze ist in diese Blöcke eingebettet erstreckt sich über unseren Block hinaus. Das ist also ein Problem. Und lassen Sie mich einfach einspringen und hier ein paar Probleme aufdecken nur um damit zu prahlen , dass die erste dieser Münzen für Kinderdarsteller sich darüber hinaus erstreckt, ich habe diese Blöcke tatsächlich überwunden. Sie können oben links sehen, dass ich gerade dabei bin, diese Münzen zu sammeln. Das ist nicht wie gewünscht. Ein weiteres Problem ist, dass, wenn ich bei diesem P-Block anhalte, das eigentlich auch nicht die Musik ist, die ich spielen lassen wollte. Also hier einige Probleme, die geklärt werden müssen, bevor wir weitermachen. Okay, lass uns in unseren BP-Block springen. Ein paar Dinge , die ich hier aufräumen möchte. Dieser erste ist hauptsächlich kosmetisch, weil er gut funktioniert. Unsere Box-Komponente hier, die Sie sehen können, habe ich in meinem Viewport, sie erstreckt sich tatsächlich auch ein bisschen unter den Boden Das ist wirklich nicht nötig. Also alles, was ich hier tun werde, ist meine Box-Ausdehnung Z im Detailbereich zu ändern . Ich werde das auf 50 ändern, aber dann werde ich es auch um 50 in Z-Richtung erhöhen Das wird uns im Grunde das gleiche Ergebnis bringen ohne dass es irgendwie unbeholfen Das ist also Problem Nummer eins. Ich wollte einfach aufräumen. Die zweite, die ich bereinigen wollte, ist unsere Musik unsere Audiokomponente namens Music Over im Detailbereich Ich habe sie versehentlich auf den Starter-Hintergrund-Cue eingestellt. Ich habe den ersten Teil richtig verstanden, aber was ich hier einbauen wollte , war Starter-Musik. Ich habe dieses Starter-Musiksignal. Das hätte es sein sollen. Also stell sicher, dass du weitermachst und das aufräumst. Nun, ein weiterer Fehler , den ich beim Testen gefunden habe , ist in unserem Event-Graph, der von unseren damals vier Pins unseres Sequenzknotens herrührt. Ich habe diesen Block-Timer so eingestellt, dass, wenn die Zeitdauer abgelaufen ist, Blockzeit vorbei ist. Wir überprüfen, welche Akteure noch in unserem Block-Array existieren. Und wenn sie noch gültig sind, schalten wir die Blockeffekte genau hier aus. Und das ist ein Sprung auf unsere BP-Blockbasis. Ich doppelklicke einfach darauf, um dorthin zu springen , und das ist in Ordnung. Aber wenn in dieser Liste keine Blöcke mehr gültig sind , hört die Musik nicht wirklich auf. Also, was ich hier eigentlich machen möchte, ist es so zu machen , dass unabhängig davon, ob es Blöcke in dieser Liste gibt, ob es Blöcke gibt, die gültig oder nicht gültig sind, ich die Musik beenden möchte. Das würde passieren , wenn ich hier in unserem Block anhalten und dann Münzen sammeln würde, 12.3, wenn ich sie alle gesammelt hätte Was dann passieren würde, ist, wenn die Blockzeit abgelaufen ist, würde die Musik weiterlaufen indem man das Ganze abschalten würde. Auch das ist nicht gültig Wir sorgen dafür, dass diese Musik aufhört, egal was passiert, also stellen Sie sicher, dass Sie das auch umsetzen Damit werde ich kompilieren und speichern. Als Nächstes werde ich mich mit dem Problem befassen unsere Kinderdarstellermünze quasi über unseren Block hinausgeht. Das Problem dabei ist innerhalb unserer BP-Pick-Up-Münze, wir haben hier einen Kugelradius von 75, was viel größer ist, als er sein müsste. Und das ist der Grund, warum wir diese Münze einsammeln können , wenn sie als Kinderdarsteller für einige unserer Blöcke hier eingesetzt wird als Kinderdarsteller für einige unserer Blöcke hier Lassen Sie mich weitermachen und unseren Block hier und hier auswählen , der zerbrechlich In unserem Block Breakable , der von unserer Blockbasis geerbt wird, soll unser Kinderdarsteller unsere BP-Münze sein. Um dieses ganze Problem zu verhindern, müssen wir es so gestalten , dass unser Radius für unsere BP-Münze , die wir als Kinderdarsteller einsetzen , einfach viel enger ist Lassen Sie uns also weitermachen und das tun. Das wird einfach genug sein. Statt 75 werde ich es auf 30 ändern, was mir ein bisschen zu eng erscheinen wird. Aber das liegt wirklich nicht daran, dass die Kapselkomponente, die unseren Charakter umgibt , ein bisschen hervorsticht. Das wird also ziemlich gut sein. Denken Sie jetzt an unseren Zylinder selbst, den wir auf die Seite gedreht haben, ohne dass es zu einer Kollision gekommen ist, sodass wir uns keine Sorgen machen müssen, dass wir darauf stoßen Also eine Kugel hier von 30, das wäre ein ordentlicher Radius Also kompilieren und speichern Sie das. Ich möchte, dass dieser Radius auch unserem BP Block Coin Collider-Radius entspricht unserem BP Block Coin Collider-Radius Wenn Sie jetzt unseren Coin Collider-Radius innerhalb unseres BP-Blocks vergessen haben , wird er verwendet, um den gesamten Akteur zu zerstören Der einzige Weg, wie wir das wirklich jemals überlappen können , ist, wenn wir den P-Block getroffen haben und somit den eigentlichen Block selbst versteckt haben und wir den mittleren Teil überlappen Lassen Sie uns also weitermachen und den Radius der Coin-Collider-Kugel hier ebenfalls auf 30 setzen Radius der Coin-Collider-Kugel hier ebenfalls auf 30 Wenn wir ihn bei 35 belassen würden, würden wir diesen Wert überlappen, bevor wir die Münze selbst überlappen würden heißt, wir würden den Block zerstören , bevor wir die Münze aufheben könnten. Indem wir beide auf 30 gleich setzen. Das bedeutet, dass wir gleichzeitig die darin enthaltene Münze aufheben und den gesamten Block selbst zerstören. In Ordnung, lass uns weitermachen und das kompilieren und speichern. Wenn wir jetzt reinspringen und spielen, renne ich zuerst über den oberen Teil, nur um sicherzugehen, dass wir uns nicht überlappen und sammle die Münzen auf, die in einigen dieser Blöcke vergraben sind. Und das sieht alles schön und gut aus, dann lass uns weitermachen und bei unserem Block hier anhalten. Ich werde das Recht haben. Musikplan. Ich werde hier einfach ein paar Münzen einsammeln , wenn der Timer abgelaufen ist. Hier gibt es nichts, womit ich kollidieren könnte. Ich sollte immer noch damit kollidieren können und alles scheint wieder zu funktionieren Die Musik ist auch ausgegangen. 55. P-Block-Fehlerbehebungen (Teil #2): Ordnung, noch ein paar Dinge, die wir hier reparieren werden und die in tangentialer Weise mit unserem Block zusammenhängen Einige von Ihnen haben zweifellos schon bemerkt, dass wir unsere Blockaden immer noch durchbrechen können , selbst wenn wir so klein sind Und das ist nicht wirklich so geplant. Wir wollen es so machen, dass wir unsere Blöcke nur durchbrechen können , wenn wir groß sind. Nun, das wird auch hier ins Spiel kommen, denn wir werden unseren zerbrechlichen Blöcken ein Skript hinzufügen unseren zerbrechlichen Blöcken ein Skript , damit wir sie nur brechen können, wenn wir groß sind Und nachdem wir diesen ersten Teil des Skripts hinzugefügt haben, werden Sie einige andere Probleme im Zusammenhang mit unserem Blocksystem feststellen im Zusammenhang mit unserem Blocksystem Nachdem das alles geklärt ist, springen wir zu unserem zerbrechlichen Block und fügen hier ein bisschen Skript Wir werden hier ein kleines Skript zwischen unserem Event-Trefferblock und unserem Sequenzknoten hinzufügen . Und zum Glück werden wir in der Lage sein für einiges davon eine Abkürzung zu Aber diesen ersten Teil müssen wir neu schreiben. Also werde ich die Steuerung gedrückt halten und nach oben zoomen. Als erstes möchte ich mit rechten Maustaste in eine leere Stelle klicken. Wir werden einen Spielercharakter bekommen und dann ziehen wir das Ganze in die Länge und wir werden zwei Charaktere aus der dritten Person casten. Der Grund, warum wir das machen werden, lassen Sie uns das so zusammenfassen, ist, dass wir innerhalb unseres Charakters aus der dritten Person eine Variable haben, die Trefferpunkte genannt wird. Lassen Sie uns also hier rausziehen und die Trefferpunkte eintippen. Wir werden diesen Wert und ihn dann auswerten. Also werde ich mich hier hinziehen und sagen, ob unsere Trefferpunkte größer oder gleich zwei sind. Ich habe nicht vor, dass wir zwei Trefferpunkte überschreiten, null Trefferpunkte, dann bist du tot Ein Trefferpunkt, du bist klein. Zwei Trefferpunkte, du bist groß, du hast Fire Flower Power. Aber wir sagen, wenn du darüber liegst, weißt du, wenn du einen dritten, vierten, fünften Trefferpunkt hinzufügen willst , könntest du das tun. Also werde ich die B-Taste gedrückt halten und mit der linken Maustaste klicken und wir werden das als unsere Bedingung eintragen. Also, wenn unsere Trefferpunkte größer oder gleich zwei sind, werden wir sagen, ja, wenn du groß bist, werden wir den Block durchbrechen und all diese Dinge machen. Das ist alles schön und gut. Was ist jedoch, wenn wir nur einen Trefferpunkt haben, also nicht größer oder gleich zwei sind ? Was machen wir dann? Was wir aus diesem falschen Zweig aufbauen wollen. Also das Erste, was wir tun werden, ist hier etwas mehr Platz zu schaffen. Und ich werde das anziehen. Und dann werde ich in meinen Inhaltsbrowser springen und Code aus unseren BP-Blockcoins stehlen . Also mach weiter und tauche hier ein und wir werden diesen Block und eine Reihe von Skripten stehlen. Linksklick und Drag, Strg C, zurück in unseren Block Breakable Und ich werde auch V von unserem falschen Zweig aus kontrollieren auch V von unserem falschen Zweig aus Wir werden diese Blockanimations-Timeline abspielen. Aber bevor wir das tatsächlich machen, möchte ich auch hier einen Sound reinbringen. Lassen Sie uns unseren falschen Branchtyp im Spiel wegziehen. Sound Two D, ich werde sagen, wir werden den Brick Bump Sound spielen den Brick Bump Sound Dann spielen wir von Anfang an unsere Timeline ab. Diese Zeitlinie wird es einfach so machen, dass wir unsere Würfelkomponente in Z-Richtung ein wenig nach oben bewegen. Wir werden auf sie stoßen, anstatt sie gleichzeitig zu zerstören Wir werden diesen Sound auch hier spielen. Ich sage, der Spieler ist klein, zerstöre den Block nicht. Okay, also wir werden hier das kleine Skript hinzufügen , das aus dem falschen Zweig hier stammen wird. Stellen Sie sicher, dass Sie kompiliert und gespeichert haben und noch etwas anderes, das ich tun möchte, während wir hier sind. Das wird auch nur der Optik halber sein. Ich werde hier raufkommen, ich möchte eigentlich die V-Effekte ändern , die mit dem Durchbrechen unseres Blocks verbunden sind. Ich habe tatsächlich einen gefunden, der mir ein bisschen besser gefällt. Und dafür werden wir diesen Offset hier eigentlich nicht benötigen. Also werde ich das loswerden und ich werde es hier so einstecken. Und das V-Effekt-Partikel, das ich abspielen möchte, könnte ich auch hier einbauen. Allerdings werde ich in Kürze etwas an unserer BP-Blockbasis arbeiten , damit wir es dort einbauen können. Und dann wird es diese Änderung auf diesen untergeordneten Block übertragen diese Änderung auf diesen untergeordneten Block Also werde ich hier sofort unsere BP-Blockbasis öffnen , weil wir sie hier in nur einem Moment brauchen werden. Öffnen wir das. Und hier in meiner BP-Blockbasis wähle ich meinen Interact VFX-Partikel Und hier werden wir unser Partikel im Detailfenster so ändern , dass es gemischt werden soll Dass ich dieses gemischte Set habe , ein großes, das gefällt mir sehr gut. Beachten Sie also, dass wir es hier in unserer Blockbasis platziert haben. Wenn ich kompilieren und speichern und jetzt zu unserem BP-Block Breakable zurückkehren würde , der ein untergeordnetes Element unserer BP-Blockbasis ist Wir können sehen, dass sich diese Änderung jetzt verbreitet hat. In Ordnung, damit sollten wir testen können, ob dieser Block zerbrechlich ist oder nicht Und dann werden wir uns mit einigen der Blockauswirkungen dessen befassen , was wir gerade hier getan haben Also werde ich auf Play klicken. Kann ich diesen Stein brechen? Nein, ich kann nicht. Jetzt siehst du die Auswirkungen des Blocks Ich kann die Münze darin sehen. Damit werden wir uns gleich befassen. Versuchen wir es jedoch jetzt. Nochmals, wenn ich jetzt ein bisschen bin, werden wir einen etwas explosiveren Effekt haben , wenn ich diesen Stein zerbreche. Und das sieht gut und gut aus. Ordnung, als Nächstes wollen wir uns mit dem Problem befassen , die Münze hier auf der Innenseite unseres Blocks zu sehen. Nun, der Grund, warum wir diese Münze gesehen haben , liegt in unserer BP-Blockbasis. Wir haben unseren Kinderdarsteller gleich hier drüben. Hier haben wir tatsächlich die Münze in unsere Kinderdarsteller gesteckt Lassen Sie mich einfach zu BP Block Breakable Child Actor übergehen. Sie können sehen, dass wir dort unsere BP-Pick-Up-Münze einwerfen Aber hier in unserer Basis, unserer BP-Blockbasis, und wieder erbt unser Block Breakable von unserer BP-Blockbasis Gehen Sie weiter und wählen Sie Ihren Kinderschauspieler aus. Und im Detailbereich möchten wir sicherstellen, dass dies standardmäßig nicht sichtbar ist. Ich habe vergessen, dieses Kästchen hier zu deaktivieren. Darüber hinaus möchte ich es jetzt auch so gestalten, dass möchte ich es jetzt auch so gestalten, dass unser Kinderdarsteller an unserem Würfel selbst befestigt ist Wenn wir also unseren BP-Block zerbrechlich machen, wenn wir klein sind, wird auch unser Kinderdarsteller im Münzbeschleuniger gebremst Sie bewegen sich nach oben, wenn wir auf den Würfel treffen, also werde ich mit der linken Maustaste klicken und ihn nach rechts über unseren Würfel ziehen rechts über unseren Und so siehst du jetzt unsere Beziehung als solche. Wir haben unseren Würfel, das ist unser Block hier, der Kinderdarsteller ist daran befestigt. Und dann ist unser Coin Collider, mit dem wir tatsächlich den gesamten Block zerstören , wenn wir uns überlappen , der an unserem Kinderschauspieler befestigt ist Lassen Sie uns also weitermachen und diese Art von Beziehung hier kompilieren und speichern diese Art von Beziehung hier Da das daran angehängt ist, was damit verbunden ist, sollten wir auch sehen, dass unser BP-Block zerbrechlich ist, jetzt, wo wir kompiliert und in unserer Datenbank gespeichert haben, und das ist, machen wir weiter und speichern auch unseren Block breakable Wenn ich jetzt zurück in mein Level springe, lass uns weitermachen und hier spielen Beachten Sie, dass ich klein bin, ich springe gleich nach oben. Ich belle das hoch. Ich sehe die Münze nicht auf der Innenseite. Das ist wie beabsichtigt. Großartig. Ich werde hier in meinem Block anhalten. Jetzt. Ich sehe die Münzen. Ich kann sie sammeln. Ich lasse den nicht abholen, bis der Timer abgelaufen ist und ich kann mich gleich wieder darauf einlassen Also noch ein paar Bugs behoben. Eine weitere Sache sollte ich erwähnen, nachdem wir diese Partikeländerung innerhalb unserer BP-Blockbasis hier vorgenommen haben, nachdem wir diese Änderung vorgenommen und wir kompiliert haben und gesagt haben, dass sich diese Änderung auf alle untergeordneten Blöcke übertragen hat, was Sie, wie ich weiß, vielleicht nicht in Ihren verschiedenen untergeordneten Blöcken haben möchten Wenn Sie dies also hier in Ihrer Blockbasis festgelegt haben , sollten Sie zunächst Ihre verschiedenen untergeordneten Blöcke durchgehen , z. B. Ihre unsichtbare Münze, Ihre BP-, Q-Münze usw. Und wenn du sie öffnest und unter die Klassenstandards gerätst, kannst du diese interagierenden VFX-Partikel einfach löschen , sodass du nicht diesen riesigen Breaking-Effekt beim Spielen hast Breaking-Effekt Außerdem habe ich vergessen, innerhalb unseres BP-Blocks zu erwähnen, vorgetäuscht ist. Vielleicht möchten Sie diesen Offset, den wir hier drin hatten, entfernen Ich habe das hier zwischen den Takes gemacht, also solltest du das vielleicht auch weglassen Hier bin ich damit einverstanden. Interagiere mit VFX Particle. Aber ich dachte nur, ich würde sie reinwerfen , bevor wir dieses Video beenden 56. P-Block-Skript (Teil #3): Ordnung, wir müssen noch ein Problem mit Blöcken lösen, und zwar mit unseren unsichtbaren Blöcken hier. Und wie Sie sehen können, habe ich zwei davon direkt neben diesen zerbrechlichen Ziegeln platziert Und wenn ich reinspringe und spiele, wirst du sie natürlich nicht von Anfang an sehen können sie natürlich nicht von Anfang an sehen Und tatsächlich kannst du mit ihnen interagieren, so wie ich es jetzt mit einem von ihnen tun werde . Das Problem kommt rein. Wenn ich mich jedoch einem dieser unsichtbaren Blöcke von oben nähere, falle ich durch ihn hindurch und versuche dann, mit ihm zu interagieren. Ich kann nicht. Was ist hier los? Nun, wenn ich zu meiner BP-Blockbasis zurückkehren würde, das die Blaupause , von der alle anderen Blöcke abgeleitet sind Sie haben sich vielleicht daran erinnert , dass wir in unserem Basisblock einen Kinderdarsteller in einem Coin Collider hinzugefügt einen Kinderdarsteller in unserem Basisblock einen Kinderdarsteller in einem Coin Collider Und das hatte mit dem RP-Block zu tun. Was nun in unserer BP-Blockbasis passiert, von der all unsere anderen Blöcke Code ableiten, ist, dass, wenn wir diesen Coin Collider überlappen würden, dieser Typ hier, wir den Akteur zerstören würden, also den gesamten Was passiert, ist , wenn wir durch die Oberseite unseres unsichtbaren Münzblocks gehen, lassen Sie mich einfach diesen Bauplan öffnen Da ist unser unsichtbarer Münzblock wenn wir durch die Oberseite hindurchgehen, und alles ist unsichtbar. Wir überlappen tatsächlich diesen Münzzähler, der sich in dieser Kiste befindet, zerstören so Wenn wir von oben nach unten fallen, zerstören wir tatsächlich den Akteur, was bedeutet, dass wir nicht wieder mit ihm interagieren können Wie reparieren wir das alles? Nun, die Lösung ist eigentlich ganz einfach. Stellen Sie also sicher, dass Sie in Ihren BP-Block kommen , eine unsichtbare Münze. Finden Sie das in Ihrem Inhaltsbrowser. Wir werden zum Ereignisdiagramm dieses Ereignisses übergehen . Fangen Sie an zu spielen. Wir haben die Sichtbarkeit unseres Würfels so eingestellt, dass sie unsichtbar ist. Wir werden diese beiden Knoten einfach hier sichern. Ich werde sie sogar etwas höher anheben. Ich werde direkt nach den ersten beiden einen Sequenzknoten einfügen , also werde ich die S-Taste gedrückt halten und mit der linken Maustaste klicken. Und wir werden zwei Dinge außerhalb von Event Beginplay tun. Als Erstes werden wir weiterhin unseren Würfel, den Block, verstecken , sodass er unsichtbar erscheint Das zweite, was ich tun werde, ist, einen Hinweis auf unseren Coin einzubringen , der im Grunde unser Kinderdarsteller ist, unser Coin Collider Bringen wir das auch mit rein. Wir haben beide Referenzen. Wir ziehen einfach eine davon raus und sagen dafür Komponente zerstören. Wir können im Grunde beide Komponenten zerstören , weil wir nicht versuchen, diesen unsichtbaren Stein in eine Münze zu verwandeln. Wenn wir auf dem Block anhalten, klicken wir mit der linken Maustaste und ziehen die Taste um sie herum. Und ich würde sagen, wenn Sie die Blockfunktionalität implementiert haben , wenn Sie die Blockfunktionalität implementiert haben, ist dieser Code für Sie dann wirklich wichtig? Wenn Sie das noch nicht implementiert haben, wäre das egal. Also lass uns weitermachen und das kompilieren und speichern. Und springen Sie ein und spielen Sie noch einmal, nur um Ihnen zu zeigen, dass meine unsichtbaren Blöcke genau dort sind. Ich werde genau da drin spawnen . Wie Sie sehen können, kann ich mit einem von ihnen von unten interagieren , etwa so Aber wenn ich jetzt von oben runterfalle, wird der Block nicht wirklich zerstört. Wenn ich jetzt also hochspringen würde, kann ich immer noch mit diesem unsichtbaren Block interagieren. So behebt man das Problem. Ordnung, Leute. Damit wäre alles für diesen erledigt. Wir sehen uns im nächsten. 57. Goomba Blueprint: Jetzt, wo wir ein paar Blöcke an Ort und Stelle haben, wollen wir unsere allererste Nation gründen, eine Goomba dafür, wir werden In Unreal werden wir ihm einige grundlegende Funktionen zur Verfügung stellen, damit er sich entweder nach einige grundlegende Funktionen zur Verfügung stellen, damit er sich entweder nach links oder rechts bewegen kann, anstatt gedankenlos am L zu patrouillieren oder den oder Wir werden es auch so machen, dass unsere Knödel zerstört werden können Entweder wir halten an, weil wir beim Streik einen Feuerball abgefeuert Lass uns weitermachen und anfangen. Jetzt, zurück in Unreal, solltest du diese acht verschiedenen Goomba-Bilder haben , die wir schon viel früher im Kurs importiert haben Und diese sollten in Ihrem Textures-Ordner vorhanden sein. Als Nächstes klicke ich mit linken Maustaste auf meinen Platformer-Ordner, ich klicke mit der rechten Maustaste und erstelle einen neuen Ordner, der einfach Sprites genannt wird Dann gehe ich zurück zu meinem Texturen-Ordner und wähle alle acht dieser Texturen aus Und wenn ich die Shift-Taste gedrückt halte nachdem ich hier die erste ausgewählt habe, kann ich dann die achte auswählen um alle dazwischen auszuwählen, dann kann ich mit der rechten Maustaste auf eine dieser Optionen klicken. Und dabei komme ich unter Sprite Actions, Create Sprite Damit haben wir nun acht Sprite-Assets erstellt Ich nehme einfach all diese und Sie können sehen, dass sie jetzt alle hervorgehoben sind Und ich werde sie mit der linken Maustaste klicken und sie in diesen Sprite-Ordner ziehen , den Sprites-Ordner, eher werden wir sie hierher verschieben Und wenn wir dann in unseren Sprite-Ordner gehen, können Sie sehen, dass sie alle hier existieren Als Nächstes werden wir sicherstellen, dass wir alle acht ausgewählt haben Auch hier wähle ich den ersten aus, halte die Umschalttaste gedrückt und wähle den letzten aus. Dann kann ich mit der rechten Maustaste klicken und ich möchte ein Flipbook erstellen. Ich nenne das einfach Goomba. Ich bin mir sicher, dass die meisten von Ihnen wissen was ein Flipbook ist, aber wenn ich einfach auf dieses Asset doppelklicke , um es unten zu öffnen, können Sie im Grunde sehen, dass ich alle acht verschiedenen Sprites in dieser Timeline habe alle acht verschiedenen Sprites in und dass sie schnell abgespielt Auf der rechten Seite wo wir unser Detailfenster haben, können Sie sehen, dass ich hier unsere Keyframes erweitern kann Wenn ich mit der rechten Maustaste darauf klicke, kann ich all diese erweitern. Sie können all diese verschiedenen Sprites sehen. Und es zeigt, dass es alle acht dieser Sprites in schneller Folge abspielt acht dieser Sprites in schneller Jetzt können Sie das verlangsamen oder beschleunigen, indem Sie diesen Wert für Frames pro Sekunde hier anpassen Wenn ich also so etwas wie drei einstellen und die Eingabetaste drücken würde, würden die Argumente so erscheinen, als würden sie viel langsamer laufen Das funktioniert wie ein Flipbook für Kinder. Wenn ich das beschleunige, indem ich diesen Wert auf etwa 30 setze, wird es so aussehen, als würde Argumba viel schneller gehen Ich werde das auf den Standardwert 15 zurücksetzen, aber das ist im Grunde das, was ein Flipbook ist Es ist ein Haufen von Bildern, die schnell hintereinander abgespielt werden. Das werden wir in unserer feindlichen Anlage verwenden, in unserem feindlichen Plan, um es so aussehen zu lassen , als würde Argumba Mach weiter und sag das und schließ hier wieder ab. Iss unseren Level-Editor. Ich gehe in meinen Blueprint-Ordner und suche nach etwas leerem Platz Ich klicke mit der rechten Maustaste und erstelle eine neue Blueprint-Klasse Das wird eine Charakterklasse sein, weil ich möchte, dass sich dieser Feind bewegt Das wird uns also die Fähigkeit geben ihn im Charakter zu bewegen. Und ich werde BP Underscore wählen, aber da der Name dieses Unterstrichs ausgewählt ist, drücke ich hier einfach die Leertaste, um es zu öffnen Und drüben im Komponenten-Panel werden wir damit beginnen, einige Komponenten hinzuzufügen Also, was ich zuerst tun werde, ist, die Komponenten in der richtigen Anhangsbeziehung hinzuzufügen die Komponenten in der richtigen Anhangsbeziehung hinzuzufügen Und dann gehe ich zurück und lege die Details für jeden fest Okay, der erste, zu dem ich gehe , wird hier an meine Kapselkomponente angehängt. Ich werde auf Hinzufügen klicken. Das wird Sphere Collision sein, und ich nenne das „ Meine Spielererkennungsreichweite“. Dann wähle ich erneut meine Kapselkomponente und füge eine weitere hinzu. Ich werde auf Hinzufügen klicken. Ich werde weitere Sphärenkollisionen hinzufügen. Diesen werde ich Collider nennen. Ich werde verschiedene Collider verwenden, bei denen der Spieler die Reichweite erkennt, und dieser heißt aus verschiedenen Gründen Collider und du wirst sehen wofür sie da sind und in Kürze hier Okay, wenn unsere Collider-Komponente hier ausgewählt ist, füge ich Typ im Flipbook Wir werden ein Flipbook aus Papier mit zwei D-Papieren hinzufügen. Ich lasse einfach den Namen des Paper-Flipbooks übrig. Das ist in Ordnung. Dann wähle ich noch einmal unseren Collider aus, weil ich möchte, dass eine weitere Komponente an unseren Collider angeschlossen wird noch einmal unseren Collider aus, weil ich möchte, dass eine weitere Komponente an unseren Collider angeschlossen . Klicken Sie auf Hinzufügen Das wird Box Collision, Box Collision sein , genau hier. Das wird unsere Stomp-Box sein. Wir werden das nutzen, um zu erkennen, wann unser Spielercharakter auf Argumba angehalten hat Ordnung, lassen Sie uns damit beginnen, einige Details für diese verschiedenen Komponenten anzupassen Details für diese verschiedenen Komponenten Ich fange mit meiner Kapselkollisionskomponente an. Das ist so ein kapselförmig aussehendes Ding. Ich stelle die halbe Höhe der Kapsel auf 55 und den Radius auf 45 ein. Beachten Sie nun, dass diese Komponente angibt, dass es sich um eine Spielfigur handeln wird. Ich werde nach unten zum Kollisionsbereich scrollen . Die hier voreingestellte Kollision wird Pawn sein. Sie können also sehen, dass diese Voreinstellung zwar als Bauernkollisions-Voreinstellung eingerichtet ist , ihr Objekttyp jedoch als Bauer bezeichnet wird Und was hier zur Folge haben wird, ist, dass andere Objekte, die als Bauer bezeichnet werden, damit kollidieren würden Das heißt, wenn wir mehrere dieser Gumbas hätten , würden sie quasi miteinander kollidieren Was ich nicht möchte, dass sie tun. Ich möchte, dass sie sich gegenseitig durchdringen können. Was ich hier eigentlich tun werde , ist unsere Kollisions-Voreinstellung von „Bauer“ auf „Benutzerdefiniert“ zu ändern unsere Kollisions-Voreinstellung von „Bauer“ und dann einige unserer Kollisionskanäle hier anzupassen Ich werde es so einrichten, dass alles mit Ignorieren anfängt, aber dann werde ich unsere Welt statisch und weltdynamisch einstellen unsere Welt statisch und weltdynamisch Ich werde das so einstellen , dass es blockiert wird, damit dieser Gumba nicht durch die Welt fällt Stellen Sie sicher, dass dies Ihr Kollisions-Setup für Ihre Kapselkomponente benutzerdefinierte Objekttyp ist Pawn, und dann diese verschiedenen Kanaleinstellungen genau hier. Als Nächstes wähle ich unseren Spielererkennungsbereich und den Kugelradius Dafür werde ich ziemlich groß einstellen. Ich werde das auf 2000 setzen. Und wir werden das einfach verwenden, um zu erkennen, wann unser Spielercharakter diesen Radius erreicht hat. Dann kann der Gumba beginnen , sich auf irgendeine Art, Form oder Form zu bewegen Du kannst das so einstellen, wie du willst, aber meins wird am Anfang ziemlich groß sein Okay. Als Nächstes wähle ich unsere Collider-Komponente Das ist dieser winzige Radius genau hier drin. Dafür werde ich den Kugelradius etwas größer einstellen . Ich werde ihn auf 55 einstellen, also ein bisschen größer. Und dann werde ich das in den Kollisions-Presets auch nach unten erweitern Ich werde das so ändern, dass es benutzerdefiniert ist und nicht mehr Overlap Ball, es wird benutzerdefiniert sein Ich werde das so einstellen, dass es für alles blockiert wird, außer dass ich es so ändern werde , dass Spielfiguren, also alles, was als Pfandobjekt bezeichnet wird, überlappt werden können Wir werden erkennen, ob ein Spieler, der auch ein Bauer ist, sich überschneidet, um festzustellen, ob du, der Spieler, stirbt Beachten Sie auch, dass diese spezielle Komponente einen Feuerball blockieren wird Wir werden dies verwenden, um zu erkennen, ob ein Feuerball auf diese Komponente trifft, da es so eingestellt ist, dass es einen Feuerball blockiert um festzustellen, ob der Gumba Als Nächstes richten wir unser Papier-Klappbuch ein. Fahren Sie fort und wählen Sie diese Komponente aus. Drüben im Detailbereich haben wir einen Bereich, in den wir ein Quell-Klappbuch einfügen können . Klicken Sie darauf. Wir haben unser Goomba-Flipbook Es wird ziemlich groß anfangen , also lassen Sie uns weitermachen und es verkleinern Klicken Sie auf diese Sperrtaste, um dies einheitlich zu skalieren. Ich werde diesen Wert pauschal auf 0,25 setzen, sodass das ziemlich gut hineinpasst Ich werde auch herunterkommen und die Kollision so einstellen, dass sie keine Kollisionskollision voreingestellt Wir stellen das so ein, dass es keine Kollision gibt. Wir werden nicht überprüfen, es irgendwelche Kollisionen Dafür werden unsere verschiedenen anderen Collider als Nächstes hier sein Klicken wir auf unsere Stoppbox Und wenn das im Detailbereich ausgewählt ist, stelle ich die Größe der Box auf 40 mal 100 mal drei ein, also etwas dünnes Ding Und dann werde ich es in Z-Richtung nach oben bewegen. Ich werde das auf 60 ändern , sodass es so auf Argumbas Kopf ruht Und dann muss ich bei der Kollision runterkommen. Weißt du was, bevor ich unter das Kollisions-Preset komme, werde ich die Linienstärke auch etwas dicker einstellen. Ich setze das auf etwa drei, nur um es etwas deutlicher zu machen, dass das unser Stopp-Box-Bereich sein wird. Okay, dann, wenn das ausgewählt ist, geh runter unter den Kollisionsbereich. Wir werden die Kollisionsvoreinstellung hier so ändern , dass sie benutzerdefiniert ist. Und dafür werden wir das so einstellen, dass alles für alles blockiert wird, außer dass wir Feuerbälle ignorieren, also wollen wir nicht, dass Feuerbälle einfach auf magische Weise damit kollidieren Wir sind damit einverstanden, dass es hier durchkommt . Wir werden diesen anderen Collider überprüfen, um zu sehen , ob er von einem Feuerball getroffen wird Unser Stopp wird ausschließlich darin bestehen, zu sehen, ob eine Spielfigur darauf stehen bleibt Und irgendwann werden wir anhand eines Skripts überprüfen , ob unser Charakter in Z-Richtung darauf herunterfällt in Z-Richtung darauf Okay, eine weitere Sache , die ich hier anpassen möchte , betrifft unsere Komponente zur Charakterbewegung. Das kam automatisch weil wir das als Charakterklassen-Blueprint hatten Dies ist die magische Komponente , die einen Großteil der Bewegungseigenschaften dieses Charakterklassen-Bauplans bestimmen wird Großteil der Bewegungseigenschaften dieses Charakterklassen-Bauplans Wenn ich im Detailbereich nach unten gehe, werde ich irgendwann diesen Abschnitt mit der Hobelbewegung finden diesen Abschnitt mit der Hobelbewegung Ich möchte unsere Goombas-Bewegung auf eine bestimmte Ebene beschränken. Also wähle ich hier aus und ich möchte sicherstellen, dass wir unsere Ebene auf die Y-Achse beschränkt haben unsere Ebene auf die Y-Achse Beachten Sie, dass, sobald ich dies auf Y setze, unsere Ebenenbeschränkung auf eins in der Y-Achse gesetzt wird Ebenenbeschränkung auf eins in der Y-Achse Dadurch wird im Wesentlichen verhindert, dass sich unser Gumba in der Y-Achse bewegt Es ist jedoch erlaubt, sich in der X-Achse und der Z-Achse zu bewegen der X-Achse und der Z-Achse Jetzt helfe ich, dass sich das Objekt nicht auf der angegebenen Achse bewegen kann Lassen Sie mich das kompilieren und sofort speichern. Und platziere eines davon in unserem Level. Ich habe hier mein Haupt-Two-D-Snaping-Set in meinem Viewport. Lassen Sie mich einfach weitermachen und per Drag-and-Drop eine Goomba-Art einfügen. Also. Tippen Sie auf die Taste, um sie auf dem Boden zu befestigen. Sie können also sehen, dass die Y-Ebene mit unserem grünen Pfeil gekennzeichnet ist Wir sagen also im Wesentlichen, dass Sie sich nicht entlang dieser grünen Achse bewegen können sich nicht entlang dieser grünen Achse bewegen Sie können sich entlang der roten X-Achse oder der blauen Z-Achse bewegen , aber nicht entlang der Y-Achse. Okay, wir haben hier einen ziemlich guten Start das alles erledigt ist, stellen Sie sicher, dass Sie alles gespeichert haben Du kannst unter die Datei gehen und alle Leute speichern. Das reicht für diesen, den nächsten gewinnst du . 58. Goomba schädigt den Spieler: Ordnung, willkommen zurück. In diesem Video ist es unser Ziel, es so zu gestalten, dass unser Goomba dem Spieler Schaden zufügen kann Da dies nun ein kurzes Video sein wird , werde ich dir ganz schnell zeigen, wie du auch hier dein eigenes Vorschaubild einrichten kannst hier dein eigenes Vorschaubild Denn im Moment hat unser BP Goomba nur dieses Gesicht als Vorschaubild Wenn Sie mit der rechten Maustaste auf dieses Asset klicken und zu Asset-Aktionen wechseln, können Sie ein Vorschaubild aufnehmen Sie können also sehen, dass ich meine Gumba hier in meinem Viewport schon irgendwie eingerahmt Ich tippe einfach auf die G-Taste, um all diese Symbole auszublenden. Gkey kann all diese Editor-Symbole ein- oder ausblenden. Ich werde mit der rechten Maustaste darauf klicken. Wir gehen zu Act Actions und nehmen ein Vorschaubild auf. Da haben wir also ein schönes Vorschaubild. Lassen Sie mich jetzt in unseren Goomba springen , indem ich ihn auswähle und die Leertaste drücke Und jetzt lasst uns daran arbeiten, es so zu machen, dass unser Gumba unserem Spieler innerhalb unseres Goomba-Blueprints Schaden zufügen kann Spieler innerhalb unseres Goomba-Blueprints Schaden zufügen Wir werden im Abschnitt Mein Blueprint eine Variable hinzufügen im Abschnitt Mein Blueprint eine Variable Klicken Sie hier auf die Plus-Variablen-Schaltfläche. Ich nenne diesen Wert „Gesundheit zu subtrahieren“ und mache daraus eine Ganzzahl Wenn ich das im Detailbereich erneut kompiliere, setze ich den Wert dafür auf einen negativen Und du wirst hier in nur einer Sekunde meinen negativen Wert sehen. Dann klicke ich mit der rechten Maustaste auf unsere Collider-Komponente, diesen Typen hier. Lassen Sie uns das vergrößern, damit Sie sehen können, von welcher ich spreche Also wollen wir es so machen , dass unser Charakter Schaden nimmt, wenn er auf unsere Gumba trifft Dafür werden wir diese Collider-Komponente verwenden. Klicken Sie bei der Veranstaltung mit der rechten Maustaste darauf, um die Überlappung zu beginnen. Dadurch gelangen wir zu unserem Ereignisdiagramm. Wir können überprüfen, ob unser anderer Schauspieler unser Charakter aus der dritten Person ist. Ziehen Sie also hier raus und geben Sie den Charakter aus der dritten Person ein, den wir in Charakter aus der dritten Person ein, den wir unseren Charakter aus der dritten Person übertragen möchten. Denn innerhalb unseres Charakters aus der dritten Person haben wir, wenn Sie sich noch an den Anfang des Kurses erinnern, ein benutzerdefiniertes Ereignis erstellt das als „Hüftpunkte anpassen“ bezeichnet wurde. Hier können wir dieses benutzerdefinierte Ereignis aufrufen und dann eingeben wie viele Hüftpunkte wir ändern möchten, und wir haben hier unsere Gesundheit , die wir abziehen können Es hat einen Wert von minus Eins. Also können wir das einfach so einstecken. Nur um zu verdeutlichen was hier genau passiert, doppelklicke ich hier auf unseren Call mit angepassten Trefferpunkten. Auch hier handelt es sich um ein benutzerdefiniertes Ereignis , das in unserem Charakter aus der dritten Person stattfindet. Und wenn ich darauf doppelklicke, öffnet sich mein Bauplan für einen Charakter aus der dritten Person und ich komme Bauplan für einen Charakter aus der dritten Person und direkt zu der Stelle, an der dieses benutzerdefinierte Ereignis existiert In meinem BP-Goomba-Blueprint könnt ihr sehen, dass wir gerade dabei sind, unsere Trefferpunkte hier in unserem BP Goomba wir gerade dabei sind, unsere Trefferpunkte hier in unserem zu modifizieren. Hier sagen wir, unser Trefferpunkt-Modifikator, wir wollen den Wert von minus Eins weitergeben. Ein negativer Wert wird zu diesem benutzerdefinierten Ereignis und dann bis zu diesem benutzerdefinierten Ereignis und hierher weitergeleitet, um anhand der aktuellen Trefferpunktzahl unseres Charakters angepasst zu werden aktuellen Trefferpunktzahl unseres Charakters angepasst Wenn unser Charakter zwei Trefferpunkte hat wir negative 12 plus einen negativen Wert erreichen, ist das natürlich eins. So funktioniert das. Ordnung, damit können wir weitermachen und unseren Goomba-Blueprint hier zusammenstellen Speichern, lass mich einfach mit der linken Maustaste klicken und ziehen. Ich werde ein Kommentarfeld rund um diesen Spieler von Goomba Damages einrichten. Und dann werden wir hier schnell in die Tests einsteigen. Bevor ich das mache, möchte ich zu meinem BP-Third-Person-Charakter übergehen und sichergehen dass ich damit alles geklärt habe Ich möchte sichergehen, dass ich mir meinen Standpunkt ansehe. Derzeit ist mein Charakter klein und sie haben diese blaue Färbung und das blaue Material auf sie aufgetragen Ich möchte sichergehen, dass unser aktueller Trefferpunktwert auch diesem entspricht Also werde ich meine Trefferpunkte genau hier einstellen. Derzeit sind es standardmäßig zwei. Ich möchte das eigentlich standardmäßig auf eins setzen. Wenn wir einen Trefferpunkt haben, möchte ich blau sein. Lassen Sie mich hier zurück zu meinem Ereignisdiagramm springen, in dem wir unsere Trefferpunkte anpassen, was wir dieses Kundenereignis nennen werden. Ich möchte sichergehen, dass unsere Materialien, zu denen wir aufgrund der Anzahl der Trefferpunkte, die wir haben, wechseln , sinnvoll Auch hier haben wir standardmäßig einen Trefferpunkt. Ich möchte sichergehen, dass unser Material hier tatsächlich blau ist, wenn dieser Trefferpunktindex eins ist. Ich möchte, dass es blau ist. Und wir haben einen Trefferpunkt. Und ich möchte sichergehen, dass, wenn unser Trefferpunktwert hier zwei ist, wir tatsächlich grün sind. Und ich teile Grün und ich glaube , das ist die einzige Stelle, an der wir das Material angepasst haben. Es scheint so zu sein. Okay. Also lass uns weitermachen und das kompilieren und speichern. Und jetzt werde ich es ins Spiel bringen. Ich bin jetzt blau, bevor ich auf diesen Mistkerl stoße. Ich werde diese Feuerblume hier tatsächlich sammeln . Ich springe nach oben. Ich bin blau mit einem Trefferpunkt und ich habe zwei Trefferpunkte. Ich bin grün, das ist toll. Lass uns hier auf unsere Goomba treffen. Nichts ändert sich. Offensichtlich ist das ein Problem. Der Grund für dieses Problem ist, dass wir derzeit nicht auf diesen Collider stoßen, diese Stomp-Plattform. Und aus diesem Blickwinkel ist es schwer zu sehen, aber wenn ich aus der Perspektive unseres Spielers gehe, können wir sehen, dass unsere Gumbas hier etwas von unserer Mittellinie entfernt sind, als wir unsere Gumba in unserem Level platziert haben Gumba in unserem Level platziert Und lassen Sie mich einfach versuchen, eine neue zu platzieren. Es platziert es derzeit in einer großen Tiefe von minus 63, was nicht das ist, was wir wollten, selbst wenn unsere Snap-Einstellungen aktiviert sind. Ich bin mir nicht sicher, warum ich das mache. Lass mich das einfach löschen. Aber ich werde das auf Null im Y setzen. Auf diese Weise sollte unser Gumba unserem Charakter entsprechen Wenn ich jetzt reinspringe und spiele, fangen wir damit an, die Feuerblume einzusammeln, Al, richtig? Und lass uns hier auf unsere Goomba treffen. Ich verliere einen Hüftpunkt und genau genommen sind wir jetzt tot. Also das scheint in Ordnung zu sein. Also gut, ich habe alles aufgeräumt, Leute, das reicht aus diesem Mal sehen, wann der nächste. 59. Zerstöre Goomba über Stomp: Willkommen. In diesem Video ist es unser Ziel, es so zu gestalten, dass unsere Goomba mit einem Stampfen zerstört werden kann Lassen Sie uns also gleich loslegen. Ich wähle hier auf unserer Levelkontrolle unseren Goomba aus, plus E, um unseren Plan zu öffnen Das erste, was ich tun werde , ist eine Variable hinzuzufügen. Jetzt wird das eine Integer-Variable sein , die einen Punktwert enthalten wird. Also wähle ich einfach unsere bestehende Gesundheit aus, um Ganzzahlvariable zu subtrahieren Ich mache Control plus D, um das zu duplizieren. Und ich werde das einfach Punkte nennen. Drücken Sie die Eingabetaste. Dann kompiliere ich das und sage, ein Stampfen oder Zerstören unserer Guba ist hier im Detailbereich 200 Punkte wert hier im Detailbereich 200 Punkte Süß. Als Nächstes möchte ich hier in unserem Diagramm eine leere Stelle finden. Ich werde etwas außerhalb von Event Begin Play machen. Also werde ich mit der linken Maustaste auf diese beiden klicken und die Maus ziehen. Entferne das direkt unter Event Begin Play. Ich werde mit der rechten Maustaste klicken. Wir werden uns den Player-Controller besorgen. Und wir werden es hier in die Länge ziehen und wir werden unseren BP Player-Controller zum Controller casten. Und der Grund, warum wir das tun werden , ist, dass wir hier zu Beginn des Spiels einen Verweis auf unseren Player-Controller erstellen können zu Beginn des Spiels einen Verweis auf unseren Player-Controller . Also werde ich einfach schreiben, klicken Sie auf diesen Pin. Wir werden das zu einer Variablen heraufstufen. Ich werde den Namen einfach auf Player Controller abkürzen. Und das reicht für dieses Drehbuch. Also klicken und ziehen Sie mit der linken Maustaste, tippen Sie auf die C-Taste und ich nenne das mein F-to-Player-Controller-Skript und färbe es schwarz, wie ich es tue. Mein Grund für das Hinzufügen dieser Player-Controller-Referenz ist, dass wir hier in Kürze unser benutzerdefiniertes Ereignis für Werbepunkte innerhalb unseres Player-Controllers aufrufen möchten Kürze unser benutzerdefiniertes Ereignis für Werbepunkte innerhalb unseres Player-Controllers aufrufen innerhalb unseres Player-Controllers hier in Aber zuerst wollen wir uns um die Erstellung unserer Interaktion, unseres Skripts zum Stoppen der Interaktion, kümmern Erstellung unserer Interaktion, unseres Skripts zum Stoppen der Interaktion, Skripts zum Stoppen der Interaktion Lassen Sie uns dafür zu unserem Viewpoort zurückkehren , damit wir sehen können, womit wir es hier zu tun haben Wir haben diesen Stomp Box Collider entwickelt. So haben wir es jedenfalls genannt, es ist direkt auf unserem Goombas-Kopf Und wir nannten es Stomp Box. Das ist eine Boxenkollision , die wir gerade abgequetscht haben. Wir klicken mit der rechten Maustaste auf diese Komponente und fügen dann ein Ereignis hinzu, und fügen dann ein Ereignis hinzu wenn wir auf diese Komponente treffen Danach werden wir zu unserem Ereignisdiagramm weitergeleitet. Und ich werde das einfach ein bisschen herunterziehen. Und was wir tun wollen, ist von unserer anderen Schauspielermarke abzuweichen, wir wollen sichergehen, dass es unser Spielercharakter ist, der das Zeug hält. Also können wir Gleichwertigkeiten machen und uns dann vom Spielercharakter abkoppeln Alternativ könntest du hier auch einen Cast für deinen Charakter aus der dritten Person Um das zu überprüfen, ziehe ich das in die Länge und füge einen Verzweigungsknoten hinzu. Ich werde die Bedingung automatisch einschalten. Aber es gibt tatsächlich zwei Bedingungen , die wir hier überprüfen wollen. Zu überprüfen, ob es der Spielercharakter ist , der gestampft hat, ist eine Aber die andere Sache, die wir tun wollen, ist herauszufinden , in welche Richtung wir diese Stampfkiste schlagen Wir wollen nur weitermachen, wenn wir hier oben auf unserer Stop-Box herunterfallen Dafür können wir unseren Treffer hier ausbrechen und Break-Hit-Ergebnis herausziehen. Wir werden das so nach unten erweitern. Wir werden uns genau hier aus unserem normalen Aufprallverhalten zurückziehen. Und dann werden wir hier einen Gleichheitsknotenpunkt für unsere Toleranz einführen. Sie können das auf etwas Kleines setzen, wie 0,1. Das ist im Grunde genommen, wie viel Vergebung Sie haben möchten, wenn es darum geht, wie direkt unser Absinken im Z ist Bei unserem Z wollen wir überprüfen, ob wir darauf herunterfallen , anstatt es von unten zu treffen. Dafür fügen wir einen Wert von minus Eins hinzu. Ein Wert von negativ Eins prüft , ob wir auf der Z-Achse nach unten oder nach oben fallen. Und das ist nur ein bisschen Vergebung. Das ist also eine zweite Bedingung , die wir überprüfen wollen , weil wir zwei Bedingungen haben , anhand derer wir überprüfen wollen. Ich klicke mit der rechten Maustaste und füge ein und Bullull hinzu. Da haben wir's. Und Goldbarren, wenn unser Spieler das Erste ist , wollen wir überprüfen und prüfen , ob wir ein Top herunterfallen Das ist die zweite Sache, die ich überprüfen möchte, ob beide stimmen, das wird unsere letzte Bedingung sein Wir werden überprüfen, ob dies und das wahr sind. Was wir dann tun wollen, ist einen Sequenzknoten einzufügen, die S-Taste gedrückt zu halten und mit der linken Maustaste zu klicken. Dadurch erhalten Sie einen Sequenzknoten. Und dann füge ich noch einen Pin hinzu, damit wir unsere kommenden Drehbücher hier organisieren können. Nett und ordentlich, aber das wird der erste Teil hier sein . Okay, ab unserem Null-Pin haben wir mehrere Dinge , die wir tun werden. Also werde ich hier ein bisschen weitermachen. Das erste, was ich tun werde, ist, hier wegzuziehen und Play einzutippen. Sound Wir spielen einen Two-D-Sound, und der Sound, den ich spielen möchte, wird Swish sein Okay, das zweite, was ich tun möchte, ist unsere Collider-Komponente zu nehmen Also werde ich das in unser Diagramm ziehen. Wenn Sie sich nun nicht sicher sind, was die Collider-Komponente hier in unserem Viewport ist, ist es das Ding, das gerade beschädigt wird Spieler. Wir überprüfen, ob unser Spieler darauf stößt. Und es reicht tatsächlich ein bisschen über die Seite unserer Stampbox hier hinaus Wie geplant wollen wir, dass wir dann unseren Collider verlassen Wir wollen die Kollision aktivieren. Es wird eine weitere Kopie unseres Colliders hier reinbringen Kopie unseres Colliders hier reinbringen Sie können eines davon löschen. Wir wollen das so ändern, dass es keine Kollision gibt, wir wollen nicht länger damit kollidieren können Als Nächstes wollen wir unsere Stopbox-Komponente einbauen . Das werden wir mit reinziehen. Wir werden diese Komponente zerstören . Sobald wir bei unserem Gumbo angehalten haben, wir weiter und zerstören einfach die gesamte Stoppbox Wir brauchen es nicht mehr. Als Nächstes bringen wir unser Papier-Klappbuch rein, ziehen den Typen rein und wir werden die Weltskala dieses Sets auf Weltskala drei D einstellen, im Grunde werden wir das zerquetschen Also, ich habe ein paar hartbeschichtete Werte ich hier einfach eintippen werde Ich werde diesen Wert auf 0,25 mal 0,25 mal 0,1 setzen Vielleicht passen wir das irgendwann in der Zukunft an, aber wir werden versuchen, das als unseren Quesh-Wert zu Jetzt wollen wir unser Flipbook nicht nur zusammendrücken, sondern es auch in Z-Richtung nach unten bewegen Denn wenn wir es einfach zusammendrücken würden, würde es es sowohl von der oberen als auch von der unteren Grenze aus zerquetschen Und es würde so aussehen, als würde es im Weltraum schweben, was ich nicht will Wir ziehen hier unser Papier-Klappbuch ab und fügen Welt-Offset hinzu. Und wir werden es auf der Z-Achse ein wenig nach unten verschieben , wie weit ich bei einem Z-Wert von minus 35 gehen werde. Auch das können wir anpassen, aber fangen wir damit an. Dann ist das Letzte, was ich tun möchte, die Bewegung dieses Gauners zu deaktivieren. Im Moment bewegen sich unsere Gumbas nicht, aber wir werden unsere Gumba in Kürze hier in Bewegung bringen . Und ich möchte sicherstellen, dass es sich nicht mehr bewegen kann, wenn wir einmal angehalten haben , auch wenn sich unsere Gumbas gerade nicht bewegen Wir werden es so machen, dass wir garantieren, dass sie ihre Bewegung gestoppt haben sobald wir aufhören, wenn sie unsere Bewegungskomponente des Charakters wegziehen Du findest diese Funktion zum Deaktivieren der Das ist also der erste Teil des Skripts, den wir hier machen wollen Ich werde das alles mit mir herumschleppen. Linksklick, tippen Sie auf die Taste. Also sage ich aus unserem Null-Pin, das wird unser ME ha ha squish X sein . Ich färbe das sofort schwarz Als Nächstes würde ich gerne unter den damals einen Teil unserer Sequenz hier fallen. Lassen Sie mich nach oben zoomen, indem ich die Strg-Taste gedrückt halte und das Scrollrad benutze. Ich werde mit der rechten Maustaste klicken. Wir werden Schauspieler holen. Wir werden hier einige Punktearbeit machen. Wir werden unsere Schauspielertransformation verwenden , weil wir rechten Maustaste klicken und Schauspieler aus dem Unterricht hervorbringen Wir brauchen unsere Schauspieler-Transformation, unsere Gumbo-Transformation , um unsere Punkte mitzuteilen, unsere BP-Punkte zum Spawnen Ihr erinnert euch daran von früher, unsere BP-Punkte sind jetzt wieder in unserem P-Punkte-Blueprint Ich werde einfach dorthin navigieren , indem ich danach suche. Hier ist es, unten in unserem Inhaltsbrowser, BP-Punkte, wir haben es so gemacht, dass dieser Hinweis auf das Hinzufügen einer Variablen, die sich hier befindet, beim Spawn verfügbar Das macht es so, dass hier in unserem BP, wenn wir das erzeugen, dieser Punktwert angezeigt wird Damit wir es hier anpassen können, wo immer wir wollen. In unserem Goomba wollen wir 200 Punkte hinzufügen. Lassen Sie uns also unsere Variable per Drag & Drop ziehen, um Punkte hinzuzufügen. Wir passen das einfach so an. Das wird also das Display ins Spiel bringen. Das ist nur der Display-Teil. Jetzt müssen wir die Punkte tatsächlich zu unserem Player-Controller hinzufügen . Dafür haben wir also unsere Player-Controller-Referenz. Zieh das rein, wir werden es bekommen. Dann ziehen wir das ab und geben Punkte hinzufügen ein. Auch hier haben wir dieses benutzerdefinierte Ereignis in unserem Player-Controller namens Punkte hinzufügen. Und hier können wir auch eingeben, wie viele Punkte du hinzufügen möchtest? Nun, wir haben eine Variable dafür, die Sie daraus ziehen und sie so einfügen könnten und sie so einfügen , dass sie völlig gültig ist. Ich werde jedoch nur organisatorischen Gründen eine neue hinzufügen. Also jetzt, wieder einmal, nachdem wir hier auf unseren Goomba getrampelt haben und wir bestätigt haben, dass das stimmt, trampelt unser Charakter auf ihnen herum, und wir stampfen Wir werden diese Punkte hinzufügen. Und wenn ich genau hier auf das doppelklicke, dieses Aufrufen der Add Points, bringt uns das aus unserem BP Goomba zu dem Punkt, an dem dieses benutzerdefinierte Event tatsächlich in unserem BP-Player-Controller Hier wird also das eigentliche Hinzufügen von Punkten stattfinden Und denken Sie noch einmal daran, dass unser Hud in unserem Hud an diese Punktevariable hier, in unseren Player-Controllern, gebunden ist in unseren Player-Controllern Das wird also auch hier in Argumba aktualisiert. Ich klicke mit der linken Maustaste und ziehe mit der Maus herum. Ich tippe auf die Taste C und nenne das Meine Sendung“ -Skript „Punkte hinzufügen“ und färbe es schwarz wie meine Seele. In Ordnung, hier noch ein kleines Skript zum Hinzufügen. Lassen Sie uns unseren Sequenzknoten etwas weiter nach unten verschieben. Halten Sie die Steuertaste gedrückt und vergrößern Sie die Ansicht. Mit diesem letzten Teil des Drehbuchs werden wir Argumba in aller Pracht vernichten Also werden wir es hier in die Länge ziehen, wir werden einen Verzögerungsknoten einbauen Und wir werden es um eine halbe Sekunde hinauszögern, 0,5 wäre gut. Dann klicken wir mit der rechten Maustaste und geben Interact ein. Jetzt habe ich diese Funktion , die wir zu Beginn des Kurses in unserer Blueprint-Bibliothek erstellt Beginn des Kurses in unserer Blueprint-Bibliothek Sie war für Blockinteraktionen gedacht, aber wir können sie auch hier in unserem Goomba verwenden . Bringen wir das einfach rein Es fordert uns auf, in einigen visuellen Effekten einen Soundeffekt sowie einen Ort für den visuellen Effekt für unseren Soundeffekt einzufügen. Lassen Sie uns das einfach so programmieren, dass es eine Explosion wird. Ich benutze die Explosionswarteschlange. Lassen Sie uns auch einfach einen Partikeleffekt fest programmieren, ich gebe Flame Explode Dieser ist auch im Infinity Blade Effects Pack enthalten Für unseren V-Effekt-Standort wähle ich hier den Standort unseres Colliders Und dann werde ich das erledigen , sagen wir, den Standort der Welt ermitteln Wir werden die Position unseres Colliders hier als Ort verwenden , an dem wir in diesen visuellen Effekten spawnen in diesen visuellen Sobald das alles erledigt ist, ziehe ich das in die Länge und tippe Destroy Actor wie folgt ein Klicken Sie mit der linken Maustaste, ziehen Sie und tippen Sie auf die Taste, die ich zum Zerstören verwenden sollte. Also los geht's, das auch schwarz färben. Das wird hier ziemlich gut aussehen, also lassen Sie uns ein bisschen rauszoomen. Ihr endgültiges Drehbuch wird ungefähr so aussehen. Lass uns weitermachen und kompilieren und speichern. Und jetzt wollen wir tatsächlich überprüfen, ob wir beim Spielen unseres Spiels auf unserem Gumba herumtrampeln können. Los geht's Okay, offensichtlich ist der Gumba gerade nicht mobil, aber wenn er auf ihn herumtrampelt, scheinen ein paar Hundert zu sein, als ob Guba zerquetscht wurde. Guba ist gestorben. Dort schien alles wie vorgesehen zu funktionieren. Außerdem möchte ich nur sichergehen, dass wir, wenn wir auf die Seite stoßen, zuerst damit kollidieren und sterben, bevor wir kollidieren und sterben, bevor wir die Stampfkiste treffen Wenn wir uns ihm von der Seite nähern, ja. Sollte einfach so sterben. Aber wenn ich wieder reinspringe und spiele, sollte ich ihn wieder aufhalten können. Schau dir an, wie er dort unten zerquetscht wird und er eine halbe Sekunde lang lebt bevor er völlig zerstört wird So lernen wir den Quetscheffekt zu schätzen. Hervorragend. Wenn Sie diese Drehbücher noch einmal ansehen möchten, werde ich jeden Abschnitt hier hervorheben , wenn Sie das Video pausieren möchten. Das ist ein Gleichheitsknoten, der eine negative Eins gegenüber dem Null-Pin ist, ohne dass der Collider kollidiert Wir verwenden diesen Collider, um Partikeleffekte unten zu erzeugen Das ist unser Squish-Soundeffekt. 0,25 0,25 0,1 negativ 35. Und das Z für den Welt-Offset zeigt, dass zusätzliche Punkte zu unseren BP-Punkten hinzukommen Wir haben unsere Punktevariable erstellt, um eine Z-Anzahl von Punkten hinzuzufügen , die derzeit auf 200 festgelegt ist Und dann spielen wir endlich unsere Destroy-Effekte. Nach einer halben Sekunde haben wir eine halbe Sekunde. Wir nutzen die Position unseres Colliders, von dem aus einen Partikeleffekt und einen Soundeffekt erzeugen und dann den Schauspieler zerstören In Ordnung, Leute, das wird für diesen einen Abklatsch sein. Wir sehen uns im nächsten. 60. Zerstöre Goomba über Fireball: Willkommen. Jetzt, wo wir unsere Goomba zerstören können, indem wir darauf herumtrampeln, machen wir es so, dass wir unsere Goomba zerstören können, indem wir unsere Goomba zerstören können, indem Also wähle ich meine Gumba genau hier in meiner Viewport-Steuerung aus. Plus E ist ein Hotkey, um das sofort zu öffnen. Und ich springe zu meinem Viewport-Tab und wähle meine Collider-Komponente Und lassen Sie mich einfach darauf eingehen. Sie können auch auf die Taste tippen, um sich darauf zu konzentrieren, nachdem Sie sie ausgewählt haben. Schauen wir uns noch einmal zur Erinnerung an, unser Collider im Komponentenfenster ausgewählt war, wie wir die Kollision dafür im Detailbereich eingerichtet hatten . Wir haben ihn so eingerichtet, dass dieser Collider Feuerbälle blockiert Auch hier ist unser Fireball-Blueprint als Fireball-Objekttyp gekennzeichnet Jetzt haben wir das bewusst gemacht, damit wir Treffer erkennen können , wenn Feuerbälle diesen Collider Wir werden also rechten Maustaste auf unsere Collider-Komponente klicken Wir werden ein Ereignis für den Fall hinzufügen, dass eine andere Komponente darauf trifft Wir werden aus unserem Viewport in unser Event-Diagramm gesprungen unserem Viewport in unser Event-Diagramm Ich klicke mit der rechten Maustaste und schwenke hier nach unten. Hier ist unsere On-Komponente, drücken Sie den Collider. Und wir wollen überprüfen , ob der andere Schauspieler, der das trifft, unser BP-Feuerball ist Wir werden auf BP-Feuerball werfen, nicht auf Feuerbalken-Feuerball nicht auf Feuerbalken-Feuerball Also sei einfach vorsichtig damit. Dann wollen wir Feuerball auf das Klappern trifft, den Feuerball selbst zerstören Ich werde meinen BP-Feuerball herunterziehen und sagen, zerstöre den Akteur, der den Feuerball zerstört Und dann werden wir eine Sequenznotiz hinzufügen. Also werde ich den SK-Linksklick gedrückt halten. Und wir werden verschiedene Dinge von unserem Sequenzknoten aus erledigen. Das Erste, was ich tun möchte, ist Punkte hinzuzufügen als ob wir damit aufhören würden. Also werde ich schummeln und herkommen und mir all unsere Zusatzpunkte holen Ich werde einfach mit der linken Maustaste klicken und das alles herumziehen. Drücken Sie Strg C, ich werde das kopieren. Dann benutze ich die rechte Maustaste, um wieder hier runter zu kommen, linken Maustaste genau hier. Und dann drücke V , um das alles einzufügen. Wickeln Sie dort auch meinen Sequenzknoten ein. Das wird also eine kleine Abkürzung sein. diesem Skript gibt es sonst nichts zu ändern , obwohl ich den Kommentar einfach so ändern werde , dass eine Null davor steht. Das ist also das Erste, was wir tun wollen, ist Punkte zu zeigen und hinzuzufügen. Ich doppelklicke auf dieses Kabel um den Umleitungsknoten aufzurufen Und das zweite, was ich tun möchte, und wir können wieder etwas Code von oben stehlen, ist mein Spiel Destroy Effects Ich will das meiste davon, obwohl ich diese Verzögerung hier nicht machen möchte. Also wähle ich das alles aus, ich mache Steuerung C, dann werde ich hier mit der linken Maustaste klicken. Und dann steuere V auf Tempo. Ich werde diese Verzögerung einfach auch loswerden, weil ich möchte, dass der Feuerball sie sofort zerstört Und ich werde auch dieses Kommentarfeld ändern. An unserem Collider-Standort werden wir das Explosionsspiel spielen lassen Dieses Flammenexplosionspartikel. Und dann werden wir den Schauspieler selbst zerstören , also Argumba das alles an seinem Platz ist, werde ich weitermachen und kompilieren und speichern Und lass uns einsteigen und spielen. Los geht's. Ich werde meine Feuerblumen einsammeln. In Ordnung, und dann einen Feuerball abfeuern. Und hoffentlich, nun ja, müssen wir ihn zuerst treffen. Boom geht sofort in Flammen auf. Das funktioniert also wie beabsichtigt. Hervorragend. Wir haben es jetzt geschafft, unseren Umba zu erschießen und ihn erneut zu vernichten Das ist der erste Teil unseres Drehbuchs. Wir werfen zum Feuerball. Wir zerstören den Feuerball. Und dann weg von unserem Sequenzknoten. Hier zeigen wir einige Punkte und fügen sie hinzu. Noch einmal, diese Funktion zum Hinzufügen von Punkten. Dadurch wird dieses benutzerdefinierte Ereignis im Player-Controller selbst aufgerufen. Und dann spielen wir diese Zerstörungseffekte ab. Wir haben den Delay-Node aus dem Stomp-Skript oben In Ordnung, Leute, das wird alles für diesen reichen. Wir sehen uns im nächsten. 61. Goomba Patroller (Teil #1): Ordnung, jetzt haben wir es so, dass unser Goomba uns, dem Spieler, Schaden zufügen kann und wir den Goomba zerstören Lass uns jetzt unseren Goomba in unserem Level bewegen. Und wir werden damit beginnen, ihm ein grundlegendes Patrouillenverhalten zu geben ein grundlegendes Patrouillenverhalten Und das wird uns wieder dazu zwingen , in unseren Goomba-Blueprint Sie können es also auswählen und eine andere Möglichkeit es zu öffnen, ist hier in unserem Outliner, wenn es ausgewählt Gehen Sie zu BP Gumba bearbeiten. Wir werden damit beginnen, einige Variablen im M-Blueprint-Bedienfeld zu erstellen im Sie also unter dem Variablenbereich auf diese Plus-Schaltfläche auf diese Plus-Schaltfläche Den ersten Teil nenne ich Geschwindigkeit. Wir ändern ihn in einen Float, und dieser Wert wird verwendet, um zu bestimmen, wie schnell sich unser Goomba bewegen soll Die zweite Variable, die ich hier erstellen möchte , wird Flipbook heißen Multiplikator für die Spielgeschwindigkeit. Je nachdem, wie schnell sich unser Goomba bewegen wird, möchten wir vielleicht anpassen, wie schnell unser Flipbook Wir werden also ein Skript einrichten, sodass wir im Wesentlichen die Geschwindigkeit unseres Goomba einlesen und die Wiedergabegeschwindigkeit unseres Flipbooks anpassen , sodass unser Goomba hier seine Füße entweder schneller oder langsamer anhalten kann seine Füße entweder schneller oder langsamer anhalten Und dann füge ich hier eine weitere Variable hinzu. Das wird Move Left heißen. Das wird ein Edelmetall sein. Es wird verwendet werden, um festzustellen, ob wir wollen, dass sich unsere Guba ursprünglich nach links bewegen, wenn sie hier zu patrouillieren beginnen Jetzt kompiliere ich, damit ich einige Standardwerte setzen kann , einige Standardwerte Es gibt tatsächlich noch ein paar andere Kontrollkästchen , die ich ebenfalls ankreuzen möchte. Fangen wir mit unserer Geschwindigkeit an. Ich werde das auf einen Standardwert von 200 setzen, und ich werde auch dieses Kästchen ankreuzen , zum Beispiel editierbar Wenn ich das ankreuze, wirst du auch dieses Ballsymbol sehen, komm schon Sie machen dasselbe machen diese Variableninstanz im Grunde bearbeitbar Das bedeutet, dass Sie nach dem Kompilieren hier in Ihrem Level-Editor einen Goomba ausgewählt haben Sie können diese Eigenschaft jetzt im Level-Editor sehen. Wenn ich in unserer Standardeinstellung einfach nach der Standardeinstellung suche, werde ich sie finden. Okay. Es gibt eine Standardgeschwindigkeit. Lass mich einfach da raus. Okay, zurück zu unserem Gumbo-Blueprint, unserem Flipbook-Multiplikator für die Spielgeschwindigkeit Wir werden tatsächlich berechnen, wie hoch dieser Wert Es ist also in Ordnung, dass ich den Wert vorerst bei Null belasse , denn durch ein Skript werden wir hier standardmäßig einen Wert haben. Und dann ist unser Zug nach links boolescher Wert hier. Ich werde sagen, ja, wir wollen standardmäßig nach links gehen Lassen Sie uns das also überprüfen. Und lassen Sie uns diese Instanz auch editierbar machen , damit diese Eigenschaft auch im Editor verfügbar ist Fahren Sie fort und kompilieren und speichern Sie. Als Nächstes springen wir zu unserer Registerkarte „ Konstruktionsskript“. Im Konstruktionsskript können Sie nun ein Skript einrichten , das Sie während der Entwurfszeit ausführen möchten. Dies ist nützlich, um einige Parameter festzulegen, die Sie möglicherweise in Ihrem Blueprint haben möchten , bevor das Spiel tatsächlich läuft Und wir werden es für diesen Zweck verwenden. Das erste, was ich tun werde, ist, unsere Komponente zur Charakterbewegung einzubeziehen . Nun, unsere Komponente zur Charakterbewegung bestimmt eine Menge Dinge darüber, wie sich unser Charakter bewegt, einschließlich einer sehr wichtigen Eigenschaft hier die maximale Gehgeschwindigkeit genannt wird. Dieser Typ hier innerhalb der Komponente für Charakterbewegungen namens Max Walk Speed bestimmt, wie schnell sich deine Charakterklasse bewegen kann. Jetzt möchte ich das im Wesentlichen außer Kraft setzen. Und ich kann das überschreiben, indem ich unsere Charakterbewegungskomponente hineinziehe indem ich unsere Charakterbewegungskomponente hineinziehe Sobald wir unsere Komponente haben, können wir mit diesen verschiedenen Eigenschaften in unserem Detailbereich sprechen und sie bearbeiten diesen verschiedenen Eigenschaften in unserem Detailbereich Also ziehe ich es hier raus und tippe die maximale Gehgeschwindigkeit ein. Also los geht's. Zieh dich hier raus. Stellen Sie die maximale Gehgeschwindigkeit ein. Und Sie werden feststellen, dass unsere maximale Gehgeschwindigkeit ein Gleitkommawert ist, und wir werden hier im Wesentlichen unsere standardmäßige maximale Gehgeschwindigkeit durch unsere Geschwindigkeitsvariable überschreiben . Also werden wir hier während der Entwurfszeit sagen: Hey, ich weiß, dass du diese Standard-Gehgeschwindigkeit von 600 hast. Aber oh ja, bevor das Spiel überhaupt läuft, werden wir das überschreiben. Wir werden deine Geschwindigkeit so ändern, dass sie dem entspricht, was in dieser Float-Variablen enthalten ist. In Ordnung. Ich habe bereits erwähnt, dass wir diesen Flipbook-Spielraten-Multiplikator hier in diesem Konstruktionsskript verwenden werden , und wir werden diesen Wert automatisch berechnen Nun, wir werden das so machen, dass wir unsere maximale Gehgeschwindigkeit überschreiten, und wir werden teilen und wir werden durch 100 teilen 100? Nun, das liegt daran dass es ein Wert ist, den ich im Voraus bestimmt habe und der ziemlich gut ausgearbeitet ist. Und wir werden das Ergebnis daraus nehmen und es eingrenzen. Wir werden Clamp Float machen. Wir werden sicherstellen , dass der Wert, der mit dieser Mathematik ausgegeben wird, immer zwischen 0,1 und maximal drei liegt . Und das werden wir in unseren Flipbook-Spielraten-Multiplikator einbinden Ziehen Sie das per Drag-and-Drop in Ihr Diagramm. Wir wollen das einstellen. Hier werden wir also unseren Flipbook-Spielraten-Multiplikator festlegen Ich habe erwähnt, dass es nicht bei einem Wert von Null bleiben würde . Das Ergebnis dieser Berechnung werden wir also als unseren Flipbook-Multiplikator für die Wiedergabegeschwindigkeit verwenden Wenn wir also diesen Wert nehmen, unseren Geschwindigkeitswert von 200, und ihn durch 100 teilen würden , würde das in diesem Bereich liegen Das wäre also unser Flipbook-Multiplikator für die Spielgeschwindigkeit. 62. Goomba Patroller (Teil #2): Jetzt haben wir unseren Flipbook-Multiplikator für die Playrate berechnet , aber wir verwenden ihn noch nicht wirklich und dafür müssen wir zu unserem Event-Graph springen Im Rahmen unserer Event-Analyse werden wir nun ein Skript hinzufügen, das erkennt , wann sich unser Spieler in Reichweite befindet Wir werden unseren Spieler nur dann mit der Patrouille beginnen lassen, wenn er sich in Reichweite befindet Lassen Sie mich jetzt zu unserem Viewport hier gehen. Ich werde hier ein bisschen weitermachen und ich habe diesen riesigen Radius um meine Guba Ich nenne das unsere Spielererkennungsreichweite. Das werden wir also verwenden, um zu erkennen, ob sich der Spielercharakter in Reichweite befindet. Wenn sie in Reichweite sind, werden wir den Kerl in Bewegung bringen. Machen wir also weiter und klicken mit der rechten Maustaste auf unseren Player Detect Range. Wir werden ein Ereignis hinzufügen, für den Fall , dass sich dieser Bereich überschneidet. Es wird uns zu unserem Ereignisdiagramm weiterleiten, was großartig ist. Und wo wir schon mal hier sind, lassen Sie uns auch gleich ein Ende der Überschneidung hinzufügen. Klicken Sie mit der rechten Maustaste auf die Erkennungsreichweite Ihres Spielers. Wir werden ein Ereignis für die Endüberlappung hinzufügen. Dazu werden wir feststellen , ob es unser Spieler ist , der die Überlappung durchführt oder die Überlappung beendet Also kann ich mit der rechten Maustaste klicken, Spielercharakter zu bekommen Wenn unser anderer Schauspieler dem Spielercharakter entspricht, könntest du hier alternativ auch einen Charakter aus der zweiten dritten Person spielen. Das ist nur die Methode , mit der ich überprüfe , ob es sich um unseren spielbaren Charakter handelt Ich werde diese Kontrolle D duplizieren, um den anderen Akt zu duplizieren Also werde ich zwei Notizen zu den Filialen hinzufügen, indem ich B gedrückt halte, Linksklick, Linksklick usw. Also werden wir sagen, dass, wenn es stimmt , dass sich unser Spielercharakter überschneidet, dieser Spieler die Reichweite erkennt Wir werden das im Grunde an einen Gate-Knoten anschließen. Um das Tor zu öffnen, werden wir im Grunde in jedem Frame überprüfen , ob sich unser Spieler in diesem Bereich befindet oder nicht. Dafür benötigen wir einen Tick-Knoten. Wenn ich Click in ein leeres Feld schreibe, füge ich ein Tick-Node-Event Tick ein, das jeden einzelnen Frame auslöst. Und dann schreibe ich click in leeres Feld und füge einen Gate-Knoten hinzu. Wenn Sie die G-Taste gedrückt halten und mit der linken Maustaste klicken, wird sogar ein Gate-Knoten angezeigt. Bei jedem Frame, den wir durch unser Tor betreten, können Sie sich dieses Tor wie ein echtes Eisentor vorstellen. Und du wirst hier an diesem Tor eine Pause einlegen , bis dir gesagt wird, dass das Tor offen sein soll. Jetzt öffnen wir dieses Tor und kommen somit nur dann über diesen Punkt hinaus, wenn unser Spieler die Erkennungsreichweite dieses Spielers überschneidet Wir werden dieses Tor jedoch schließen , wenn unser Spieler diesen Bereich nicht mehr überlappt Du siehst, wie das funktionieren wird. Bei jedem Frame sind wir quasi am Gate. Wir werden hier aber nicht weiterkommen , es sei denn, unsere Spieler überschneiden sich in der Erkennungsreichweite. Und wir werden über dieses Tor hinaus vorrücken. Wenn wir den Erkennungsbereich überlappt haben, werden wir das Tor schließen Das heißt, wir werden nicht weiter kommen, wenn wir diesen Bereich nicht mehr überlappen Was wollen wir also tun, wenn wir hier das Tor überschreiten? Nun, wir wollen mit der rechten Maustaste klicken und wir werden Bewegungseingaben hinzufügen. Dieser Knoten, der auf unseren Bauern abzielt, was ein Charakter ist, kann unseren Charakter automatisch hierher bewegen Nun, in welche Richtung wollen wir sie bewegen? Nun, wir werden eine Richtung wählen, in der wir unsere Guba hierher bewegen wollen , links oder rechts, je nachdem, in welcher Goldbarren es sich genau Jetzt ziehen wir den Goldbarren aus unserer Bewegung nach links heraus und bringen einen ausgewählten Knoten genau Je nachdem, wie hoch unser Rückgabewert hier ist. Wir werden hier einen Rückzieher von unserer Weltrichtung machen. Das sind die Vektoren X, Y und Z. Wir werden in der Lage sein, anhand unseres Goldbarrens anzugeben, wie hoch unser Rückgabewert ist Wenn das wahr ist, setzen wir unseren X-Wert auf einen negativen Wert Im Grunde wird sich das im Level-Editor nach links in diese Richtung bewegen . Wenn Sie sich jedoch nach links bewegen dieser Boolesche Wert falsch ist, geben wir dies als unsere Weltrichtung setzen den X-Wert auf Sie sehen, wie das hier funktioniert, abhängig vom Wert dieses Booleschen Werts Wenn das stimmt, werden wir diese Werte als unsere globale Richtung ausgeben, um unseren Goomba hierher zu verschieben Wenn das falsch ist, werden wir diesen Parametersatz als unsere Weltrichtung wählen diesen Parametersatz als unsere Weltrichtung Hier liegt noch ein bisschen mehr vor uns, wir müssen es nur jetzt tun. Bringen Sie unser Flipbook, die Spielrate, Multiplikator und ziehen Sie das per Drag-and-Drop rein werden wir uns holen . Und auch unsere Papierflipbook-Komponente selbst. Lassen Sie uns unser Flipbook aus Papier hineinziehen. Jetzt ziehen wir unser Flipbook ab und sagen „Spielgeschwindigkeit festlegen“. Wie hoch ist die Geschwindigkeit, mit der wir unser Papier-Klappbuch haben wollen? Das ist nur für den visuellen Aspekt selbst. Nun, wir wollen es hier in diesem Tempo spielen. Nochmals, das alles wird hier in unserem Konstruktionsskript automatisch berechnet. Wenn wir die Geschwindigkeit unseres Goomba auf sagen wir 300 erhöhen würden, wäre es 300/100, was drei wären Unser Multiplikator für die Flip-Play-Rate würde erhöht, um unserer gestiegenen Geschwindigkeit Rechnung zu tragen Das wird unser Drehbuch sein, um die Guba in eine bestimmte Richtung zu bewegen Ich werde mit der linken Maustaste darauf klicken und mit der Maus auf die C-Taste ziehen Und ich werde das meine Bomba nennen. In einer bestimmten Richtung nur, wenn der Spieler in Reichweite ist, dann färbe ich das schwarz Es ist okay getroffen. Jetzt werde ich hier kompilieren, nur um sicherzugehen , dass unser Skript gut aussieht. Und das ist es auch, ich werde auf Speichern klicken. Wenn du meine Einstellungen hier im Level siehst, überarbeite ich die Dinge zwischen den Videos nur ein wenig , um die Länge dieses Videos zu verkürzen Ich habe meinen Player-Startdarsteller hier weit nach links gestellt. Ich habe gerade mein Level etwas erhöht und sie außerhalb der Reichweite gebracht. Guba hier. Goombas Detect Range ist genau hier Schauen wir uns jetzt das Detailfenster an. Wenn ich Standard in den Suchbereich eintippe, scrolle ich jetzt weiter nach unten. Und hier ganz unten kannst du sehen, dass mein Geschwindigkeitswert auf 200 eingestellt ist und meine Bewegung nach links markiert ist. Sobald mein Spieler diesen Radius überschneidet, sollte er anfangen, sich nach links zu bewegen Damit wird es noch ein Problem geben, aber lassen Sie uns weitermachen und loslegen und es ausprobieren Also gut, in meinem Level werde ich diesen Bereich überschneiden. Hier kommt Mr. Gumba Nun, das Problem, das Sie hier feststellen werden , ist, dass er keine Möglichkeit hat, umzukehren Er wird sich einfach weiter nach links bewegen , bis er von der Klippe fällt. Gibt es eine Möglichkeit, ihn dazu zu bringen, dass er sich nach rechts bewegt? Nun, das gibt es tatsächlich. Wir werden zurück zu unserem Goomba-Blueprint springen. Und wir werden das tun, indem wir erkennen, ob unser Goomba Und wenn sie etwas treffen, während sie sich nach links bewegen, schießen wir sie einfach in die andere Richtung ab , indem wir diese Bewegung nach links umschalten Dafür werden wir hier in unserem Event-Graph ein wenig weiter nach unten scrollen hier in unserem Event-Graph ein wenig weiter Und wir werden kommen und uns unsere Kapselkomponente ganz oben holen . Lassen Sie mich einfach zu meinem Standpunkt springen, damit Sie sehen können, wo sich unsere Kapselkomponente befindet Ich klicke hier mit der rechten Maustaste hinein und tippe auf die Taste, um darauf zu springen Also werden wir diese Komponente genau hier verwenden, wir werden einen Treffer bei diesem Typen erkennen. Wissenswertes: Zusätzlich zum Klicken mit der rechten Maustaste und Hinzufügen eines Ereignisses über das Rechtsklick-Menü, bei dem eine Komponente ausgewählt ist. Sie können im Detailbereich auch ganz nach unten ziehen. Und eine Liste der Veranstaltungen finden Sie hier. Ich suche eine Komponente, klicken Sie hier, klicken Sie auf diese Plus-Schaltfläche und schon bin ich hier. Also werde ich meinen Treffer hier veröffentlichen. Steuerung gedrückt halten, nach oben zoomen, wegziehen. Wir werden unser Erfolgsergebnis knacken. Erweitere das. Wir werden unseren Impact hier normal einsetzen. Ziehen Sie diesen Typ mit dem Gleichheitszeichen weg. Wir werden hier ein bisschen Toleranz hinzufügen. Wir machen 0,1 und wir werden sagen , wenn wir etwas in dieser Richtung beeinflussen, setze ich unseren X-Wert auf 1,0. Dann ziehen wir davon ab und stecken das Ganze in einen Verzweigungsknoten. Aber ich möchte auch sicherstellen, dass wir das nur einmal machen , damit nicht mehrere Treffer registriert werden. Ich werde die Taste gedrückt halten und mit der linken Maustaste klicken. Und wir werden sagen, wenn unser Goomba hier auf etwas trifft, während wir einmal umschalten oder nach links bewegen, es hineinziehen, werden wir es einstellen Ich werde tatsächlich sofort ein Duplikat davon reinbringen , weil unser Setup so aussehen wird Ich werde hier auch einen Flip-Flop-Knoten einbauen. Flipflop. Und wir werden so gehen, wir werden so gehen Und ich werde das gleich hier für euch alle übersetzen . Stellen Sie sicher, dass Sie mit der unteren Bewegung nach links dieses Kästchen ankreuzen Lassen Sie dieses Feld ganz oben stehen, ohne das Häkchen zu setzen. Danach werden wir einen Delay-Knoten einbauen. Also werde ich die Taste gedrückt halten und mit der linken Maustaste klicken, um eine Verzögerung einzuleiten. Wir werden beide hier einstecken. Ich werde eine Verzögerung von sagen wir einer halben Sekunde haben. Wir werden sagen, nach einer halben Sekunde wir das Ganze dann einmal zurücksetzen. Und ich hasse diese sich kreuzenden Kabel, also werde ich einfach ein paar Mal darauf doppelklicken , um das zu lösen Wir werden so immer wieder rauf gehen. Das wird im Grunde unser Drehbuch sein , mit dem wir unseren Zug nach links umschalten können. Eines habe ich hier vergessen . Unser Aufprall Ich schneide einfach diesen Draht ab, halte die Alt-Taste gedrückt und klicke mit der linken Maustaste Ich möchte hier den absoluten Wert ermitteln. Ziehen Sie bei normalem Aufprall ab, wir geben den Vektor ein und erhalten Bauchmuskeln. Wir nehmen das Ergebnis und stecken es in den oberen Bereich, also egal in welche Richtung wir gehen, links oder rechts, wir erhalten den absoluten Wert der normalen Wirkung. Wir werden sagen, hey, entspricht das dem x-Wert von eins? Wenn das beim ersten Mal stimmt, werden wir beim zweiten Mal „Nach links bewegen“ überprüfen und dann um eine halbe Sekunde warten. Wir werden das zurücksetzen. Dann haben sie es wieder getroffen. Wir werden es wieder einschalten. Schlag wieder auf etwas anderes. Wir werden es ausschalten. Schlagen Sie erneut auf etwas, schalten Sie es wieder ein usw. Ich klicke mit der linken Maustaste und ziehe mit der Maus herum, tippe auf die C-Taste. Das wird als meine Erkennung bezeichnet, dass Goomba etwas trifft, und ändere dann die Richtung, wenn Ordnung, lassen Sie uns das schwarz einfärben und das dann testen Kompilieren und speichern Um das zu testen, ziehe ich einfach einen Block hinein. Es kann hier ein beliebiger Block sein, aber ich mache einfach einen Block, der zerbrechlich Ich tippe auf die Taste, um es auf den Boden zu legen. Und ich werde es sogar ein bisschen nach oben bewegen, damit es nicht durch den Boden ragt. Da haben wir's. Ordnung. Reinspringen und spielen. Ich befinde mich derzeit nicht im Erkennungsbereich. Es bewegt sich nach links. Es wird diesen Block treffen, es wird ihn sofort abschießen. Mal sehen, ob es unsere Guba tatsächlich in die andere Richtung zurückbringt Ich werde meine Guba einfach ein bisschen mehr in diese Richtung bewegen. Geh mir ein bisschen aus dem Weg und ich werde gleich dort einen zweiten reinbringen Los geht's. Im Sezierbereich trifft Goma auf einen Block, geht in die andere Richtung, trifft einen Block, geht in die andere Das wird also eine ganz einfache Patrouille. Und auch hier können wir unsere Gumba anpassen, indem wir festlegen, was ihre Standardrichtung sein soll Ich habe meinen Gumba ausgewählt und hier nur die Standardeinstellung eingegeben, um meine angezeigten Parameter zu sehen Ich werde die Geschwindigkeit dieses Mal auf 300 ändern. Und ich werde sagen, dass ich diesmal nicht möchte, dass sie sich nach links bewegen Sobald ich diesen Bereich überschneide, wird er sich tatsächlich nach rechts bewegen. Also lass uns weitermachen und uns schnell ein Spiel geben . Wir haben angefangen, uns nach rechts zu bewegen. Wie Sie sehen können, bewegt er sich schneller, sein Flipbook bewegt sich schneller. Und so haben wir hochgradig anpassbare Gumbas, Sie können diese Werte für jeden Fall ändern Ordnung Leute, das wird alles für unseren Gumba-Patrouillen erledigen alles für unseren Gumba-Patrouillen Wir sehen uns alle im nächsten Video. 63. Goomba Seeker: Willkommen zurück. Nun, wir haben einen Goomba, der in unserem Level patrouillieren kann Lasst uns eine Version machen , die etwas aggressiver ist, eine, die unseren Spieler ausfindig machen kann Um das zu tun, werden wir wieder in unseren BP Goomba eintauchen in unseren BP Goomba Machen Sie weiter und doppelklicken Sie darauf. Wir beginnen damit, eine weitere Variable drüben im Variablenbereich zu erstellen . Wenn wir auf diese Plus-Schaltfläche klicken, auf diese Plus-Schaltfläche klicken, werde ich eine erstellen, die Seeker Enemy ist Ich werde sofort kompilieren und diese Instanz editierbar machen, was bedeutet, dass ich das anpassen kann wenn wir unseren Goomba im Level haben Und ich werde auch sagen , dass es standardmäßig kein geheimer Feind ist Wir werden es standardmäßig als Patrouille haben. Aber wenn wir das zu einem heimlichen Feind machen wollen, können wir das mit dieser jetzt erstellten booleschen Variablen tun Wir können hier auf unser bestehendes Skript zurückgreifen. Und wir werden hier oben einfach ein Skript hinzufügen , um diese Variable auszuwerten. Also halte ich die Strg-Taste gedrückt und klicke mit der linken Maustaste und wir ziehen das hier hinein. Und dann ziehe ich es von hier raus und stecke das in einen Zweigknoten. Und wir werden unseren Spielfluss aus diesem Tor so anpassen , dass wir, anstatt unseren Spieler automatisch patrouillenweise nach links oder rechts zu bewegen , unseren Spieler automatisch patrouillenweise nach links oder rechts zu bewegen, abwägen, ob das ein suchender Feind ist? das ein suchender Feind ist Wenn es falsch ist, dass es sich nicht um einen suchenden Feind handelt, machen wir einfach die Patrouillenbewegung Wenn es jedoch wahr ist , werden wir mit rechten Maustaste in eine leere Stelle klicken Wir holen uns den Controller, den Bauern, den Controller Wir werden hier auch mit der rechten Maustaste klicken und den Spielercharakter aus unserem Controller holen . Ich ziehe die Maus raus und tippe einen einfachen Zug zum Schauspieler ein. Wen wollen wir hier kontrollieren? Der Controller unseres Goomba hier, das wird unser Controller sein und das Ziel ist unser Spielercharakter Anstatt in einige Verhaltensbäume einzutauchen, was der richtige Weg ist um Feinde in deinem Level zu bewegen, ist das ein wirklich einfaches Mittel, um eine wirklich einfache KI zu haben , wenn du Wir sagen, wenn es sich um einen heimlichen Feind handelt, bewegen wir einfach unseren Gauner hierher, um unseren Spieler ins Visier zu nehmen Das wird das Ziel sein. Das ist einfach genug. Etwas anderes, was wir hier tun wollen, ist, unter die Standardklasse unserer Gumba zu fallen die Standardklasse unserer Gumba Wir werden das hier ein wenig erweitern Wir werden Controller eingeben und das Häkchen entfernen, verwenden Controller-Rotation ja Wenn das angekreuzt ist, würde im Grunde genommen Folgendes passieren: Wenn unser Gumba auf würde im Grunde genommen Folgendes passieren: Wenn einen Sucher eingestellt wäre, würde er sich umdrehen und versuchen, hinter dir her zu gehen Wir wollen nicht, dass sich unser Goomba in irgendeiner Weise dreht. Wir wollen, dass sie sich orientieren und quasi in die Kamera schauen Indem wir das Häkchen entfernen, wir im Grunde sicher, dass wir unseren Charakter überhaupt nicht rotieren Wenn wir nun versuchen würden, das Ganze zu testen, indem wir kompilieren, speichern und in unserem Level-Editor sagen würden, dass Argumba hier eine feindliche Sucher-Notiz ist, suche ich nach Der Grund, warum all diese Variablen standardmäßig existieren, ist übrigens, dass all diese Variablen, die so eingestellt sind , dass sie von ist übrigens, dass all diese Variablen, die so eingestellt sind , dass sie Instanzen bearbeitet werden können Lassen Sie mich das Detailfenster hier leeren Die darin enthaltene Kategorie wird Standard genannt. Ich setze es auf einen Suchenden Feind. Dabei macht diese ganze Bewegung nach links eigentlich gar nichts, es ist nicht wirklich wichtig Überlegen Sie sich das, schneiden Sie ab. Was wir jetzt tun werden, ist das zu testen. Und sobald sich mein Spieler überschneidet, wird die Guba angeblich nach meinem Spieler suchen meinem Spieler Sie werden zwar ein Problem feststellen, aber hey, ich scheine in Reichweite zu sein aber Gumba ist nicht hinter mir her. Was ist los? Nun, damit dieser einfache Wechsel zum Akteurknoten funktioniert, müssen wir unserem Level etwas hinzufügen, das als Navigationsnetz bekannt ist. Um das zu tun, müssen wir zurück zu unserem Level-Editor hier und im Panel Place Actors springen . Und wenn Sie das Panel „Schauspieler platzieren“ nicht aktiviert haben, können Sie es aufrufen, indem Sie hierher kommen, Bedienfeld „Schauspieler platzieren“ auswählen und Navi eingeben. Wir möchten ein sogenanntes Nav-Mesh-Bounds-Volumen hinzufügen ein sogenanntes Nav-Mesh-Bounds-Volumen Und das macht im Grunde genommen einen Bereich des Raums, in dem du Feinde wie Argumba haben kannst, in dem sie navigieren können Sobald du das reingebracht hast, wird es ziemlich klein sein. Ich werde das viel größer machen, als es sein muss. Und das kann ich tun, indem ich es im Detailbereich auswähle. Und ich möchte meine Pinseleinstellungen hier finden. Wo ich eine Größe dieses bestimmten Volumens definieren kann. Ich werde das riesig machen in meinem, ich werde das zu 40.000 machen, etwas Riesiges wie das. Viel größer als ich hätte sein müssen, um diesen ganzen Landstrich abzudecken. Ich werde den Y-Wert hier so einstellen , dass er viel breiter ist als nötig Also werde ich ihn auf etwa 2000 setzen. Und ich werde das Z auf etwa 5.000 setzen , falls ich dieses Level vertikal aufbaue, etwas Riesiges wie dieses. Es erstreckt sich im Wesentlichen über meinen gesamten Spielbereich hier. Um nun tatsächlich zu sehen, wo sich dieses Navigationsnetz erstreckt, können Sie wie in Paul auf die Taste P tippen. Und alles, was hier grün ist, wird im Grunde als Raum identifiziert , durch den navigiert werden kann Die Taste kann das ein- oder ausschalten. Wenn Sie hier auf die Option Anzeigen klicken, können Sie außerdem sehen, ob die Navigation durch diese Taste ein- oder ausgeblendet wird Sie können es auch mit dieser Methode ein- oder ausschalten. Möglicherweise sind Ihnen jetzt einige Bereiche aufgefallen, die nicht von unserem grünen Navigationsnetz abgedeckt werden. Zum Beispiel rund um unsere Blöcke auf dem Boden und sogar um die Goomba selbst, diese bezeichnen Bereiche, in die unser Feind, unsere Guba hier, unsere Guba hier, Ich möchte diesen Raum etwas enger machen, also habe ich hier in meiner Goomba einen kleinen Trick. Lassen Sie uns hier wieder in unsere Goomba eintauchen. Und ich werde vier verschiedene Komponenten auswählen. Und ich gehe hier zu meinem Viewport, damit Sie sehen können, welche Komponenten das sind Ich wähle meine Kapselkomponente aus und halte dann die Steuertaste gedrückt und lasse meinen Player die Reichweite, meinen Collider und meine Stoppbox erkennen Collider und meine Stoppbox Alle vier, das sind verschiedene Kollisionsvolumen. Dann werde ich im Detailbereich für immer eine Suche durchführen. Ich habe dieses Kontrollkästchen für die Navigation mit dem Effekt N ever effect. Ich möchte das Häkchen entfernen. Wenn ich das jetzt speichere und zu meinem Level zurückkehre, kannst du sehen, dass dieser Raum unter unserer Gumba enger geworden ist unter unserer Dadurch ist es so, dass unser Gumba, wenn er sich hin und her bewegt, nicht in einem Bereich aufhört, in dem er ursprünglich angefangen hat. Alles klar? Also bei all dem, stell sicher, dass du deinen Gumba in deinem Level ausgewählt hast deinen Gumba in deinem Level ausgewählt In Ihren Standardparametern hier, die Sie dem Editor zugänglich gemacht haben Sie haben überprüft , ob es sich um einen Sucher handelt. Beachten Sie, dass dieser Zug nach links nicht wirklich wichtig ist, wenn es sich um einen Sucher dieser Zug nach links nicht wirklich Ich werde reinspringen und spielen. Wenn sich mein Charakter bei der Erkennungsreichweite überschneidet, sucht Argumba jetzt danach Der Spieler sieht im Moment nicht viel anders aus, aber du merkst, dass er sehr aggressiv ist , wenn er nach mir sucht Selbst wenn ich herkomme, wirst du mich auch aufsuchen. Jetzt werden Sie feststellen, dass er im Grunde anhält und sich im Handumdrehen bewegt. Und das liegt daran, dass wir in Argumbascript im Grunde jedes Häkchen auswerten, wir in Argumbascript im Grunde jedes Häkchen auswerten ob es sich um einen geheimen Feind handelt oder nicht Und wenn das stimmt, gehen wir zu unserem Spielercharakter über. Wenn ihr nicht wollt, dass es ganz so aggressiv wird, könntet ihr Standardwerte eurer Klasse unterschreiten Lassen Sie uns unsere Suche nach dem Ken für immer beenden. Und du kannst deine Tickrate anpassen. Aktuell tickt das. Das wird bei jedem Frame ausgelöst. Aber Sie könnten das auf etwa 0,25 setzen , also jede Viertelsekunde Jetzt musst du vorsichtig damit sein. Und ich zeige dir ein Problem, wenn du diesen Weg gehst. Denn im Moment legen wir unser Tick-Intervall für alle unsere Goombas hier auf eine Viertelsekunde Wenn ich jetzt in ein Spiel einspringen würde, könnte das dazu führen, dass sich unser suchender Feind etwas realistischer bewegt, sodass er unseren Spieler nicht auf einmal verfolgt, wenn Sie so wollen Da gibt es eine kleine Pause. Allerdings. Das Problem dabei ist wenn du gehst und deine Gumba machst, kein Sucher, und dann springst du hinein und Jetzt ist es nur noch ein regulärer Patrouillenfahrer, er wird sich nicht besonders gut bewegen Ich empfehle entweder, deine Tickrate hier nicht in der Standardeinstellung deiner Gumba anzupassen , oder wenn du eine Sekumba haben willst, die ein modifizierteres Tick-Intervall hat, vielleicht eine halbe Sekunde, vielleicht jede Sekunde, dann erstellst du ein Duplikat dieses Goumbas, das einzig und allein darauf ausgerichtet ist, ein Suchender zu sein und überhaupt kein Patrouillenfahrer Auf diese Weise können Sie dafür eine modifiziertere Tickrate festlegen. Damit können Sie weitermachen und kompilieren und speichern, und Leute, das wird alles für die Erstellung einer Seeker-Version unseres Goomba tun Erstellung einer Seeker-Version unseres Goomba Hier. Wir sehen uns alle im nächsten Video. 64. Warp-Pipe-Blueprint: Willkommen. Im Laufe der nächsten Videos werden wir daran arbeiten, einen Entwurf für ein Warp-Rohr zusammenzustellen Entwurf für ein Warp-Rohr zusammenzustellen Und dieser Plan wird in hohem Maße anpassbar sein , da wir festlegen können wie hoch wir unsere Pfeife bauen wollen, wir werden festlegen können , wohin wir Wir werden in der Lage sein, mit der Leitung zu interagieren, die durch sie hinuntergeht Und zusätzlich werden wir in der Lage sein, mit dieser Leitung zu interagieren , indem wir auch durch sie hinaufgehen. Um nun wieder mit unserer Arbeitsversion des Projekts zu beginnen , werden wir nur das grüne Material erstellen, das auf unsere Pfeife kommen soll, sowie den Plan für die Schauspielerklasse für die Pfeife selbst zusammenstellen Plan für die Schauspielerklasse für die Pfeife selbst Abschließend fügen wir die für diese Leitung erforderlichen Komponenten hinzu und legen die Details dafür fest Und so weit werden wir in diesem Fall kommen. das grüne Material zu erstellen, fange ich zunächst hier in meinem Materialordner für die Inhaltsplattform an. Ich klicke mit der rechten Maustaste in eine leere Stelle. Wir werden ein brandneues Material erstellen. Ich nenne das M, Underscore Green. Und dann werde ich einfach die Leertaste drücken , um es zu öffnen Das wird ein wirklich grundlegendes Material sein. Der erste Knoten, den ich hinzufügen möchte, wird als konstanter Knoten mit drei Knoten bezeichnet. Wir können einen davon erhalten, indem wir die Drei-Taste gedrückt halten und mit der linken Maustaste klicken. Auf diese Weise können wir uns genau hier mit unserem Master-Material-Node verbinden und ihm eine Grundfarbe geben. dieser Knoten im Detailbereich ausgewählt ist, können Sie einen R-, G-, B-Wert festlegen , d. h. einen Rot-, Grün- oder Blauwert. Sie können diesen Farbwähler hier wählen , um eine Farbe auszuwählen Ich werde jedoch nur einen grünen Wert von eins festlegen. Drücken Sie die Eingabetaste. Das ist eine matte grüne Farbe, und ich möchte, dass meine Farbe etwas metallischer aussieht. Wir haben diese metallische Eingabe auf dem Master-Materialknoten, und wenn wir einen Wert 0-1 eingeben, können wir angeben, wie metallisch das sein soll Dazu füge ich einen konstanten Knoten hinzu, indem ich die eine Taste gedrückt halte und mit der linken Maustaste einen davon hinzufügen kann Ich werde das an den metallischen Eingang anschließen. Hier in diesem Knoten werde ich den Wert eins angeben. Und Sie können in der Vorschau hier sehen, dass es ein bisschen metallischer aussieht Jetzt möchte ich auch die Rauheit ändern , um diesen Effekt zu verstärken die eine Taste erneut gedrückt halte, klicke ich mit der linken Maustaste und setze diesen Wert in die Rauheit Und wenn Sie den Wert Null eingeben, können Sie sehen, dass wir es superglatt und somit superglänzend und reflektierend gemacht haben superglatt und somit superglänzend und reflektierend Ich möchte nicht, dass es so reflektierend ist, also setze ich den Wert hier stattdessen auf 0,5, etwas grob Das wird genau das Aussehen unserer Pfeife sein. Grün. Ein Wert von eins für metallisch, ein Wert von 0,5 für die Rauheit. Lass uns weitermachen und das speichern und dann können wir hier schließen Als Nächstes wähle ich unseren Blueprints-Ordner unten im Inhaltsbrowser Und wir werden unseren War Pipe-Blueprint erstellen, indem wir einfach mit der rechten Maustaste in eine Blueprint-Klasse mit leerem Raum klicken Das wird ein Plan für Schauspielerklasse sein. Ich werde das BP Underscore Warp Pipe nennen. Dann doppelklicke ich darauf, um es zu öffnen. Hier werde ich alle notwendigen Komponenten hinzufügen . Und dann gehe ich zurück und lege die Details für jeden Teil fest. die Komponenten hinzufügen, achten Sie auf die Beziehung zwischen den einzelnen Komponenten , denn das wird wichtig sein Ich werde meinen Standard-Szenenwurzel hier draußen lassen. Das ist dieses Symbol genau hier. Alle Komponenten, die ich hinzufügen werde , werden daran angehängt. Das erste, das ich hinzufügen werde, wird als instanziertes statisches Netz bezeichnet , nicht das hierarchische, das instanzstatische Und ich werde diesen einen Körper nennen. Damit legen wir nun ein statisches Netz fest , das eine zylindrische Form haben wird . Und wir werden Abschnitte davon per Skript hinzufügen. Je nachdem, wie groß oder stumpf unsere Pfeife sein soll. Noch einmal, ich werde diese Details später hinzufügen. Die zweite Komponente , die ich hinzufügen möchte, möchte ich auch zu unserem Standard-Szenenstamm hinzufügen. Wir werden es daran anhängen. Wir werden einen hinzufügen. Das wird ein einfaches statisches Netz sein und ich werde es One Pipe Top nennen. Das wird der obere Teil unserer Pfeife sein, der etwas breiter sein wird. Nachdem wir unser Rohroberteil ausgewählt haben, werden wir zwei Komponenten daran anbringen. Stellen Sie sicher, dass Sie das ausgewählt haben. Das erste, das wir hier hinzufügen werden, wird ein statisches Netz sein und ich werde dieses Rohr Inside nennen. Das wird der Innenansicht unserer Pfeife dienen sie im Grunde schwarz färben. Dafür wird das sein. Lassen Sie uns weitermachen und erneut unser Rohroberteil auswählen, da dieses nächste Bauteil ebenfalls an der Rohroberseite befestigt und somit eingerückt Dieselbe Tiefe. Das wird eine Kapselkollision sein, genau hier unter der Kategorie Kollision werden wir das einfach Kollision nennen. Okay, wir haben zwei weitere Komponenten, die ich hier hinzufügen möchte. Beide werden zur Standard-Szenenroute hinzugefügt . Stellen Sie sicher, dass Sie dies ausgewählt haben. Die erste, die wir hinzufügen werden, wird als Werbetafel bekannt sein Das wird einfach ein Symbol sein , das einen Punkt im Raum darstellt Also mach weiter und wähle das aus. Sie werden hier ein Drachenkopfsymbol sehen. Das wird gewissermaßen unser Warp genannt werden. Und dann füge ich noch einen hinzu und er wird dieselbe Tiefe haben Wählen Sie Ihre Standard-Szenenroute aus. Ich füge hinzu und gebe Billboard ein, das wird unser Warp-O-Punkt sein Diese Symbole stellen einfach einen Punkt im Raum dar , von dem wir unseren Charakter anweisen werden , ein - oder auszusteigen - oder Okay, nachdem unsere Komponenten an ihrem Platz sind, lassen Sie uns weitermachen und die Details für jede Komponente festlegen Ich fange mit meinem Rohrkörper an und stelle sicher, dass Sie diesen ausgewählt haben. Ich werde die Position dafür, die Z-Position, auf fünf setzen . Und ich werde die Skala sofort festlegen, noch bevor ich mein statisches Durcheinander festlege. Lassen Sie mich sogar zuerst das Mesh einrichten , damit Sie einige dieser Änderungen tatsächlich sehen können . In diesem Jahr werden wir einen Zylinder verwenden und diesen Zylinder aus der Liste mit den Grundformen des Motors auswählen . Das kannst du oben in dem Tooltip sehen. Nachdem dies jetzt implementiert ist, werden wir den Maßstab festlegen. Ich werde die Skala auf 2,252 0,25 setzen und dann werden wir 0,1 für die Z-Skala einstellen Ich werde diesen Sperrknopf überprüfen oder ihn lieber entsperren. Wenn ich also einen dieser Werte ändere, sie sich nicht alle gleichzeitig ändern, und dieser Wert wird 0,1 sein. Ich habe mich auch dort falsch ausgedrückt, weil es sich um ein statisches Instanznetz handelt Wir werden nicht sehen, dass irgendeines davon sofort zu unserem Viewport hinzugefügt Diese Typen werden über unsere Konstruktionsskripte hinzugefügt , du wirst hier also noch nichts sehen, aber warte in zukünftigen Videos darauf Außerdem möchte ich unser Material hier so ändern, dass es grün ist . Weil das grün sein wird, das wird unser Material hier sein. Das wird die Länge unseres Rohres sein, der Rohrkörper selbst. Ordnung. Wenn das alles erledigt ist, machen wir uns auf den Weg zu unserer Pfeife. Fahren Sie fort und wählen Sie das dafür aus. Wir werden auch einen Zylindertyp im Zylinder hinzufügen. Es wird wieder aus dem Paket mit den Grundformen für Motoren stammen. Ich werde das auch auf Grün einstellen. Das gleiche Material M, grün unterstrichen, weil es sich um ein statisches Netz handelt Wir werden das in unserem Viewport drüben im Skalenbereich sehen. Ich stelle die Skala für X und Y auf 2,75 ein. Lassen Sie mich hier ein wenig nach hinten zoomen In meinem Darstellungsfenster wird das Z für die Z-Position 0,5 sein für die Z-Position 0,5 Ich werde diesen Wert auf 35 setzen. Es wird ein bisschen weiter oben sein für unsere Pfeife da drinnen. Lass uns weitermachen und das auswählen. Das wird auch ein Zylinder für das statische Netz sein. gleiche gilt für den Motor. Grundformen packen unser Material hier, ich werde es auf etwas Schwarzes setzen. Wenn Sie schwarz beleuchtetes Material eingeben, werden Sie einen guten Farbton von mattem Schwarz finden. Ich werde die Position dafür im Z auf 25,5 setzen , sodass es nur ein bisschen herausragt Jetzt siehst du, wie einige hier um die Waage kämpfen. Lassen Sie uns unsere Skala auf 0,8 für das X und 0,8 für das Y reduzieren , und unser Z wird 0,5 sein. Wenn ich das mache, Sie so aussehen. Es wird also wie das Innere einer Pfeife aussehen. Ziemlich clever, oder? In Ordnung, als Nächstes haben wir unsere Kollision, unsere Kapselkollision Mach weiter und wähle das aus. Was wir hier tun werden, ist den Standort zu ändern. Die Z-Position wird 80 sein. Wir fangen an, es hier über die Spitze unseres Rohres hinausragen zu sehen . Wir müssen das auch vergrößern. Die halbe Höhe, ich werde sie auf 300 setzen. Der Kapselradius wird hier auf 40 gesetzt. Und wir werden dies verwenden, um zu überprüfen, ob sich unser Charakter über der Pipe befindet oder ob diese Pipe invertiert ist, ob das Zeichen diese überlappt oder nicht So können wir überprüfen, ob der Charakter einen Knopf drückt , um auf diese Weise mit der Pfeife zu interagieren und sie wegzuziehen Außerdem müssen wir in den Kollisionsbereich kommen. Kommen Sie unter das Kollisions-Preset. Wir werden das auf Benutzerdefiniert einstellen . Wir werden alles ignorieren. Wir werden Überschneidungen durch die Spielfigur akzeptieren, das heißt, wenn sich unser Charakter überschneidet, werden wir das gleich als Nächstes erkennen Lassen Sie uns weitermachen und unseren Warp im Point auswählen. Auch hier wird ein Punkt spezifiziert, an dem wir mit dem Warping beginnen werden Dafür werde ich unsere Z-Position hier im Z festlegen . Ich werde sie auf 70 setzen Es wird es genau dort platzieren, direkt über unserer Pfeife. Wir werden vielleicht daran herumspielen, aber ich werde es vorerst bei 70 belassen Was unseren O-Punkt angeht, wird er ein bisschen darunter liegen Also werde ich das Z dafür auf minus 35 setzen. Auch hier können wir damit herumspielen, aber das wird ein guter Ausgangspunkt sein Wenn Sie also warpen, wir das als Warppunkt verwenden Wenn wir aussteigen, werden wir das als Warp-Out-Punkt für Anfänger verwenden das als Warp-Out-Punkt für Anfänger Ordnung, und damit wir einen ziemlich guten Start für unsere Offensichtlich gibt es hier noch viel mehr zu tun. Was das Scripting angeht, ganz sicher. Mach weiter und speichere das und wir nennen es Video. Wir sehen uns beim nächsten Mal. 65. Warp-Pipe-Konstruktions-Skript: Willkommen. Wir werden hier mit unserer BP-Kriegspfeife weitermachen. Und unser nächster Schritt wird darin bestehen Konstruktionsskript einzufügen unser Konstruktionsskript einzufügen, um unsere Pfeife in hohem Maße anpassbar zu machen . Um es so zu machen, dass wir den Rohrkörper der Länge des Rohres anpassen können , wenn Sie so wollen. So groß oder stumpf, wie wir möchten. Die gute Nachricht hier ist, dass wir uns einige Skripte von unserer Mushroom-Plattform ausleihen können , die wir zu von unserer Mushroom-Plattform Beginn des Kurses erstellt haben Lassen Sie uns also gleich loslegen. Der erste Schritt besteht darin , eine Variable zu erstellen. Klicken Sie auf die Plus-Schaltfläche. Ich nenne das meinen Pipe-Endpunkt. Stellen Sie sicher, dass es sich um eine Vektorvariable handelt damit Sie sie genau dort auswählen und in einen Vektor ändern können. Dann werde ich gleich weitermachen und kompilieren. Weil ich dafür einen Standardwert im Z setzen möchte , möchte ich diesen auf minus 100 setzen. Und dann werde ich diese Kästchen ankreuzen, um diese Instanz editierbar zu machen und um das Three-D-Widget anzuzeigen Damit kann ich jetzt weitermachen und hier kompilieren und speichern. Und zieh diese Kriegspfeife irgendwo in mein Level. Vorerst werde ich es direkt in der Nähe meines Spielerstarts platzieren . Jetzt, wo wir das in unserem Level haben, können wir sehen, dass wir diesen Pipe-Endpunkt haben, diese Variable, sie ist jetzt für den Editor sichtbar , wir können es hier sehen. Und so könnte ich diesen Wert hier im Editor nach oben oder unten ändern . Lassen Sie mich das auf die Standardeinstellung zurücksetzen. Oder ich kann tatsächlich auf dieses Drei-D-Widget selbst klicken und es ebenfalls nach oben oder unten verschieben. Lassen Sie mich weitermachen und das auf den Standardwert von minus 100 zurücksetzen. Jetzt werden wir den Wert dieser Variablen in unserem Konstruktionsskript verwenden . Lassen Sie uns also wieder in unsere Warpipe eintauchen, unseren Tab mit dem Konstruktionsskript. In unserem Konstruktionsskript möchten wir im Wesentlichen ein Skript hinzufügen, das hier einige Abschnitte unseres Rohrkörpers hinzufügt. Und das wird geschehen , indem Teile unseres Zylinders hier innerhalb unseres statischen Netzes unseres Rohrkörpers hinzugefügt werden. Nun, falls Ihnen das ein bisschen bekannt vorkommt, denn wir haben etwas Ähnliches gemacht, das in unserem BP-Plattform-Launcher identisch unserem BP-Plattform-Launcher Jetzt können wir hier eine kleine Abkürzung nehmen , indem wir hier ein Skript stehlen Aber lassen Sie mich Sie daran erinnern , was wir zu Beginn des Kurses getan haben Indem wir eine davon in unser Level gezogen haben, innerhalb unseres BP-Plattform-Launchers, haben wir eine Variable hinzugefügt, die als Trunk-Endpunkt bezeichnet wird Das war eine Vektorvariable und wir haben sie instanzeditierbar gemacht und sie so gestaltet, dass sie dieses Drei-D-Widget hat Und indem wir es hier im Level-Editor ändern, wir tatsächlich Abschnitte unseres Plattform-Launcher-Stammes hinzu unseres Plattform-Launcher-Stammes Wir werden den gleichen Aufbau hier in unserer Leitung haben . Wir werden im Grunde in der Lage sein, diesen Diamanten für unsere Rohrendpunktvariable auszuwählen . Wir ziehen es nach unten und dann unser Konstruktionsskript nur füllt unser Konstruktionsskript nur einige Rohrabschnitte aus. Dieselbe Methode hier, in meinem Plattform-Launcher. Ich öffne diesen Blueprint einfach , indem ich im Outliner drüber klicke Wir werden das im Konstruktionsskript unseres Plattform-Launchers bearbeiten Konstruktionsskript unseres Plattform-Launchers Ich werde hier drinnen ein Skript stehlen. Ich werde hier klicken und ziehen. Und dann werde ich die Steuerung gedrückt halten und auch unsere vier Schleifen abrufen. Wir werden versuchen, diese Knoten zu stehlen. 1.234.567,8, Wenn die ausgewählt sind, drücken Sie C, um zu kopieren. Gehen wir zu unserem Skript zum Bau von Kriegsrohren. Ich klicke mit der linken Maustaste und drücke dann V, um das Tempo zu erhöhen. Der Grund dafür , dass das fast genauso gut funktionieren wird, ist, dass wir in unserem BP-Plattform-Launcher dieses statische Instanz-Mesh für den Trunk haben Und siehe da, sieh dir das Mesh an , das wir uns dort angesehen haben Es war derselbe Zylinder , den wir für unser Instant-Statiknetz hier in unserem Warprohr Unser Rohrkörper wird diesen Zylinder ebenfalls verwenden. Nun, eine Sache, die ich hier aktualisieren muss , damit dieses Skript genauso funktioniert, ist der Hinweis hier in unserem BP-Plattform-Launcher, dieser Mush-Trunk-Stamm, ich habe die Skala für das Z auf eins eingestellt Lassen Sie mich zurückgehen und das in unserer Kriegspfeife überarbeiten. Ich werde auch die Z-Skala auf eins ändern, sodass dieser Teil des Skripts hier in unserer BP-Kriegsleitung identisch funktioniert hier in unserer BP-Kriegsleitung identisch Dies wird eine Überarbeitung des vorherigen Videos sein. Ich werde die Z-Skala meines Rohrkörpers ändern. Vergewissern Sie sich, dass sie entsperrt ist, damit Sie die Z-Skala unabhängig voneinander auf eins ändern können . Ordnung , jetzt muss ich nur noch meinen Pipe-Endpunkt nehmen. Ich setze das in meine Vektorlänge ein. Ich werde das da drauflegen. Ich werde mein Konstruktionsskript anschließen, damit es während der Entwurfszeit hier ausgeführt werden kann. Wann immer wir Änderungen an diesem Blueprint vornehmen, wird er auch hier in unserem Level-Editor aktualisiert Und dann müssen wir angeben, welche Instanz wir hinzufügen möchten. Das wird unser Pfeifenkörper sein. Das werden wir so reinziehen. Diese Mathematik sollte alle gleich sein. Dort durch 100 dividieren, hier mit minus 100 multiplizieren Lass uns weitermachen und das kompilieren, stellen wir sicher, dass alles gut aussieht . Wir werden das speichern. Und jetzt, zurück in unserem Level-Editor, können wir sehen, dass wir einige Abschnitte unserer Pipe hinzugefügt haben. Wenn ich jetzt diesen Endpunkt hier nehme und ihn nach unten verlängere, können Sie sehen, dass jedes Mal, wenn ich ihn um zusätzliche 100 unwirkliche Einheiten verschiebe , ein Abschnitt einer Pipe hinzugefügt wird Tat hochgradig anpassbar. Und auch das funktioniert während der Entwurfszeit. Nicht während das Spiel läuft, sondern während der Entwurfszeit. Ordnung, das ist also alles, was wir mit diesem Teil unserer Kriegspfeife erreichen wollten . Es liegt noch viel Arbeit vor uns, aber jetzt haben wir ein Konstruktionsskript erstellt, das Teile unseres Rohrkörpers hinzufügt , sodass wir es stumpflänglich machen können. Wie groß wir es auch machen wollen, Leute, das wird es für dieses Ding reichen Wir sehen uns im nächsten. 66. Warp-Pipe-Eingänge: Ordnung, jetzt, wo unsere Pipe visuell ziemlich gut aussieht den Komponenten, die wir hinzugefügt haben, und dem Konstruktionsskript , das wir erstellt haben, visuell ziemlich gut aussieht, ist es an der Zeit, dass wir uns dem Warp-Pipe-Skript selbst zuwenden dem Warp-Pipe-Skript selbst zuwenden Das ist, dass unser Spieler tatsächlich mit dieser Kriegspfeife interagiert , um ihn dazu zu bringen einen anderen Bereich des Levels zu Um das zu erreichen, brauchen wir nun einen richtigen Input Und bevor wir mit dieser Diskussion beginnen, ist es an der Zeit, einen kleinen Überblick darüber zu geben, wie unsere Beiträge innerhalb unseres Projekts strukturiert sind. Wie ihr wisst, kontrollieren wir unseren Charakter aus der dritten Person in unserem Projekt und innerhalb unseres Charakters aus der dritten Person. Dieses Drehbuch gab es bereits. Dadurch wird ein Eingabe-Mapping-Kontext hinzugefügt. Dies bestimmt alle Eingaben, die sich auf dieses bestimmte Zeichen beziehen, die Eingaben, die dieses Zeichen verwenden kann. Jetzt habe ich dieses Asset IMC standardmäßig oben hier geöffnet In diesem Asset können wir die verschiedenen Eingabezuordnungen sehen, die zu dieser IMC-Standardeinstellung hinzugefügt wurden Eines davon ist das Abfeuern des Feuerballs, das das Außerdem haben wir einen für einen Spieler hinzugefügt, der nicht aktiv ist, und diesen verwenden wir innerhalb unserer BP-Plattform, um durch zu springen Wir haben es so gemacht, dass wir durch unsere Plattform fallen können, wenn diese Aktion ausgelöst wird . Und wir haben es so gemacht , dass diese Aktion durch die S-Taste als auch durch Drücken der Y-Achse unseres linken Daumensticks nach unten ausgelöst als auch durch Drücken der Y-Achse unseres linken Daumensticks nach unten der Y-Achse unseres linken Daumensticks Damit unsere Warpipe-Interaktion jetzt funktioniert, werden wir tatsächlich diese Player-Down-Eingabe verwenden , die wir Wir werden die Dinge jedoch ein wenig modifizieren, also werden wir an dieser Stelle die Dinge wieder aufnehmen. Falls du vergessen hast, wo dieser Athot existiert, findest du ihn hier in unserem Ordner für Eingabeaktionen für Dritte Und hier haben wir unsere A-Spieler-Down-Eingabeaktion erstellt unsere A-Spieler-Down-Eingabeaktion Falls Sie dieses Asset von früher im Kurs nicht haben , haben wir es so erstellt , dass Sie mit der rechten Maustaste auf eine leere Stelle unter der Eingabe klicken. Das war eine Eingabeaktion. Wir nennen es IA Player Down. Wir werden das wieder öffnen, weil wir einige Änderungen daran vornehmen werden. Derzeit setzen wir in unserer IA-Player-Down-Eingabeaktion den Wertetyp also auf eine digitale Kugel. Ist es passiert oder nicht? Wir werden das leicht ändern, indem wir unter den Trigger-Bereich kommen. Derzeit ist es einfach heruntergefahren. Drängen wir tatsächlich nach unten? In unserem Fall, dem IMC-Standard, drücken wir zum Beispiel den SQ nach unten Ist es passiert oder nicht? Jetzt werden wir das geringfügig ändern , sodass dieser Wertetyp derselbe digitale Wert bleibt. Ist es passiert, nicht wahr? Allerdings werden wir den Wert im Index von „Down“ auf „Hold“ ändern . Wir werden prüfen, ob wir eine bestimmte Taste gedrückt halten. Wenn wir das jetzt etwas weiter ausbauen, werden wir unseren Schwellenwert für die Haltezeit auf 0,2 Sekunden ändern . Und unser Aktivierungsschwellenwert wird bei eins liegen, im Grunde durchgehend, indem wir ihn auf einen Wert von 1,0 setzen Wir wollen im Grunde herausfinden, ob unser linker Daumenstick mindestens 0,2 Sekunden lang ganz nach unten gedrückt ist mindestens 0,2 Sekunden lang ganz nach unten Das ist im Wesentlichen das, was wir hier sagen. Wir werden auch dieses Kästchen ankreuzen, da es sich um einen Schuss handelt , der es so macht , dass wir, damit es sich wieder registrieren kann, im Grunde den linken Daumenstick loslassen müssen , um es erneut auszulösen Wenn das alles an Ort und Stelle ist, hält Digital Bool die Auslöseschwelle von 0,21 auf eins . Gehen Sie weiter und speichern Sie das und zurück in unserer IMC-Standardeinstellung Aktuell haben wir die Aktionszuweisung für die Eingabe von Player-Down-Eingaben auf die Taste S gesetzt Ich werde jedoch dieses Gamepad, den linken Daumenstick und die Y-Achse ändern linken Daumenstick Ich werde auf dieses Drop-down-Menü klicken. Und im Gamepad-Bereich ist dies wiederum nur für Gamepad-Spieler Ich ändere es auf Gamepad links, Daumenstick runter. Also werden diese beiden das A Player Down-Event auslösen Sowohl in unserer Jump-Through-Plattform, wie es jetzt , als auch in unserer War Pipe, ist , als auch in unserer War Pipe, wo wir sie im nächsten Video verwenden werden. Jetzt wollen wir hier im Action-Mapping tatsächlich noch ein Spieler-Mapping erstellen . Wir haben diesen Spieler wieder in unserem Inhaltsbrowser. Lass uns weitermachen und das duplizieren. Und wir können das duplizieren, indem entweder mit der rechten Maustaste darauf klicken und Duplizieren wählen, oder Control plus D duplizieren das. Und ich werde das so einrichten, dass es ein Spieler ist. Der Grund, warum ich hier oben einen Spieler hinzufüge , ist einfach , dass ich in der Lage sein möchte , sowohl durch eine Pfeife runterzugehen als auch durch eine Pfeife hochzusteigen. Wenn ich das jetzt öffne, möchte ich sicherstellen, dass es genau die gleichen Einstellungen hat wie unser Player unten. Also ist es auf Digital Bull eingestellt und die Trigger sind so eingestellt , dass sie 0,2 Sekunden halten. Ich möchte, dass dies auf einen Schuss gesetzt wird die Auslöseschwelle wird ebenfalls einer sein Lassen Sie mich noch einmal hier auf meinem Player unten nachschauen, wir haben Digital Bull Hold 0,21 Digital Bool Hold 0,21 Schuss in 1,0 Das sieht alles gut aus, also machen Sie weiter und speichern Sie Jetzt muss ich auch diese spezielle Eingabeaktion innerhalb unseres Eingabe-Mapping-Kontextes hinzufügen , dieser Und falls Sie vergessen haben , wo sich dieser IMC-Standard befand, noch einmal hier in unserem Inhaltsbrowser zurück Diese gab es in der Ordnerserie für Dritte, und Sie finden diesen Ordner im Eingabeordner, IMC-Standard Also werde ich das wieder öffnen. Ich muss es hier von oben öffnen. Um diesen IA-Player zu unserer Liste möglicher Eingabeaktionen hinzuzufügen , müssen wir auf diese kleine Plus-Schaltfläche klicken. Es wird ihn gleich hier unten hinzufügen. Jetzt muss ich diese leere Eingabeaktion tatsächlich eintragen. Also werde ich so nach oben suchen. Jetzt muss ich herausfinden, mit welchen Tasten oder Eingaben ich das Eingabe-Action-Event im Player auslösen möchte . Nun, ich mache ein Tastatur-Event für W. Wenn ich genau hier auf dieses Tastatursymbol klicke. Wenn das orange ist, kann ich jetzt einfach die W-Taste drücken und es wird automatisch dem zugewiesen Ich klicke noch einmal auf diese Plus-Schaltfläche, damit ich eine weitere Eingabe hinzufügen Anstatt dieses Mal auf die Tastatur zu klicken , werde ich tatsächlich neben der Tastatur klicken und zum Gamepad wechseln Ich suche nach Gamepad, linker Daumen hoch. Das werden meine beiden Mappings sein, um auszulösen Lassen Sie uns damit weitermachen und unser Eingabe-Mapping speichern. Kontext-Standard hier und jetzt werden wir Position sein, in der wir diese speziellen Ereignisse hinzufügen können. Unser Spieler unten und unser Spieler oben in unserem Warp-Pipe-Ereignisdiagramm Das ist also alles, was da rein kommt. Im nächsten Video sehen wir uns dort. 67. Warp-Pipe-Skript #1: Ordnung, also in unserem letzten Video haben wir unser Input-Action-Player-Down-Asset modifiziert unser Input-Action-Player-Down-Asset Und wir haben das auch dupliziert und eine IA-Player-Up-Input-Aktion erstellt eine IA-Player-Up-Input-Aktion Dann haben wir sichergestellt, dass beide in unserer IMC-Standardeinstellung enthalten Dies ist unser Eingabe-Mapping-Kontext , sodass wir unseren IA-Player hier unten einigen Eingaben zugeordnet haben , ebenso wie unsere Player-Up-Map einigen Eingaben zugeordnet ist Eine Tastatur und ein Controller. Jetzt werden wir sie in unserer BP-Kriegsleitung verwenden . Finden Sie Ihren Weg hier drüben, ich klicke mit der linken Maustaste, ziehe eine Auswahlmarkierung heraus und lösche diese vorhandenen Ereignisse in unserem Ereignisdiagramm unserer Kriegspfeife Und wir werden unsere beiden neuen Ereignisse genau hier hinzufügen. Unser Spieler unten rein, unser Spieler hoch, um uns mit unserer ersten Pipe-Interaktion zu beginnen. Also werde ich mit der rechten Maustaste in eine leere Stelle klicken. Wir werden nach Player-Up suchen und nach erweiterten Action-Events suchen. Haltet Ausschau nach dem Spiel mit diesem Pfeilsymbol. Und dann klicken wir mit der rechten Maustaste und ich suche nach Player down. Nochmals, die erweiterten Aktionsereignisse, das Pfeilsymbol eins. Lassen Sie uns das so ausdrücken. Okay, wir werden also ein paar Variablen und einen Gate-Knoten und einige Überlappungen verwenden ein paar Variablen und einen Gate-Knoten und , um zu erkennen, ob unser Spieler tatsächlich in der Lage ist , mit unserer Warpipe zu interagieren Bevor ich nun mit diesen Ereignissen weitermache, lassen Sie uns ein paar dieser Variablen im Bereich „Mein Blueprint“ erstellen dieser Variablen im Bereich „Mein , die wir benötigen werden Im Abschnitt „ Variablen plus“ werden wir also eine Variable für die Frage hinzufügen mit der Frage interagieren kann Das wird ein Edelmetall sein. Im Grunde werden wir diese Variable verwenden, um uns zu fragen, ob jede einzelne Pfeife, die wir auf der Ebene platzieren, tatsächlich mit ihr interagieren können Vielleicht gibt es einige Pfeifen, die wir nur Dekorationszwecken da draußen platzieren. Es ist nicht beabsichtigt , dass der Spieler tatsächlich damit interagiert, also können wir auf diese Weise darauf hinweisen, dass, ja, das ist eine Kriegspfeife, mit der wir unsere Spieler verzerren wollen Die anderen werden nur dekorativ sein, da diese Variable hier ausgewählt wurde Ich mache einfach Control plus D, um es zu duplizieren. Und dieser wird auch ein Edelmetall sein. Dieser wird jedoch Pipe genannt werden. Es wird ein Fragezeichen sein. Und das stellt im Grunde die Frage, ist das eine Leitung, die wir runtergehen wollen , oder ist es eine Leitung , die wir hochgehen wollen? Das wird also verwendet, um die Animation unserer Spieler zu bestimmen , wenn sie mit der Pipe interagieren. Werden sie es hinuntergehen oder werden sie es hinaufgehen? Lassen Sie uns nun weitermachen und diese kompilieren. Wir können also einige Standardeinstellungen für diese festlegen. Das kann interagieren, wir wollen es bei False belassen. Nehmen wir an, standardmäßig werden wir sagen, dass wir mit all unseren Pipes nicht interagieren können. Wir können es jedoch überprüfen, wenn wir es im Editor aktivieren. Stellen Sie also sicher, dass Sie dieses Kästchen ankreuzen, zum Beispiel editierbar, damit wir, wenn wir unsere Pipe in unserer Ebene ausgewählt haben, dieses Kästchen für eine bestimmte Instanz davon aktivieren können für eine bestimmte Instanz davon Vier ist Downpipe-Bollion, wir werden diese Option standardmäßig und auch sagen, dass das Exemplar editierbar ist Wenn wir also wieder im Editor sind, können wir auch diese Variablen ändern Wenn ich nun weitermachen und das kompilieren und speichern und meine War Pipe wieder in meinem Level auswählen würde, kannst du jetzt sehen, dass mir diese beiden Variablen im Level-Editor zur Verfügung stehen. Ich kann das Kästchen „Ken interagiert “ oder „Downpipe“ auswählen, okay, springe zurück zu unserer Warpipe, wenn unser Spieler nach oben drückt Wir wollen ein paar Dinge überprüfen, um zu sehen, ob sie wahr sind, bevor wir überhaupt weitermachen Und was wir überprüfen wollen, um zu sehen, ob es wahr ist oder nicht, ist, ob wir mit der Pipe interagieren können? Lassen Sie uns das also in unser Diagramm ziehen. Können wir mit der Pfeife interagieren? Wir wollen auch überprüfen, ob es sich nicht um ein Fallrohr handelt. Ich werde mein Fallrohr reinbringen . Wir werden uns das holen. Ich werde das hinter mir lassen und sagen, dass ich nach einem Booleschen Wert suche Dieser Knoten genau dort. Jetzt möchte ich überprüfen, ob beide wahr sind. Dazu kann ich mit der rechten Maustaste in eine leere Stelle klicken und einen Knoten einfügen. Ich suche nach einem Booleschen Wert. Ich werde diesen Can Interact an die Oberseite anschließen und dann die Downpipe an den zweiten Eingang hier anschließen Und wir werden den Ausgang in einen Verzweigungsknoten stecken, indem wir die in einen Verzweigungsknoten B-Taste gedrückt halten und mit der linken Maustaste klicken Wir werden das einstecken, also werden wir von hier aus feuern Oder es interessiert uns nur, wenn es von hier aus losgeht , wenn wir diesen Input gestartet haben. Kurz gesagt, Action , mit unserem Spieler oben. Aktion eingeben. Das wird aus dem gestarteten Stift hier hinten in unserer Kriegsleitung abgefeuert. Es wird von hier aus feuern, von diesem gestarteten Stift aus. Sobald diese Bedingungen erfüllt sind, haben wir entweder die WK auf unserer Tastatur oder den linken Thumbstick in der aufwärts gerichteten Position für mindestens 0,2 Sekunden gedrückt gehalten linken Thumbstick in der aufwärts gerichteten Position für mindestens 0,2 Sekunden Wenn wir diese Bedingungen erfüllt haben, wir uns die Frage: Hey, können wir überhaupt mit dieser Leitung interagieren? Und oh, übrigens, ist das kein Fallrohr übrigens, ist das kein Fallrohr Wenn das stimmt, wollen wir durch ein Tor gehen. Ich ziehe mich hier raus und tippe eine Gate-Suche ein. Ich suche nach einem Gate-Knoten. Wir werden durch ein Tor gehen. Im Grunde nähern wir uns einem harten Tor und wollen herausfinden, ob das Tor offen oder geschlossen ist. Wenn das Tor nun offen ist und wir uns ein physisches Tor vorstellen, wenn es offen ist, werden wir das Drehbuch machen , das uns hier als nächstes einfällt. Wenn das Tor jedoch geschlossen ist, werden wir hier nicht weiterkommen. Bevor wir nun zum Öffnen oder Schließen des Tores kommen, kümmern wir uns um die Eingaben unseres Spielers nach unten. Um ein wenig Zeit zu sparen, werde ich diese Knoten hierher kopieren. Also werde ich mit der linken Maustaste klicken und ziehen, um diese vier zu bekommen. Ich werde auch die Strg-Taste gedrückt halten und linken Maustaste klicken und mir diesen fünften Knoten genau hier schnappen. Wenn also die ausgewählt sind, mache ich Strg+D, um sie zu duplizieren und sie gleich hier runter zu bringen. Das wird jetzt weitestgehend dasselbe sein, aber für die Eingabe durch den Spieler brauche ich diesen Knotenknoten nicht Das sind eine Menge Knoten. Also werde ich das dafür löschen Wir werden sagen, dass wenn wir die Taste S auf unserer Tastatur drücken, oder dass unser linker Daumenstick gedrückt ist. Sobald das begonnen hat, werden wir prüfen, ob wir damit interagieren können und ob es sich tatsächlich um ein Fallrohr handelt . Wir wollen das herausfinden, ist es tatsächlich ein Fallrohr? Und wenn das stimmt, können wir damit interagieren und es ist ein Fallrohr, ein Rohr, das wir hinunterfahren können. Wir wollen auch durch ein Tor gehen. Wir sind uns also im Wesentlichen darüber einig, ob wir versuchen, eine Leitung hochzufahren oder eine Leitung hinunter zu gehen. Das ist unsere Art, uns dem Tor zu nähern, um zu sehen, ob eine Interaktion überhaupt möglich ist. Um nun herauszufinden, ob eine Interaktion überhaupt möglich ist, wollen wir herausfinden, ob wir tatsächlich in der Lage sind , diese Leitung hinunterzugehen. Und dafür werden wir unsere Kollisionsüberlappung genau hier verwenden. Lassen Sie mich jetzt einfach sehr schnell zu unserem Viewport springen und nach hinten zoomen Wir haben diese Kollision, diese Kapselkollisions-Komponente , die wir im Grunde überprüfen wollen , hat unseren Spieler sogar über dem Rohr, so wie hier Wenn sie es sind, wenn sie sich in diesem Bereich befinden, werden wir sagen, ja, das Tor ist offen. Mach weiter. Wenn unser Spieler diese Kollision jedoch nicht überschneidet, werden wir im Grunde sagen , nein, tut Du kannst über diesen Torknoten hinaus überhaupt nicht vorrücken . Du kannst es also nicht tun. Ich kann mit diesem Kollisionsknoten, der hier in unseren Komponenten ausgewählt wurde, nicht die Kriegsleitung herunterfahren . Klicken wir mit der rechten Maustaste in eine leere Stelle. Wir werden ein Ereignis hinzufügen, für den Fall, dass sich das überschneidet. Sobald ich darauf klicke, wird dieser Knoten genau hier unten platziert. Und lassen Sie mich einfach meinen Gang nach unten bewegen und ihn so einrahmen Also, was ich über die Überlappung von Komponenten herausfinden möchte über die Überlappung von Komponenten Wir wollen herausfinden, hey, ist es unser Spieler, der das überschneidet? Also kann ich wieder mit der rechten Maustaste auf eine leere Stelle klicken. Ich könnte einen Spielercharakter bekommen und wir könnten von hier aus alles Gleiche machen. Ich möchte jedoch speziell herausfinden, ob es unser Charakter aus der dritten Person ist , der sich hier überschneidet Denn wenn ja, möchte ich tatsächlich einen Verweis auf unseren Charakter in der dritten Person für später im Drehbuch speichern einen Verweis auf unseren Charakter in der dritten Person für später im Drehbuch Stattdessen werde ich dieses Mal Stecknadel meines anderen Schauspielers herausziehen und eine Besetzung für eine Figur in der dritten Person vornehmen. Wenn es also der Charakter aus der dritten Person ist , der die Überlappung dieser Kollision macht, werden wir das in unsere Notizen zum Öffnen des Eingangs einbauen, also werden wir sagen, ja, das Tor ist offen. Fahren Sie fort Sie können hier weiter gehen, solange Sie entweder nach oben oder unten gedrückt haben , je nachdem welcher Art von Rohr wir zu interagieren versuchen. Okay, dann lassen Sie uns auch hier oben beim Ereignis mit der rechten Maustaste auf unsere Kollisionskomponente klicken , um eine Überlappung zu beenden. Auch hier können wir unsere Third-Person-Charakterbesetzung mit einbeziehen. Beachten Sie, dass ich Steuerung D ausführen werde, wenn das ausgewählt ist. Schieben Sie es wie folgt in die gewünschte Position. Wir sagen, wenn Sie die Überlappung beendet haben, also nicht innerhalb des Kollisionsbereichs sind, werden wir die Tore schließen und standardmäßig beginnen wir mit geschlossenem Tor. Im Grunde genommen wird dies der Anfang unseres Pipe-Interaktionsskripts sein unseres Pipe-Interaktionsskripts , weil es ein bisschen umfangreich ist. Ich werde versuchen, es wie eine Zelle zu rahmen. Versuche, den oberen Teil an seinen Platz zu bringen. Wenn du das Video hier pausieren willst, kannst du sehen, dass wir unsere Variablen hier drüben haben, Spieler hoch, Spieler runter. Sie werden beide in den Eingangsteil des Tores münden. Und das Öffnen und Schließen hängt davon ab, ob wir diese Kollisionskomponente tatsächlich überlappen oder nicht Nichts davon wird funktionieren wenn wir nicht in unsere Klassenvorgaben hier in unserer Warpipe gehen und diesen Parameter hier unten im Eingabebereich ändern diesen Parameter hier unten im Eingabebereich Im Moment wird diese Warpipe keines dieser Ereignisse erkennen Selbst wenn wir das tun würden, würde die W- oder S-Taste auf unserer Tastatur diese überhaupt nicht erkennen. Und das liegt daran, dass innerhalb unserer Klassenstandardwerte ein Darsteller-Klassen-Blueprint keine Eingaben erkennt, ein Darsteller-Klassen-Blueprint keine es sei denn, Sie ändern in der Eingabekategorie die Eingabe für den automatischen Empfang von deaktiviert auf Spieler Null In unserem Fall, da es sich um ein Einzelspieler-Spiel handelt, müssen wir nur überprüfen, ob Spieler Null , also unser Leihspieler, irgendwelche Eingaben eingibt, die WK, die S-Taste oder vielleicht auf dem linken Daumen nach oben oder unten. Okay, wenn das alles erledigt ist, stellen Sie sicher, dass Sie kompilieren, um sicherzustellen , dass unser vorhandenes Skript hier Lassen Sie uns weitermachen und das wird uns den Ausgangspunkt für unsere Warpipe-Interaktion geben . noch viel Arbeit vor uns, aber wir werden im nächsten Video weitermachen. Wir sehen uns dort. 68. Warp-Pipe-Skript #2: Willkommen zurück in unserer BP-Kriegsleitung, wenn sich unser Charakter mit dem richtigen Kollisionsvolumen überschneidet Und wenn wir den richtigen Input eingegeben haben, kommen wir über das Tor hinaus Wir müssen unseren Charakter durch die Pipe nach oben oder durch die Pipe nach unten bewegen , je nachdem, in welche Richtung wir mit der Pipe interagieren wollen. Und um das zu tun, benötigen wir einen Verweis auf unseren Charakter. Also das Erste, was ich tun werde , ist hier nach oben zu zoomen. Und wenn wir das Tor hinter uns gelassen haben, müssen wir einen Bezug zu unserem Charakter herstellen. Ich werde schreiben, klicken Sie hier auf diesen Pin. Wir werden das auf variabel hochstufen. Das wird hier eine Variable erzeugen. Das werde ich meinen Spieler nennen. Und wir werden diese Referenz benötigen, um unserem Spieler zu sagen, dass er sich durch ein Rohr in eine der beiden Richtungen bewegen soll, nach oben oder nach unten. Okay, nachdem wir das getan haben, wollen wir als Nächstes sicherstellen, dass unser Spieler keine weiteren Eingaben macht. Denn sobald sich unser Charakter durch dieses Rohr bewegt, wollen wir nicht versuchen zu springen oder einen Feuerball oder etwas Ähnliches abzuschießen. Um das zu tun, klicken wir auf Eingabe holen uns den Spieler-Controller Und dann ziehen wir es raus und geben „Eingabe deaktivieren“ ein. Beachten Sie nun, dass, wenn wir das tun, der Ausgabewert unseres Get-Player-Controller-Knotens hier in das Ziel eingefügt wird. Das ist eigentlich falsch. Was wir tun wollen, ist das auf den Player-Controller zu verschieben . Wenn ich also die Steuertaste hier gedrückt halte, kann ich sie nach unten in den Player-Controller-Pin bewegen. Und das Ziel hier ist, dass ich mein Spieler sein möchte. Also sagen wir im Grunde, hey Spieler, du darfst keine Aktionen eingeben solange wir uns durch unsere Pipe bewegen. Damit möchte ich als Nächstes eine Frage stellen. Ich möchte einen Zweigknoten aufrufen die Taste B gedrückt halte und mit der linken Maustaste klicke. Und die Frage, die ich stellen möchte, ist, ist das ein Fallrohr , durch das wir fahren werden? Denn je nachdem, ob wir hinuntergehen oder durch ein Rohr hinaufsteigen, wollen wir verschiedene Arten von Charakteranimationen abspielen, um zu zeigen, wie sie durch ein Rohr wollen wir verschiedene Arten von Charakteranimationen abspielen, um zu zeigen hinuntergehen oder durch ein Rohr hinaufsteigen. Ziehen Sie das also per Drag-and-Drop auf unseren Zustand. Also, was wir dann machen werden, ist vom wahren Ast abzuweichen, wir werden darauf aufbauen. Zuerst werden wir eine Sequenz von Notizen hinzufügen. Also werde ich die S-Taste gedrückt halten und mit der linken Maustaste klicken. Weil es ein paar Dinge geben wird , die ich gerne passieren lassen würde. Wenn es eine Pfeife ist, gehen wir runter. Als erstes möchte ich hier eine Zeitleiste hinzufügen. Weil ich eine Variable im Laufe der Zeit manipulieren möchte , eine Float-Variable, um meinen Spieler um einen bestimmten Betrag innerhalb der Z-Richtung zu bewegen einen bestimmten Betrag innerhalb , damit er durch die Pipe nach unten geht. Lassen Sie uns eine Zeitleiste hinzufügen. Wenn ich mit der rechten Maustaste klicke, suche ich nach einer Zeitleiste. Es wird ganz unten sein. Wenn ich da nur das Wort Zeit einfüge, rufe ich diese Zeitlinie an. Mal sehen, wir rufen es ein, lassen wir das nicht zu einem Fallrohr verschließen Und dann doppelklicke ich darauf, um es zu öffnen. Und hier werde ich einen Float-Track hinzufügen. Klicken Sie also auf die Track-Schaltfläche. Wir werden einen Float-Track hinzufügen. Ich nenne das einfach Bewegungen. Und ich werde die Länge unserer Zeitleiste hier auf 1 Sekunde ändern . Weil ich unseren Charakter im Laufe von 1 Sekunde in Z-Richtung bewegen möchte unseren Charakter im Laufe von 1 Sekunde in Z-Richtung . Ich muss hier ein paar Keyframes hinzufügen. Also werde ich die Umschalttaste gedrückt halten und dann ein- und zweimal mit der linken Maustaste klicken. Mit der ersten Taste wähle ich die Zeit aus und setze sie auf Null und den Wert auf Null. Und dann das zweite Schlüsselbild, ich werde das auswählen, ich werde die Zeit auf eins und den Wert auf minus 200 setzen . Jetzt, nachdem ich die Eingabetaste gedrückt habe, kann ich diese Pfeiltasten drücken, um das Bild einzurahmen. Das ist eine Art visuelle Darstellung dessen, was hier passieren wird. Wir werden unseren Charakter innerhalb einer Sekunde um 200 unwirkliche Einheiten nach unten bewegen Sekunde um 200 unwirkliche Einheiten Nachdem dieser Track hinzugefügt wurde, können wir zu unserem Event-Graph zurückkehren. Und jetzt können wir diese Bewegungsausgabe genau hier sehen. Nochmals, wenn es sich um ein Fallrohr handelt, wenn es stimmt, dass wir mit einem beschrifteten Rohr interagieren, ja, es ist ein Fallrohr. Wir werden gleich hier von Anfang an spielen. Dann werden wir einen Hinweis auf unseren Spieler einbringen. Lass uns das per Drag-and-Drop ziehen. Wir holen uns das, wir ziehen es aus meinem Player raus. Und wir werden sagen, die relative Position und Drehung für die Kapselkomponente festlegen . Dieser hier, er wird zwei Knoten hinzufügen, unsere Kapselkomponentenreferenz, sowie diese festgelegte relative Position und Drehung. Da dieser Zeitplan aktualisiert wird, möchten wir unseren Spieler an einen neuen Ort schicken . Welcher Ort? Nun, lassen Sie uns von diesem neuen Ortstyp in Make Vector rückwärts ziehen , damit wir ihn in die X-, Y- und Z-Komponenten aufteilen können , Y- und Z-Komponenten Was ich dann tun werde, ist, einen Verweis auf unseren Punkt einzubringen , diese Komponente genau hier. Ziehen wir das in unser Diagramm. Und nur um zu unserem Standpunkt zu kommen, das ist unser Warp-Punkt Dieser Drachenkopf genau hier. Dies wird im Grunde der Ausgangspunkt sein , von dem aus sich unser Charakter verzerren wird. Okay, lassen Sie uns hier rausziehen, eintippen, Standort der Welt ermitteln, dann ziehen wir raus und geben Break Vector Das ist die Ausgabe der X -, Y - und Z-Position, der Position unseres Warppunkts Wir zerlegen das in seine X-, Y- und Z-Komponenten Wenn wir unseren Spieler verzerren, wollen wir das X gleich lassen und wir wollen, dass das Y gleich bleibt Wir wollen jedoch den Z-Wert ändern. Wir wollen unseren Z-Wert von unserem Warp-Punkt nehmen und aus dem Warp-Punkt herausziehen, die Plus-Taste einen Add-Node einfügen Was wollen wir dem hinzufügen? Was wollen wir zu dieser Bewegung hinzufügen? Auch dies wird den Wert innerhalb von 1 Sekunde um minus 200 ändern . Das wird unser neuer Z-Wert sein. Lassen Sie uns das etwas besser formulieren. So wird es also sein. Und dann klicke ich mit der linken Maustaste und ziehe auf die Taste. Und das wird unser Enter-Down-Pipe-Skript sein. Ich färbe das sofort schwarz. Also werde ich es ein bisschen hier oben verschieben. Wenn es ein Fallrohr ist, wenn es ein Rohr ist, das in unserem Editor als Fallrohr gekennzeichnet ist, wenn das stimmt, werden wir unseren Charakter auf diese Weise durch dieses Rohr nach unten bewegen. Auch jetzt müssen wir uns Sorgen machen, dass sie, du weißt schon, aus dem Rohr herauskommen, aber darüber werden wir uns gleich Gedanken machen. Nun, die zweite Sache, die ich möchte, dass passiert, wenn sie durch die Röhre gehen, wird das im Grunde unseren Player bewegen , ist, dass ich auch einen Soundeffekt abspielen möchte Deshalb haben wir diesen Sequenzknoten genau hier. Ich ziehe das in die Länge, füge einen Verzögerungsknoten hinzu, einen Verzögerungsknoten. Und ich belasse diesen Wert 0,2 und dann ziehe ich davon ab und füge einen Sound Two-D-Knoten hinzu. Dafür werde ich nach einer Pfeife suchen. Nein, es ist keine Pfeife. Ich glaube, ich habe es Warp genannt Warp. Das ist im Grunde der, den ich eingeben möchte Wir werden auch diesen Soundeffekt abspielen. Ich klicke sogar mit der linken Maustaste auf diesen Tapkey und nenne ihn so unser Warp X. Okay, ich werde das auch schwarz einfärben, nur um es schön und deutlich zu machen Nun, wir sind noch nicht fertig wenn wir damit fertig sind, wenn dieser Zeitplan hier abgeschlossen ist. Nach einer Sekunde möchte ich, dass etwas anderes passiert ist. Dafür leihe ich mir diese beiden Knoten gleich hier aus. Ich wähle meinen verzögerten Node, meinen Play Sound Two D, und ich mache einen Control-D, bei dem beide ausgewählt sind Ich werde sie von unserer fertigen Stecknadel hier drüben wegnehmen. Ich werde diesen Verzögerungsknoten anschließen und unsere Dauer auf 0,4 Sekunden ändern. Das wird ziemlich gut sein, 0.4 Dann möchte ich diesen Warp-Sound noch einmal spielen Im Grunde genommen werden wir, wenn wir mit dem Durchgehen dieser Pfeife fertig sind, diesen Soundeffekt erneut abspielen Also im Grunde ein Soundeffekt zum Einspielen. Und wenn wir fertig sind, bevor wir rauskommen, zeigen wir, dass unser Charakter quasi aus der Pfeife kommt Wir werden den Soundeffekt noch einmal abspielen. Jetzt wird es einen weiteren Knoten geben, eigentlich zwei weitere Knoten , die wir hinzufügen werden. Genau hier. Ich werde einen Zweigknoten hinzufügen, also halten Sie die B-Taste gedrückt und klicken Sie mit der linken Maustaste. Ich werde das auch anschließen. Und wir werden eine weitere Bedingung überprüfen. Und die Bedingung, die wir hier überprüfen werden, ist, ob unser Spieler rauskommt und aus einem Rohr steigt. Oder ob sie aus einem Rohr fallen, bestimmt das, wie wir unseren Charakter manipulieren , der aus einem Rohr aufsteigt oder aus einem Rohr herunterfällt. Dafür benötigen wir also eine boolesche Variable. Lassen Sie mich weitermachen und diese vorhandene Option in meinem Blueprints-Bedienfeld ( Steuerelement D) auswählen, um sie zu kopieren Und ich nenne diesen Ausgang, der aus einem Rohr herausragt. Ich will auch, dass das aufgedeckt wird. Und ich werde weitermachen und das kompilieren und standardmäßig ja sagen, wir lassen das so. Das wird unsere Bedingung sein , die wir überprüfen werden. Und wieder werden wir diesen Ast verwenden, um festzustellen, ob unser Charakter aus einem Rohr aufsteigt oder durch ein Rohr herunterfällt. Das wird in Kürze hier sein, aber ich ziehe diesen Teil des Skripts mit der Maus herum, tippe auf die C-Taste und der Name wird kurz wird in Kürze hier sein, aber ich ziehe diesen Teil des Skripts mit der Maus herum, tippe auf die C-Taste und der nach unserer Gewichtung benannt, bevor ich das Pipe-Skript verlasse Also gut, wir haben das vorbereitet , Exzellenz. Also werde ich das hier einrahmen, damit Sie sehen können, was von unserem Zweigknoten kommt, dann von unserem Sequenzknoten. Also, wenn es wahr ist, dass unser Spieler durch die Röhre geht, dann wird das der Zeitplan sein damit unser Spieler durch die Röhre geht. Die schlechte Nachricht ist, dass wir im Wesentlichen drei weitere Abschnitte wie diesen haben , die wir dem Drehbuch hinzufügen müssen. Aber die gute Nachricht ist, dass wir diesen Abschnitt des Skripts ausgearbeitet haben und den größten Teil davon für den letzten Teil dieses Entwurfs wiederverwenden können für den letzten Teil dieses Entwurfs Also werden wir es hier ein Video nennen. Also mach weiter und kompiliere und speichere. Und im nächsten werden wir uns darum kümmern, durch ein Rohr hinaufzusteigen und dann auch wieder aus dem Rohr herauszukommen. Wir sehen uns dort 69. Warp-Pipe-Skript #3: Willkommen jetzt, bevor wir mit unserem Skript weitermachen, möchte ich das nur in unserem Level testen Und ich möchte nur, dass Sie auf unsere verschiedenen Variablen achten , die wir dem Editor zur Verfügung gestellt haben. Wir haben das für, ist es ein Fallrohr? Das heißt, sollen wir da runtergehen? Und wenn ja, in welche Richtung sollen wir die Leitung hinuntergehen? Wir werden das überprüfen lassen. Außerdem werden wir den booleschen Wert von Can Interact auch in unserem Editor aktiviert haben booleschen Wert von Can Interact auch in unserem Editor aktiviert Wenn du dich an unseren Interact erinnerst, überprüfen wir, ob das stimmt oder Um zu sehen, ob eine dieser Eingaben überhaupt gültig ist. Wenn wir diesen Punkt überhaupt überschreiten können. Das Rohr wurde in deinem Level ausgewählt. Hier haben wir das Fallrohr bereits überprüft. Aber wir haben keinen Interaktionscheck. Also werde ich weitermachen und das überprüfen. Und das sollte es so machen, dass ich, wenn wir auf unserer Tastatur nach unten drücken, wir auf unserer Tastatur nach unten drücken, die S-Taste Das wird unsere Abwärtstaste sein. Wir werden hier über den ersten Teil des Skripts hinausgehen den ersten Teil des Skripts , weil das auslösen wird , dass Interaktion wahr sein wird. Und weil das ein Fallrohr ist, werden wir dieses Rohr hinuntergehen. Wir werden dieses kleine Skript tatsächlich hier und genau hier auslösen . Das wird noch nicht wirklich ins Spiel kommen, aber wenn das alles erledigt ist, sollten wir tatsächlich sehen unser Charakter in die Pipe bewegt . Also lasst uns das versuchen. Reinspringen und spielen. In Ordnung, auf unsere Pfeife springen Und wenn ich die S-Taste auf der Tastatur drücke, kannst du sehen, wie mein Charakter ausfällt Aber sie können noch nirgendwohin gehen. Das werden wir also in diesem nächsten Teil reparieren. Okay, lassen Sie uns zuerst diesen Teil gleich hier ansprechen. Wenn wir mit der Fertigstellung unseres Fallrohrs fertig sind, werden wir ein bisschen warten bevor wir aus einem Rohr herauskommen. Und wir werden uns die Frage stellen, werden wir aus einem Rohr heraussteigen oder werden wir von einem Rohr herunterfallen? Also lassen Sie uns hier ein bisschen Drehbuch hinzufügen. Machen wir es so, dass wir zuerst aus einem Rohr heraussteigen . Noch einmal, ich kann viel von dem Code stehlen , den wir hier gemacht haben, und so eine Menge Zeit sparen. Also werde ich Linksklick drücken und genau dort Strg C drücken. Dann gehe ich hierher und drücke Strg V, um Steuerung D einzufügen . Ich würde das einfach sofort duplizieren, anstatt es zu kopieren und Und was ich tun werde, ist, mich genau hier aus dieser Filiale zu genau hier aus dieser Filiale Werden wir aussteigen aus der Röhre aufsteigen Wenn das stimmt, werde ich das jetzt von Anfang an ins Spiel einbauen Wir sind noch nicht fertig. Hier müssen wir ein paar Dinge ändern. Für den Anfang möchte ich diesen Warp in Point loswerden. Das ist nicht der Ort, an dem ich beginnen möchte. Dafür möchte ich mit einem bestimmten Satz von Koordinaten beginnen einem bestimmten Satz von Koordinaten die wir einen Warp zum Gebietsschema angeben Und dafür benötigen wir eine neue Variable. Es wird eine Vektorvariable sein, also werde ich meine bestehende Vektorvariable hier in meinem Blueprint-Panel auswählen meine bestehende Vektorvariable hier in meinem Blueprint-Panel Ich werde Steuerung D verwenden, um das zu duplizieren. Und ich nenne diesen Warp to Locale. Und wenn ich das sofort kompiliere, wird es auf einen Standardwert gesetzt Lassen Sie mich weitermachen und es flächendeckend auf Null setzen. Ich möchte sicherstellen, dass dies von der Instanz bearbeitet werden kann , da wir dies in unserem Level festlegen werden Ich muss das Three-D-Widget hier nicht zeigen , also werde ich es loswerden Das wird also unsere Variable hier sein. Wir werden von einem bestimmten Gebietsschema ausgehen, von dem wir irgendwann angeben , dass wir es noch nicht getan haben Wir werden das so in diesen Unterbrechungsvektor einfügen. Jetzt muss auch unser Zeitplan hier festgelegt werden. Denn anstatt in ein Fallrohr einzusteigen, lassen Sie mich einfach Titel unseres Kommentarfeldes hier austauschen. Wir gehen raus und steigen aus einem Rohr auf. Und weil wir den Vorgang beenden werden, indem mit diesem kleinen Skript aus einer Pipe aufsteigen, müssen wir unseren Zeitplan ändern , sodass unser Keyframe hier, unser zweiter Keyframe, nicht um 200 sinkt Stattdessen wird es um 200 steigen. Alles, was wir hier tun müssen , ist mit dem letzten ausgewählten Keyframe das negative Vorzeichen zu entfernen Es werden plus 200 sein, ungefähr. Das ist die Richtung, in die wir gehen wollen, ist aufwärts. Wenn wir nun irgendwann damit fertig sind, diese Pipe hinauf - und wieder zu verlassen, müssen wir die Steuerung unserer Charaktere wieder aktivieren. Denn wenn Sie sich erinnern , haben wir ganz am Anfang dieses Skripts unsere Eingabe deaktiviert. Lass uns weitermachen und hier unseren Get Player Controller auswählen. Und wir werden Strg D drücken, um das zu duplizieren, weil wir das wieder brauchen werden. Ich werde das bis hierher verschieben und versuchen, Ihren Weg in dieser Landschaft zu finden. Und ich ziehe den Get Player-Controller von hier raus und tippe Enable Input ein. Jetzt ist das wieder einmal nicht an den richtigen Eingang angeschlossen. Ich muss den Player-Controller an den Player-Controller-Eingang anschließen Also werde ich die Strg-Linksklick gedrückt halten und sicherstellen, dass das in der Player-Controller-Eingabe ist in der Player-Controller-Eingabe Genau hier für das Ziel. Ich möchte mit der rechten Maustaste klicken und Spielercharakter bekommen eingeben. Das wird unser Ziel sein, wenn wir mit dem Aufstehen aus der Pfeife fertig sind . Wenn wir damit fertig sind, aus der Pfeife aufzusteigen. Wir werden unseren Input aktivieren. Lassen Sie uns noch einmal mit der linken Maustaste klicken und diese C-Taste um diese Taste ziehen . Dies wird wieder Benutzersteuerung aktivieren genannt . Ordnung. Färbe das jetzt auch gleich schwarz. Okay, jetzt haben wir die Szenarien behandelt in denen wir überprüfen werden, ob es ein Fallrohr ist, ist es ein Rohr, das wir hinuntergehen werden, und werden wir aus einem Rohr heraussteigen? Jetzt müssen wir uns also mit den anderen Situationen befassen. Das heißt, wir steigen durch ein Rohr hoch und kommen durch ein Rohr runter. Damit wir also in der Lage sein werden, etwas mehr von diesem Code zu stehlen . In diesem Abschnitt wollen wir regeln, was passiert, wenn er falsch ist, wenn es sich nicht um ein Fallrohr handelt. Stattdessen werden wir durch ein Rohr hochgehen. Noch einmal, wir werden hier eine weitere Sequenznotiz benötigen. Also werde ich die Taste S gedrückt halten und mit der linken Maustaste klicken, wenn das hier falsch ist. Das Erste, was wir immer noch tun wollen, ist ein paar Warp-Effekte zu spielen Wir können das hier so einstecken. Aber jetzt wollen wir durch die Leitung nach oben gehen. Nun, wenn du dich genau daran erinnerst, was wir gerade gemacht haben, wir haben diesen Zeitplan so geändert , dass wir statt nach unten um 200 unwirkliche Einheiten steigen werden Wir können tatsächlich mit der linken Maustaste klicken und ziehen. Wir werden diesen Teil des Skripts kopieren. Nachdem das kopiert ist, werde ich einfach mal runterkommen. Control C, Control V um es einzufügen, ich muss Control C machen, Control V, um das hier unten einzufügen. Da haben wir's. Wir werden das von Anfang an ins Spiel integrieren. Aus Zeitgründen werde ich diese Zeitlinien nicht umbenennen, obwohl ich diese Zeitlinie noch einmal genau hier oben anordnen sollte , wir werden 200 unwirkliche Einheiten aufstocken, was Aber zurück zu unserem Ereignisdiagramm: Wir wollen nicht, dass unsere Variable sich auf den Ort verschiebt, den wir hier lesen Wir kommen gleich nach oben. Das wird dem ähnlich sein und unser Punkt ist das, was wir nutzen wollen. Ich werde diese beiden Knoten genau dort stehlen. Ich drücke Steuerung C. Ich gehe hier runter, mache Kontrolle V, und das wird unser Ausgangspunkt sein, und das wird von dem aus wir beginnen werden, und dann steigen wir auf, indem wir Bewegung unserer Spieler um 200 erhöhen. Okay, das ist alles schön und gut. Wir müssen auch sicherstellen, dass wir hier unser Ziel erreicht haben , eine Minute zu warten, bevor wir das Rohr verlassen Auch hier müssen wir unseren Lack nehmen und ihn hier einstecken Lassen Sie uns dieses Kommentarfeld hier ändern. Dies wird ein Rohranschluss sein , nur um die Dinge etwas klarer zu machen. Nur um hier ein bisschen rauszuzoomen. Sie können sehen, wie unser Skript derzeit aussieht. Wie Sie sich vorstellen können, brauchen wir einen weiteren Abschnitt des Skripts, um genau hier hinzukommen. Das wird rauskommen, aus einem Rohr herunterfallen Nun, da wir von einem Rohr herunterfallen werden, haben Sie es vielleicht schon erraten Wir können uns dieses Drehbuch ausleihen , denn dieser Zeitplan hier wird uns 200 unwirkliche Einheiten schicken. Links, klicken, ziehen Ich drücke hier die Taste C, um das zu kopieren. Ich werde weiter nach unten gehen, nur damit ich in diesen Abschnitt hier runter gehe. Ich werde zum Einfügen die Taste V drücken. Lassen Sie mich diesen Abschnitt sofort umbenennen. Das werden unsere Ausgänge aus der Pipeline sein. Wir stellen die Frage, werden wir hier aus dem Rohr herausragen Wir sagen nein, das ist falsch. Wir gehen raus und fallen aus einem Rohr. Stecken Sie das Falsche von Anfang an in das Spiel ein, unsere Timeline. Hier wird uns noch einmal gezeigt, 200 unwirkliche Einheiten nach unten bewegen Großartig. Zurück zu unserem Event-Graph. Aber auch hier werden wir nicht von unserem Warp-Punkt herunterfallen Wir werden das löschen. Stattdessen werden wir diese Variable genau hier oben verwenden. Warp zwei Vektoren. Okay, also geben Sie unser Warp-2-Gebietsschema ein. Das ist der, den wir wollen. Dann vergiss nicht, dass von unserem fertigen Pin aus wir von unserem fertigen Pin aus auch unsere Benutzersteuerung aktivieren müssen. Noch einmal, eine Menge Code hier, eine Menge Kabel. Lassen Sie mich einfach noch einmal zurückgehen, um das allgemeine Aussehen dieses Skripts zu zeigen . Sie haben im Grunde vier Blöcke , in denen Sie unseren Charakter bewegen müssen: durch das Fallrohr hineingehen, in ein Hochrohr hineinfahren, heraussteigen, aus einem Rohr aufsteigen und wieder herauskommen, von einem Rohr herunterfallen Wir deaktivieren die Steuerung genau hier. Und dann, ganz am Ende, aktivieren wir die Steuerung genau hier. Ordnung, nachdem das alles erledigt ist, können wir weitermachen und kompilieren und speichern. Nun, wenn ich hier in meinen Level-Editor gehen würde, hier ist meine Pfeife. Ich habe es im Detailbereich ausgewählt. Ich habe es so eingestellt, dass ich damit interagieren kann. Beachten Sie nun, dass mein Warp-Two-Gebietsschema derzeit auf 2000 gesetzt ist. Im nächsten Video werde ich Ihnen zeigen, wie Sie mit der Einstellung eines richtigen Warp-2-Gebietsschemas arbeiten mit der Einstellung eines richtigen Warp-2-Gebietsschemas Aber wir können das jetzt testen. Also werde ich weitermachen und auf Play klicken. Ich drücke die S-Taste , um nach unten zu gehen , und ich werde zur Position 000 in meinem Level weitergeleitet Also hat es mich einfach dorthin gebracht, wo auch immer das in meinem Level war. Und du kannst sehen, dass ich jetzt wieder spielbereit bin, was offensichtlich nicht gut aussieht, weil ich mich ins Nichts verirre Aber im nächsten Video werde ich euch zeigen, wie man mit diesen Pipes arbeitet und wie man einen Warp auf Locale setzt, wie das alles funktionieren soll In Ordnung, Leute, das wird für diesen absterben. Wir sehen uns im nächsten. 70. Warp-Pipe-Hookups: Willkommen zurück alle. Nun, da wir unser riesiges BP War Pipe-Skript erstellt haben, dachte ich, ich wäre gut und angemessen, um dir zu zeigen, wie genau du damit arbeiten kannst, wenn du wieder im Level-Editor bist. Nun, zwischen den Videos hier habe ich eine zweite Version unserer Pfeife hinzugefügt , damit ich verschiedene Interaktionen vorführen kann. Beachten Sie nun, dass ich hier in meinem Level eine Pipe ausgewählt habe. Das ist der von vorhin. Ich habe im Detailbereich den Goldbarren von Ken Interact auf true gesetzt Das ist ein Fallrohr, das heißt, ich beabsichtige, es herunterzufahren das heißt, ich beabsichtige, es herunterzufahren Und ich habe auch diesen Scheck, wo ich aus einem Rohr herauskommen Ich habe vor, genau hier aus dieser zweiten Röhre aufzusteigen genau hier aus dieser zweiten Röhre Jetzt mein Warp-2-Gebietsschema, dafür muss ich etwas angeben Jetzt um die richtige Koordinate einzugeben. Was ich hier tun kann, ist diese Pfeife auszuwählen. Und unten im Detailbereich können Sie all meine verschiedenen Komponenten sehen, aus denen meine zweite Kriegspfeife besteht. Wenn Sie sie nicht sehen, liegt das daran, dass sie hier zusammenbrechen könnten. Sie können sehen, wie ich das gewissermaßen zurückziehe , um alle Komponenten zum Vorschein zu bringen. Ich möchte nur die Warp-Out-Punkte auswählen An diesem Punkt ist es quasi im Rohr selbst vergraben. Jetzt will ich herausfinden, wo sich dieser Warp-Out-Punkt weltweit befindet dieser Warp-Out-Punkt weltweit diese Option ausgewählt ist, können Sie sehen die relative Position minus 35 ist Ich möchte jedoch den weltweiten Standort dafür haben. Ich kann dieses Drop-down-Menü auswählen und möchte, dass es sich als Weltstandort ändert. Im Moment sind dies also die Weltkoordinaten für diese spezielle Komponente. Für diese Pipe möchte ich diese Koordinaten kopieren. Und dazu kann ich einfach hier mit der rechten Maustaste klicken und Kopieren sagen. Jetzt habe ich diese Koordinaten kopiert. Jetzt kehre ich zu unserer ersten Pipe zurück, wähle sie aus und ich kann diese Koordinaten genau hier in unserer Warp-2-Locale-Variablen platzieren genau hier in unserer Warp-2-Locale-Variablen Also werde ich hier mit der rechten Maustaste klicken und wir werden das Tempo ändern Also, jetzt sagen wir dieser Pfeife, dass hey, wir wollen in der Lage sein, mit dir zu interagieren. Du bist eine Pfeife, die wir runtergehen wollen. Wir werden aus unserer Zielleitung emporsteigen und oh, das ist übrigens der Zielort. Ich möchte, dass du nach all dem warpst, lass uns weitermachen und das testen Reinspringen und spielen. Und wir werden hier oben weiterspringen. Ich tippe mit dem linken Daumen auf meinem Controller nach unten, und wir kommen direkt nach Wenn ich jetzt versuchen würde, mit dieser Pipe hier zu interagieren, würde ich, du weißt schon, auf die S-Taste tippen, die W-Taste Mein linker Daumen ist nach oben gedrückt, siehst du, ich kann damit nicht interagieren. Ich könnte aber weitermachen. Diesmal drücke ich S auf der Tastatur nach unten und dann nach oben und los geht's. Ordnung, jetzt haben wir uns mit dem klassischen Szenario befasst , ein Spieler durch eine Röhre hinuntergeht und dann aus einer Pfeife wieder aufsteigt. Lassen Sie uns die Dinge hier ein bisschen ändern. Dieses Mal werden wir zeigen, wie man durch ein Rohr hinuntergeht und dann aus einem Rohr fällt. Deshalb werden wir hier unsere erste Pfeife auswählen. Wir werden sagen, ja, wir können damit interagieren. Es ist eine Pfeife, die wir hinuntergehen werden. Das ist es, was diese Frage stellt. Ist es ein Fallrohr? Ja, wir werden diese Leitung hinuntergehen. Werden wir aussteigen aus einer Röhre aufsteigen Nein, sind wir nicht. Stattdessen werden wir aus einem Rohr fallen. Nur um zu zeigen, wo dies in unserem Diagramm auslösen würde, ist ein Ausgang, der aus dem Rohr herausragt, falsch. Das heißt hier in unserem Skript, wenn wir an diesem Punkt angelangt sind, wenn wir aus dem Rohr heraussteigen. Wenn das falsch ist, gehen wir hier runter und wir werden wieder rauskommen, wenn wir durch das Rohr herunterfallen. Okay, damit das passiert, muss ich das Warp-2-Gebietsschema einstellen Hier ist meine erste Pipe, der ich interagieren werde Ich muss das Warp-2-Gebietsschema einstellen. Also werde ich meine Zielpfeife auswählen. Dieser Typ hier in der Detailansicht. Ich werde meine Warp-Out-Point-Komponente finden. Da ist sie. Ich muss wieder einmal den Standort der Welt finden. Ich werde hier meinen Standort auswählen und ihn auf den Weltstandort ändern. Ich werde mit der rechten Maustaste klicken. Wir werden das kopieren. Und ich gehe zurück zu meiner interaktiven Pipe und wähle sie aus. Ich werde sie für mein Warp-2-Gebietsschema hier einfügen mein Warp-2-Gebietsschema hier Einfügen. Okay, lassen Sie uns weitermachen und dieses Szenario testen. Reinspringen und spielen. Ich werde gleich hier auf meine Pfeife springen Ich drücke die S-Taste auf meiner Tastatur, gehe runter und komme wieder raus Wenn ich jetzt versuche, mit dieser Pfeife zu interagieren, drücke ich die Tasten, ich komme dem nahe. Ich werde das nicht durchgehen, weil diese Pfeife hier nicht interaktiv ist, wie Sie hier sehen können. Lassen Sie uns jetzt versuchen, daraus eine Einbahnstraße zu machen. Versuchen wir, das so zu gestalten, dass ich auch mit diesem Typen interagieren kann . Und wenn ich versuche, durch diese Leitung hochzugehen, werde ich tatsächlich wieder da rauskommen. Lassen Sie uns dafür die Richtung umkehren, wenn Sie wollen. Ich werde diese Pfeife hier interaktiv machen. Also werde ich weitermachen und das Kästchen ankreuzen. Ist das ein Fallrohr? Nein, ist es nicht. Ich meine, das ist kein Rohr , das wir runtergehen, wir werden durch sie hochgehen. Wo das ins Spiel kommt, ist das Fallrohr schon weit am Anfang dieses Drehbuches. Wenn das falsch ist, werden wir hier runterkommen. Wir werden durch das Rohr nach oben kommen. Okay, wir sagen also, das ist kein Fallrohr, wir werden durch es hochgehen. Werden wir aussteigen aus der Röhre aufsteigen Ja. Es ist unsere Absicht, genau hier aus diesem Rohr herauszukommen. Also lasse ich den Scheck liegen. Allerdings muss ich dafür ein Warp-2-Gebietsschema einrichten. Ich wähle dieses Rohr aus, ich wähle erneut den Warp-Out-Punkt aus, es ist dort irgendwo in meiner Leitung vergraben Ich werde den weltweiten Standort dafür finden . Ich werde mit der rechten Maustaste klicken. Ich werde kopieren. Dann wähle ich hier meine interaktive Pipe aus und wähle diese aus. Ich werde sie als mein Warp-2-Gebietsschema einfügen. Jetzt habe ich hier quasi eine Einbahnstraße eingerichtet, wo ich durch diese Leitung hinunterfahren und wieder herauskommen kann Und genauso kann ich durch dieses Rohr hinaufgehen und auf diesem Weg wieder herauskommen. Lass uns weitermachen und es testen. Okay, ich mache meine ursprüngliche Interaktion hier. ich runtergehe, benutze ich hier die Tastatur, also habe ich dort einfach die S-Taste gedrückt Jetzt springe ich hoch und wenn ich den Höhepunkt meines Sprungs erreicht habe, drücke ich die WK Ich gehe durch das Rohr hoch und komme raus, runter und hoch und hoch Und da haben wir es, Leute. Wir haben unsere interaktive Kriegspfeife fertiggestellt. nur darauf, dass du jedes Mal, wenn du diese Kriegspfeifen in deinem Level einrichtest, diesen Warp auf das Gebietsschema Das reicht für die Jungs. Wir sehen uns im nächsten. 71. Blueprint des Spielmodus: Willkommen zurück alle. Im Laufe der nächsten Videos hier werden wir einen Plan für den Checkpoint zusammenstellen einen Plan für den Checkpoint Und dieser Checkpoint-Plan wird so aussehen, dass, wenn wir einen Checkpoint überlappen, Flagge gehisst wird. Ein bisschen Partikeleffekte gehen los. Es wird unseren Standort speichern, sodass wir, falls wir sterben , an ihrem Checkpoint wieder erscheinen Das ist es also, was uns im Laufe der nächsten paar Ordnung, hier in unserer funktionierenden Version des Projekts werden wir damit beginnen, über unseren Third-Person-Spielmodus Blueprint zu sprechen unseren Third-Person-Spielmodus Blueprint Ohne dass du es gerade weißt. Dieser Spielplan für Dritte ist in unserer Projekteinstellung als der Spielmodus-Blueprint angegeben unserer Projekteinstellung als , den Jetzt habe ich unsere Projekteinstellungen hier oben geöffnet, aber nur um dir zu zeigen, wie du dazu kommst, wenn du ganz oben rechts unter Einstellungen , Projekteinstellungen, kommst, so kannst du sie öffnen Ich möchte Ihre Aufmerksamkeit auf diese Option „Karten in Modi“ lenken. Also hier ist unser Standard-Spielmodus, der Spielmodus-Blueprint , den unser Projekt verwendet, unser Third-Person-Spielmodus Dieser Spielmodus-Blueprint bestimmt nun anderen Baupläne , die unser Projekt verwendet Und es spezifiziert Dinge wie die Figur, die wir verwenden , also unseren Charakter aus der dritten Person, sowie unseren Das sind zwei große Dinge. Jetzt sprechen wir über den Gamo-Blueprint , weil wir dort unser Respawn-Skript unterbringen werden Weil dies ein Entwurf ist, der von unserem Projekt verwendet wird. Es ist sinnvoll, es hier unterzubringen. Jetzt springe ich zu unserem Gamo-Blueprint für BP, dritte Person, über Gamo-Blueprint für BP, dritte Person, Ich kann es hier finden, indem ich auf diesen Ordner klicke. Es befindet sich auch hier in Ihrem Blueprint-Ordner für Inhalte für Dritte Doppelklicken Sie darauf , um es zu öffnen. Das erste, was ich tun werde, ist, eine brandneue Variable in meinem Blueprint-Bedienfeld zu erstellen und auf diese Plus-Variablen-Schaltfläche zu klicken, um die Transformation zu starten. Wie Sie vielleicht vermutet haben, wird dies die Variante „Transformation“ sein sein Jetzt ist es sehr wichtig , hier zu kompilieren und zu speichern. Wir müssen noch keine Standard-Spawn-Transformation festlegen, denn diese wird noch kommen Unser allernächster Schritt hier, alles was wir tun müssen, ist diese Variable zu erstellen und sie dann zu kompilieren und zu speichern Der Grund, warum wir sie kompilieren und speichern wollen , ist, dass wir diese Variable in unserem Charakter-Blueprint setzen können diese Variable in unserem Charakter-Blueprint setzen Springe zu deinem Charakter-Blueprint in der dritten Person. Und falls du vergessen hast, wo sich das befindet, findest du es hier in deinem Inhaltsbrowser Bp, Charakter aus der dritten Person. Jetzt, hier drinnen, springen wir zu unserem Event-Graph. Und wir werden mit der rechten Maustaste in eine leere Stelle klicken. Geben Sie das Spiel ein. Sie können sehen, dass es hier bereits zum Einstellen unseres Eingabe-Mapping-Kontextes verwendet wird. Sie können in diesem Blueprint nur eines davon haben. Wir könnten unser Skript hier erweitern, wenn wir wollten. Aber nur um das ein bisschen übersichtlicher zu machen, werde ich einen Sequenzknoten einfügen, die S-Taste gedrückt halten und mit der linken Maustaste klicken. Und ich werde das hier verkabeln. Und ich werde das hier drunter verkabeln. Ich werde diesen Bereich genau hier nutzen, um das Event erneut zu nutzen, um mit dem Spielen zu beginnen. Lass das ein bisschen sauberer aussehen. Jetzt werde ich rechten Maustaste auf eine leere Stelle klicken und den Spielmodus abrufen eingeben . Und welchen Spielmodus möchte ich bekommen? Ich ziehe mich hier raus und tippe die Third-Person-Besetzung in unseren Third-Person-Spielmodus ein. Der Grund, warum ich das mache , ist, dass wir in unserem Third-Person-Spielmodus gerade eine Variable namens Spawn-Transformation erstellt Und jetzt möchte ich das einstellen können. Wenn ich also hier aus diesem Pin herausziehe, kann ich Set Spawn Transform eingeben Wir kommen also in den Third-Person-Spielmodus und sagen, hey, du hast eine Variable namens Spawn-Transformation in dir Ich möchte in der Lage sein, das einzustellen. Was möchte ich auch einstellen? Ich möchte es so einrichten, dass unsere Schauspieler unsere Charaktere aus der dritten Person transformieren. Wenn ich also mit der rechten Maustaste auf eine leere Stelle klicke, gebe ich Get Actor Transform so ein. Im Wesentlichen wird dadurch unsere Spawn-Transformationsvariable, die sich in unserem Spielmodus befindet, so eingestellt , dass sie der Ort ist , dass sie der Ort , an dem unser Charakter anfänglich spawnt Um das zu verdeutlichen, klicke ich mit der linken Maustaste und ziehe um diesen Punkt der C-Taste in meinem Kommentarfeld wird die Standard-Spawn-Transformation unseres Charakters festgelegt Standard-Spawn-Transformation unseres Charakters Spiel auf diese Weise beginnt Ordnung, es gibt noch eine Sache, die ich hier erledigen möchte , bevor wir das Video beenden. Und das ist, wir wollen hier eine neue Variable innerhalb unseres Third-Person-Charakters erstellen . Also werde ich hier auf diese Plus-Schaltfläche klicken. Und ich werde das unsere Respawn-Größe nennen. Und ich werde hier unsere Respawn-Größe einstellen, der Typ soll Wenn ich kompiliere, werde ich die Werte dafür drüben im Detailbereich auf 0,75 festlegen . 0,7 5,0 0,75 Jetzt fragst du dich vielleicht, warte, warum ich bei dieser Größe respawn möchte Auch hier werde ich diese Variable verwenden, um die Respawn-Größe unserer Charaktere zu bestimmen Der Grund, warum ich sie auf diese Werte setze, ist dass unsere Kapselkomponenten vor einigen Videos verwendet wurden Wir haben unsere Standardskala hier pauschal auf 0,75 Also gleichen wir das im Wesentlichen mit dieser Variablen ab. Ordnung, wir haben jetzt unsere anfängliche Arbeit an der Kontrollstelle In Ordnung, wir haben jetzt unsere anfängliche Arbeit an der Kontrollstelle erledigt. Lass uns weitermachen und das kompilieren und sagen. Wir sind jetzt in der Lage, auch den Checkpoint nach dem Klassen-Blueprint zu erstellen den Checkpoint nach dem Klassen-Blueprint Das kommt als nächstes Video. Wir sehen uns dort. 72. Checkpoint-Blueprint: Ordnung, willkommen zurück. Hier ein kleiner Vorgeschmack was wir in diesem Video zusammenstellen wollen Das ist unser Checkpoint-Plan. Wir werden so weit kommen, unsere Komponenten zusammenzustellen und die Details dafür festzulegen Und dann nennen wir das ein Video. Aber ich wollte dir nur zeigen, was wir in diesem Video anstreben. Nun ist es auch wichtig zu beachten, dass Sie, während wir das hier durchgehen, Ihres nicht genau so aussehen lassen müssen , wie meins hier aussieht. Sie können hier in unserer Arbeitsversion des Kurses ein wenig mit den Bildern herumspielen . Ich werde unseren neuen Entwurf für die Schauspielerklasse hier in unserem Plattform-Blueprint-Ordner erstellen hier in unserem Plattform-Blueprint-Ordner Ich klicke mit der rechten Maustaste hier in eine Blueprint-Klasse leerem Raum Dies wird eine Schauspielerklasse sein und ich werde diesen BP Underscore Checkpoint nennen diesen BP Underscore Lassen Sie uns weitermachen und hier die Leertaste drücken , um es mit dem ausgewählten Objekt zu öffnen In unserem Checkpoint-Entwurf können wir unsere Standard-Szenenroute sehen, dieses Symbol genau hier Wir fahren fort, indem die erforderlichen Komponenten hinzufügen und dann gehen wir zurück und legen die Details für jede Die erste Komponente, die wir hier hinzufügen wollen, wird ein Box Collider sein Suchen Sie sich einfach einen Box Collider aus, ich werde dieser Box einen Namen geben Dieser Name wird in Ordnung sein. Wir werden ihn verwenden, um zu erkennen, wann unser Spieler dieses Feld überlappt, um einen Spawnpunkt an einem Ort in der Welt festzulegen und zu speichern , den wir wiederbeleben möchten In Ordnung, an unserer Kiste befestigt. Stellen Sie also sicher, dass Sie diesen Typen ausgewählt haben. Wir werden eine weitere Komponente hinzufügen. Dieses wird ein statisches Netz sein und das wird sozusagen unser Flaggendrehpunkt sein . Jetzt werde ich hier mehrere weitere statische Meshes hinzufügen. das ausgewählt ist, klicke ich mit der rechten Maustaste darauf Wir werden das sofort duplizieren. Sie können den Hotkey-Befehl zum Duplizieren dieses Befehls sehen. Ich rufe meine Flagge Bas an und drücke dort die Eingabetaste, wobei das blau markiert ist Ich kann wieder Control D ausführen. Dieser wird Arm heißen. Wenn das markiert ist, mache ich wieder Steuerung D. Und dieser wird einfach Flagge heißen. Jetzt möchte ich, dass meine Flagge an meinem Flaggenarm befestigt wird. Also klicke ich mit der linken Maustaste und ziehe auf meinen Flaggenarm, sodass Sie anhand des Einrückens genau dort sehen können, wie sich die Verbindung zusammenfügt Einrückens genau dort sehen können, wie sich die Verbindung zusammenfügt Okay, als Nächstes gehe ich zurück und wähle mein Feld aus, weil ich hier eine weitere Komponente hinzufügen möchte Wenn Sie auf Hinzufügen klicken, wird dies eine Pfeilkomponente sein. Und hier werde ich meine Respawn-Transformation umbenennen. Im Grunde wird damit nur ein Punkt im Raum definiert , an dem wir den Spieler erneut spawnen werden In Ordnung, wenn alle unsere Komponenten vorhanden sind, legen wir die Details für jede Komponente fest Und ich werde die Liste hier einfach durchgehen. Beginnend mit unserer Box werde ich die Größe der Box festlegen, das heißt, wie groß wird diese Box sein? Der X-Wert wird 200 sein, der Y-Wert wird 200 sein, der Z-Wert wird 500 sein. Und ich werde die Ansicht vergrößern, um Ihnen zu zeigen, dass es eine Nummer größer ist. Ich stelle die Linienstärke hier auf fünf ein, nur damit dieses Feld leichter zu erkennen ist , wenn wir es in unserer Ebene platzieren. Und jetzt werde ich das auch in Z-Richtung nach oben verschieben , also an der Position. Ich werde das auf 500 setzen. Richten Sie es ein. Und das scheint im Moment kein großer Unterschied zu sein. Aber ich werde auch unsere Drehung hier in der Z auf 90 ändern . Auch hier wird es nicht nach viel aussehen, aber wenn wir das drehen, werden auch alle daran befestigten Komponenten gedreht. Und das werden wir für die kommenden Komponenten benötigen. Jetzt ist es auch wichtig , hier zu beachten, dass Sie Ihre Box erweitern können, um sie höher Und das solltest du vielleicht ganz am Ende tun, weil wir nur sicherstellen müssen , dass der Spieler diesen Checkpoint-Bereich passiert Um zu garantieren, dass sie das passieren, solltest du es vielleicht bis weit in den Himmel ausdehnen Okay, nachdem das erledigt ist, gehen wir zu unserem Flaggendrehpunkt über. Wählen Sie das aus. Ich werde das statische Netz sofort einrichten. einem Klick auf diese Materialkugel im Drop-down-Menü Ich suche nach einem Klick auf diese Materialkugel im Drop-down-Menü. Dieses statische Netz sollte in Ihrem Startinhalt vorhanden sein . Das kannst du im Tooltip genau dort sehen. Das Material selbst, Wahl des Händlers. Sie können entscheiden, was auch immer das sein soll. Aber ich werde meins als Grundboden einrichten. Dies ist das Material, das auch im Startinhalt enthalten ist. Und wenn das alles erledigt ist, werde ich es verkleinern. Ich möchte es gleichmäßig in X, Y und Z verkleinern. Um sicherzugehen, dass ich die Sperre überprüft habe, mache ich 0,5 im X und drücke die Eingabetaste Und weil das gesperrt ist, wird es diese Änderung auf Y und Z Dadurch wird es etwas kleiner Dann verschiebe ich die Position in Z-Richtung nach unten und setze den Wert auf minus 400 Dann werde ich das in X-Richtung auf minus 200 setzen. Das wird es nur ein bisschen nach hinten schieben. Okay, als Nächstes wähle ich unsere Flaggenbasis dafür aus. Ich werde das gleiche statische Match haben. Es wird Materie sein, Kugel, Kugel. Das Material, das ich hier verwenden werde ist auch eine einfache Wand, obwohl ich das möchte. Ja, diese weiß aussehende Wand, die Größe. Lassen Sie uns den Maßstab dafür festlegen. Ich werde meine Waage entsperren, weil ich das nicht einheitlich in X machen werde, ich werde 0,5, in Y werde ich zwei wählen Und bei Z werde ich auch zwei nehmen. Dann werde ich für den Standort den Z-Standort auf minus 500 setzen. Wenn ich das in das X setze, schiebe ich es wieder auf minus 200 zurück. Sie können also sehen, dass ich diese Basis habe sich im Grunde ein wenig durch den Boden schneiden wird . Den unteren Teil werden Sie nicht sehen, und das wird im Grunde unser Dreh- und Angelpunkt sein. Die Flagge wird von diesem Punkt aus nach oben schwenken . Okay, wenn das erledigt ist, lassen Sie uns weitermachen und unsere Flaggenarmkomponente Next auswählen. Das statische Netz , das wir für dieses Modell hinzufügen werden, wird S M Underscore Pillar Frame heißen Auch hier verwende ich dieses statische Mesh, weil es im Startinhalt enthalten ist Sie müssen dieses nicht einfach genau verwenden. Ich benutze ihn, weil er wie eine Art Arm aussieht. Ich werde jetzt auch an der Größe und Lage herumspielen der Größe und Lage herumspielen Sie könnten das Material austauschen, ich belasse es jetzt dabei Aber du könntest es so ändern , wie du willst. Skala. Ich nehme 0,5 in X, verdünne es ein wenig, ich lasse Y und Z 1,1 für die Position übrig. Ich setze die Z-Position auf minus 390, also nach unten im X. Ich muss das etwas nach hinten verschieben, also gehe ich für die x-Drehung auf minus zwei auf fünf. Ich werde die X-Drehung auf minus 90 setzen. Und dann drücken Sie dort die Eingabetaste , um dies nach unten umzuschalten. Als Nächstes holen wir uns hier unsere Flaggenkomponente und legen die Details dafür Für das statische Durcheinander hier klicke ich genau hier und wähle eine Form aus, die Quad-Pyramide mit Unterstrich unterstrichen Ich entscheide mich wieder für diesen , weil er in den Stargard-Inhalten enthalten ist Wir werden eine Dreiecksform haben. Das Material hier, wieder nach Wahl des Händlers. Ich werde jedoch die Scheitelpunktfarbe wählen. Ich werde diese grüne wählen. Das ist im Inhalt der Engine zu finden. Wenn Sie das nicht noch einmal sehen , können Sie hier klicken. Klicken Sie auf dieses Zahnradsymbol und vergewissern Sie sich, dass der Engine-Inhalt aktiviert ist. Dort lebt das Material oder es ist der Ort, an dem es sich befindet. Ich werde die Z-Position so einstellen, dass sie 350 am Ende unseres Arms ist. Stellen Sie die X-Position auf zehn und die Y-Position auf minus zehn ein. Auch hier habe ich all diese Parameter im Voraus bestimmt . Ich werde dafür sorgen, dass die Waage entsperrt ist. Ich werde den Wert auf 0,2 und 1,2 erhöhen. werde ich die Drehung hier auf minus 90 im X einstellen hier auf minus 90 im X sodass Sie sehen können, dass die Flagge ausgeschaltet ist. Wenn sich das irgendwann hochdreht, wird der Flaggenarm nach oben gekippt, und weil die Flagge am Flaggenarm befestigt ist, wird sie mitgenommen. Ordnung, zu guter Letzt haben wir unsere Respawn-Transformation Auch dies wird einen Punkt im Raum definieren an dem unser Charakter wieder erscheinen soll Dafür setze ich die Position auf minus 400 in der Z, für die Rotation werde ich sie auch auf minus 90 in der Z setzen minus 90 in der Z Es ist also ein bisschen schwer zu erkennen, weil ich es ausgewählt habe, also lassen Sie mich es einfach abklicken. Aber genau da ist unsere Pfeil-Komponente. Die Basis dieser Pfeilkomponente ist im Wesentlichen die Stelle, an der wir unserem Spieler sagen werden, dass er darin respawnen soll. Genau dort. Okay, nachdem das alles erledigt ist, werde ich weitermachen und das speichern. Und lass uns weitermachen und eines davon auf unserer Ebene fallen lassen. Nur damit wir eine Vorstellung davon bekommen, wie das hier in meinem Inhaltsbrowser aussehen wird . Wir ziehen das in die Länge. Ich hebe es in die Luft, tippe auf die N-Taste und lege es auf den Boden Also so wird es im Grunde aussehen. Und du kannst sehen, dass unser Spieler auf dem Weg sein wird, das zu überschneiden, wenn er sich in unserem Level bewegt. In Ordnung, wir haben einen guten Start hingelegt. Hier sind wir in der Lage, mit dem Checkpoint-Scripting zu beginnen 73. Checkpoint-Skript: Ordnung, willkommen zurück. In diesem Video werden wir das Skript erstellen, damit unsere Flagge hochklappt, wenn unser Charakter dieses Triggerfeld genau hier überlappt Außerdem legen wir in unserem Spielmodus-Blueprint den Respawn-Punkt unserer Charaktere Spielmodus-Blueprint den Respawn-Punkt unserer Dazu müssen wir unsere Box-Komponente auswählen und dafür ein Event erstellen Wir könnten das tun, indem wir mit der rechten Maustaste klicken und ein Ereignis hinzufügen. Aber ich möchte verschiedene Methoden vorstellen, wie man Dinge mit dieser ausgewählten Komponente machen kann. Komm in das Detailfenster. Scrollen Sie ganz nach unten. Wir haben eine Liste von Ereignissen , die wir hinzufügen können. Machen wir das bei Component Begin, Overlap. Klicken Sie auf diese Plus-Schaltfläche. Das bringt uns zu unserem Ereignisdiagramm. Okay? Wir wollen nachschauen , wer der andere Schauspieler hier ist. Wir könnten uns hier rausziehen und einen Spielercharakter auf Augenhöhe schaffen Aber ich werde das einfach hinter mir lassen und einen Cast für einen Charakter in der dritten Person machen , das ist der Charakter , den wir kontrollieren Dies ist eine einfache Überprüfung , um sicherzustellen, dass es sich um unseren Charakter aus der dritten Person handelt , der diese Box überlappt Wenn ja, werden wir dann einen Spielmodus bekommen Rechtsklick, Spielmodus aufrufen. Wir müssen herausfinden , welcher Spielmodus. Also ziehen wir das in die Länge und wechseln in den Spielmodus, speziell in unseren Third-Person-Spielmodus wie diesen Spielmodus, speziell . Und wenn es stimmt, dass unser Charakter aus der dritten Person diese Box überlappt, greifen wir innerhalb unseres Spiels oder der Blaupause zu Und wir werden die Spawn-Transformation einstellen. Denken Sie daran , dass wir hier eine Variable namens Spawn Transform haben hier eine Variable namens Spawn Wir werden sie hier einbauen. Und worauf werden wir es einstellen? Nun, wir werden das auf unsere Respawn-Transformation einstellen. Ich sage Transformation nicht Transformation. Lassen Sie uns zwei Fragen beantworten, diesen Namen erstellen oder korrigieren. Um zu transformieren, ziehen wir das rein. Wir werden einen Hinweis auf unsere Respawn-Transformation erhalten. Das ist diese Pfeilkomponente hier unten in unserem Wir bekommen einen Hinweis darauf. Dann ziehen wir uns hier raus und tippen Get World Transform, Get World Transform ein. Also sagen wir im Grunde, hey, die Welttransformation unseres Respawn-Punkts genau dort für unseren Checkpoint Wir werden das als unsere Spawn-Transformation festlegen, sobald wir dieses Feld mit unserem Charakter aus der dritten Person überlappen mit unserem In Ordnung, das ist alles schön und gut. Nachdem wir das getan haben, werden wir es einmal tun. Ich werde die Taste gedrückt halten und mit der linken Maustaste klicken, um einen Once-Knoten aufzurufen. Was wollen wir einmal machen? Nun, wir wollen eine Animation abspielen, in der unsere Flagge hochklappt Um das zu tun, werde ich eine Zeitleiste verwenden. Gehen Sie also zurück zu unserem Event-Graph. Ich klicke mit der rechten Maustaste und suche nach einem Zeitleistenknoten. Ich nenne das einfach Rotate Flag. Lassen Sie uns hier unser Del-Befehl-Update loswerden. Sobald wir das gemacht haben, werden wir es von Anfang an spielen. Jetzt ist unsere Zeitleiste hier. Wir werden hier reinspringen. Wir werden es sehr kurz machen. Es wird eine Zehntelsekunde sein, 0,1 wird die Länge unserer Zeitlinie sein. Hier werden wir einen Float-Track hinzufügen. Klicken Sie also auf Track, Float-Track hinzufügen. Ich werde diese Flagge im Laufe der Zeit einfach Alpha nennen. Sie werden sehen, warum ich es nur ein bisschen so nenne. Es wird ein bisschen sinnvoller wenn ich zeige, an welchen Knoten das angeschlossen werden soll. Jetzt klicke ich hier in unserer Timeline mit der rechten Maustaste und füge einen Schlüssel hinzu. Und dann klicke ich erneut mit der rechten Maustaste und füge einen zweiten Schlüssel hinzu. Jetzt wähle ich hier meinen ersten Schlüssel aus. dieser erste Schlüssel ausgewählt ist, Wenn dieser erste Schlüssel ausgewählt ist, setze ich die Zeit auf Null den Wert ebenfalls auf Null. Für meinen zweiten Schlüssel hier setze ich die Zeit auf 0,1 und den Wert auf eins. Es wird hier von oben springen . Also werde ich auf diese beiden Pfeile klicken, um es nach oben zu rahmen. Mein erster ist auf 0,0 eingestellt. Mein zweiter Keyframe ist auf eine Zeit von 0,1 eingestellt , was der Länge meiner Timeline und einem Wert von eins entspricht . Der Grund, warum wir das so eingestellt haben, ist, dass hier in unserem Ereignisdiagramm unser Flaggen-Alpha-Wert im Zeitverlauf jetzt von unserer Timeline ausgegeben wird. Wir werden diesen Ausgang verwenden, um ihn an einen Lp-Rotatorknoten anzuschließen, der mit der rechten Maustaste geklickt Lp-Rotatorknoten anzuschließen, der mit der rechten Maustaste geklickt Dieser Knoten funktioniert nun so, dass wir, wenn A Null ist, bei einer Umdrehung 100% sein werden Wenn B eins ist, werden wir uns in einer anderen Rotation befinden, Alpha ist Null. Wir werden ganz bei A sein. Wenn Alpha eins ist, wir ganz bei B sein. Und irgendwo dazwischen werden wir uns in einem 45-Grad-Winkel befinden. Wir werden das also verwenden, um die Drehung unseres Flaggenarms zu bestimmen. Lassen Sie mich Ihnen hier nur im Wesentlichen zeigen , was wir in unserem Viewport erreichen wollen Wir haben diesen Flaggenarm und werden wir drehen Lassen Sie mich einfach bis hierher unsere Rotation einbauen. Drücken Sie die Drehtaste. Unsere Drehung für diesen Flaggenarm, unsere A-Rotation, wird die Drehung sein , die wir hier in unserem Viewport sehen Jetzt wird unsere Rotation ganz nach oben gehen. Wenn unser Alphawert eins ist, wir hier an dieser Position sein. Wenn unser Alpha-Wert nun bei 0,5 liegt , werden wir die Differenz im Wesentlichen aufteilen Es wird also in einem Winkel von 45 Grad sein . Wenn Alpha Null ist, sind wir hier, wenn Alpha eins ist Wir sind hier, wenn Alpha 0,5 ist . Wir sind auf halbem Weg dazwischen So wird das funktionieren, oder? Gehen wir jetzt zurück zu unserem Event-Graph. Brauchen wir ein paar Variablen, um unsere verschiedenen gewünschten Rotationen aufrechtzuerhalten? Dazu werde ich schreiben, klicken Sie hier auf unseren Wert. Wir werden das zu einer Variablen heraufstufen. Es wird ein Rotator-Variablentyp erstellt. Jetzt muss ich uns einen Namen geben, der besser ist als ein. Ich nenne das Flag Rotate Fangen Sie mit dieser Auswahl an. Ich mache weiter und mache Steuerung D. Um das zu duplizieren, ich meinen Flaggenarm um das Ende. Und ich setze das in den Wert ein. Jetzt muss ich das kompilieren, um hier einen Standardwert festzulegen. Offensichtlich sind beide momentan auf 00,0 gesetzt . Wenn ich nun zu meinem Viewport gehe und meinen Flaggenarm nehme und ihn so nach oben drehe, können Sie sehen, dass meine Rotationswerte Nullen sind Wenn es so heruntergefahren ist, sind meine Rotationswerte negativ 900.0. Ich werde diese Werte hier kopieren. Klicken Sie mit der rechten Maustaste auf Kopieren Ich möchte, dass dies mein Startwert ist. Ich werde unter Flagge herkommen . Drehe, starte. Ich klicke mit der rechten Maustaste und zahle die Werte für die Bezahlung genau hier rein weil meine gewünschte Endrotation 0,0 sein wird. Ich werde das so belassen hier zu meinem Ereignisdiagramm zurückzukehren, muss ich meinem Flaggenarm, lassen Sie uns einen Verweis darauf per Drag-and-Drop in unser Diagramm ziehen, mitteilen , dass es sich um , dass das Objekt handelt, das ich drehen möchte Also ziehe ich es raus und tippe Set Relative Rotation ein. Da unsere Zeitleiste aktualisiert wird, werden wir auch die Rotation unseres Flaggenarms aktualisieren. Auf welche Rotation wollen wir ihn einstellen? Nun, wir wollen hier beginnen, wenn unser Alphawert bei Null ist. Zu Beginn unserer Zeitlinie ist der Alphawert bei Null. Und dann wird sich dieser Ausgabewert im Laufe von 0,1 Sekunden um 0-1 ändern , wenn wir bei Null sind Es wird diese Rotation sein. Wenn wir bei eins sind, also am Ende dieser Zeitlinie, wir bei dieser Rotation sein. Und das wird im Laufe von 0,1 Sekunden passieren . Das wird unser Skript sein, damit unsere Flagge nach oben rotiert. Was wir dann tun müssen, ist etwas Flash und einige Effekte hinzuzufügen, wenn wir mit der Flaggenrotation fertig sind. Wir werden auf dieser fertigen Stecknadel genau hier aufbauen. Dafür werde ich mich zu einem Theaterstück hinziehen. Ton Zwei D. Ich werde das einfach von der Lackierung anbringen , damit Sie sehen können, wohin das Kabel für das Stück führen wird. Hört sich wieder an, Wahl des Dealers. Hier mache ich Enter Simulate. Dies ist ein Sound, der in Ihrem Engine-Inhalt enthalten sein sollte . Du könntest also auf dieses Zahnrad klicken und sicherstellen, dass du Inhalte für die Engine hast, aber genau das werde ich wählen. Und dann ziehe ich mich von hier fort und mache Spawn-System vor Ort Das System ist ein Niagara-Partikelsystem. Nun, für meine Vorlage hier werde ich diesen Radialausbruch wählen, genau dort in diesem speziellen Signalweg existiert Du könntest am Standort auch einen Spawn-Emitter machen. Nun zu diesem speziellen Partikel, es ist ziemlich generisch. Es ist nicht besonders auffällig. Also werde ich es sehr groß skalieren, bis es auf 101010 in der Jetzt muss ich diesen Standort angeben. Ich habe einen Standort in meinem, den ich in Respawn Transform ziehen werde in Respawn Transform ziehen Ich werde mich von hier wegziehen. Ich werde sagen, den Standort der Welt ermitteln. Ich möchte das eigentlich ein bisschen ausgleichen. Ich werde das erledigen und auf die Plus-Schaltfläche tippen, damit ich etwas hinzufügen kann. Und ich werde das um 200 in Z-Richtung ausgleichen. Das wird der Ort sein , an dem dieses System erzeugt werden soll. Ich klicke mit der linken Maustaste und ziehe mit der Maus herum und tippe auf die C-Taste Ich werde das sagen lassen, das ist mein Spiel FX und VX. Und dann, genau hier oben, drehen wir unsere Flagge selbst Ich lasse das unkommentiert, aber ich ändere dieses Kommentarfeld hier auf Schwarz Ordnung, also werde ich versuchen, das hier in ein paar Ansichten zusammenzufassen hier in ein paar Ansichten zusammenzufassen Also werde ich hier bis zu einem Punkt gehen, falls Sie das Video hier pausieren möchten, um zu sehen, was wir gebaut haben. Noch einmal, das ist unsere Kiste genau dort. Diese Spawn-Transformation. Wir haben es geschafft, indem wir hier draußen nach einer Spawn-Transformation gesucht Das ist eine Variable , die in unserem Third-Person-Spielmodus vorkommt Dann ist hier der zweite Teil unseres Skripts. Falls Sie das Video hier pausieren möchten, konzentrieren wir uns einfach auf diesen oberen Teil, die Drehung der Flagge genau hier, von 00 auf 0,11. Und wenn wir damit fertig sind, werden wir genau das hier abspielen Okay, offensichtlich wird das noch nicht vollständig funktionieren. Wir müssen immer noch an der Wiederholung arbeiten, den Charakter selbst spawnen und das Drehbuch zum Laufen bringen Aber zumindest sollten wir in der Lage sein, das zu kompilieren, dieses spezielle Feld mit unserem Charakter zu überlappen und sehen, ob die Flagge hochkippt und ob wir irgendwelche Effekte sehen Und sehen Sie sich einige Effekte an, und hier sind einige Effekte. Also los geht's. Ich werde reinspringen und spielen. Ich habe meinen Checkpoint da, versuche das zu überlappen Da haben wir es, die Flagge geht hoch, wir sehen ein bisschen dort, hier, ein bisschen Jazz Und das scheint wie beabsichtigt zu funktionieren. Ich werde versuchen, das noch einmal zu überlappen . Sie können sehen, dass wir diesen Effekt nur einmal erzielen. Und das ist alles schön und gut. Ordnung Leute, wir sind jetzt in einer guten Position, um an unserem Respawn-Skript zu arbeiten , das als Nächstes in unserem Spielmodus Blueprint erscheinen In Ordnung Leute, wir sind jetzt in einer guten Position, um an unserem Respawn-Skript zu arbeiten, das als Nächstes in unserem Spielmodus Blueprint erscheinen wird. Wir sehen uns dort 74. Respawn-Skript des Spielemodus: Willkommen zurück. Jetzt haben wir einen Checkpoint-Blueprint, in dem wir eine Spawn-Transformationsvariable innerhalb unseres Spielmodus-Blueprints setzen eine Spawn-Transformationsvariable innerhalb unseres Spielmodus-Blueprints Lassen Sie uns weitermachen und in unseren Third-Person-Spielmodus selbst eintauchen , um unser Respawn-Skript einzurichten Dazu werden wir in unseren Inhaltsbrowser eintauchen. Und ich werde in meinem Third-Person-Spielmodus beginnen. Aber ich werde auch sofort meinen Third-Person-Charakter öffnen . Weil ich unterwegs auf etwas in unserem Charakterentwurf in der dritten Person hinweisen unserem Charakterentwurf in der dritten Person Also mach weiter und öffne beide hier in unserem BP-Third-Person-Spielmodus Wir beginnen im Event-Diagramm, indem wir mit der rechten Maustaste klicken und nach einem Startknoten suchen . Auch dies wird ausgelöst, wenn wir mit dem Spielen beginnen. Und was möchte ich nach Begin Play machen? Nun, ich werde klicken, ich werde Spielercharakter bekommen. Und ich werde aus diesem Knoten herausziehen. Und wir werden für einen Charakter aus der dritten Person casten. Und Sie werden gleich hier sehen, warum. Jetzt werde ich in meinem Spielmodus-Blueprint von hier zu meinem Charakter aus der dritten Person übergehen jetzt in unserem Charakter aus der dritten Person Wenn du jetzt in unserem Charakter aus der dritten Person auf dieses Zahnradsymbol in der Leiste „Mein Blueprint“ klickst, zeige ich vererbte Variablen Ich zeige all diese verschiedenen Dinge genau hier. Wenn ich das ausschalte, werden Sie hier unten keine Event-Dispatcher sehen hier unten keine Event-Dispatcher vererbte Variablen anzeigen Ich lenke Ihre Aufmerksamkeit auf diesen Event-Dispatcher-Bereich Der Grund, warum ich deine Aufmerksamkeit hier unten lenke, ist wenn wir unter das Event-Dispatch-Spiel fallen, wir haben diesen Event-Dispatcher für unser Charakter zerstört wird Wenn unser Charakter zerstört wird, können wir mithilfe eines Event-Dispatchers in einem anderen Blueprint aufrufen, dass etwas anderes passiert Ich habe diesen speziellen Event-Dispatcher nicht erstellt. Das geht mit unseren Charakterklassen-Eltern einher. Der Grund, warum ich darauf hinweise , ist, dass dies in unserem Charakter aus der dritten Person existiert. Wir können innerhalb anderer Baupläne etwas geschehen lassen. Wenn unser Charakter aus der dritten Person zerstört wird, stirbt er. Jetzt gehe ich zurück in unseren Third-Person-Spielmodus. Ich werde aus unserem SBP einen Third-Person-Charakter herausziehen und nach Destroyed suchen Und ich werde ein Schild mit der Aufschrift Destroyed einbauen. Das wird zwei Knoten einbringen. Was das mit sich bringt, ist ein maßgeschneidertes Ereignis. Und ich werde dieses benutzerdefinierte Ereignis bei seinem aktuellen Namen Destroyed Event belassen , ebenso wie bei diesem Bind-Knoten. Was wir hier tun , ist, dass wir zu Beginn des Spiels quasi in unseren Charakter aus der dritten Person hineingreifen und sagen, hey, wenn du zerstört bist, werden wir darauf achten , wenn das passiert. Wenn das passiert, werden wir dann aus dieser Stecknadel heraus feuern. Dieses Ereignis, das Spiel beginnt und dieses Ereignis an dieses unzerstörte Ereignis für unseren Charakter aus der dritten Person zu binden dieses unzerstörte Ereignis für , bedeutet im Grunde , darauf zu achten, wenn das bei unserem Charakter aus der dritten Person passiert Und wenn es passiert, dann das Baby gleich hier raus Das können wir für unseren gewünschten Respawn verwenden. Wenn wir das in die Länge ziehen, können wir einfach nach einem Spawn-Schauspieler aus der Klasse suchen Spawn-Schauspieler aus der Klasse suchen Der Schauspieler, auf den wir antworten möchten, sind im Grunde wir selbst, ein weiterer Charakter aus der dritten Person Hier unter Unterricht gebe ich die dritte Person ein, ich suche nach einem Charakter aus der dritten Person Natürlich muss ich angeben, wo ich antworten möchte. Nun, rate mal was. diesem Third-Person-Spielmodus haben wir diese Spawn-Transformation erstellt, haben wir diese Spawn-Transformation erstellt um sie mit unserer Spawn-Transformation hier zu Beachten Sie, dass wir die Werte dieser Variablen von unserem BP-Checkpoint aus auffüllen dieser Variablen von unserem BP-Checkpoint aus Wenn wir dieses Feld überlappen, legen wir hier tatsächlich die Koordinaten für unsere Spawn-Transformation Wir setzen es auf die Respawn-Transformation, unseren Großartig. Gehen wir zurück in unseren Third-Person-Spielmodus. Das ist alles schön und gut, aber das würde nur beim ersten Mal funktionieren. Und wir wollen das so machen, dass dieses Respawn-System funktioniert, wenn wir immer wieder sterben Und es gibt noch ein paar andere Dinge, um die wir uns kümmern müssen Das erste ist unser Charakter aus der dritten Person Wenn sie erscheinen, wollen wir sicherstellen, dass sie klein sind Wir möchten, dass sie für unsere Kapselkomponente diese Skala von 0,75 für unsere Kapselkomponente diese Skala Um das auch hier in unserem Spielmodus zu gewährleisten, werde ich nach dem Respawn einen Charakter aus der dritten Person von diesem Rückgabewert entfernen Und ich werde die Kapselkomponente eingeben. Wir holen uns die Kapselkomponente und dann werde ich hier rausziehen. Und ich werde auch die Respawn-Größe finden, unsere Respawn-Größenvariable, die unserem Charakter aus der dritten Person existiert Wir sprechen hier von dieser Variablen, die pauschal auf 0,75 gesetzt ist Was wir nun tun werden, ist unserer Kapselkomponente herauszuziehen und ich sage , Weltskala drei D setzen . Und dann gebe ich unsere Antwortgröße ein, die auf breiter Front auf 0,75 gesetzt ist, um sie so zu gestalten, dass unsere Caple-Komponente garantiert flächendeckend 0,75 beträgt Im Grunde wird unser Charakter so klein sein. Okay. Also das ist das Erste , was wir tun müssen. Das nächste, was wir tun müssen , ist sicherzustellen, dass wir tatsächlich Besitz, eine gewisse Kontrolle über diesen Charakter erlangen . Um das zu tun, schreibe ich Klick auf eine leere Stelle. Den Player-Controller holen ist die erste Notiz, nach der ich suchen werde. Dann ziehe ich das raus und tippe Besitz ein. Bei dieser Besitz-Funktion müssen wir nicht nur den Controller angeben, sondern auch, welche Figur wir besitzen wollen Nun, wir können hier einfach unseren Charakter aus der dritten Person herausziehen , den wir gerade spawnen Stecken Sie es hier in unsere Spielfigur ein. Und dann doppelklicke ich einfach ein paar Mal auf diesen Draht, nur um ein paar Umleitungsknoten einzufügen , damit das alles schön und ordentlich aussieht Okay, das ist alles schön und gut, aber schauen Sie sich einfach unsere aktuelle Einrichtung an Das funktioniert nur beim ersten Mal. Zu Beginn des Spiels sagen wir also im Grunde, hey, achte darauf, wenn unser Charakter aus der dritten Person zerstört wird. Und wenn sie zerstört sind, werden wir tatsächlich einen Charakter aus der dritten Person hervorbringen und wir werden sie besitzen. Wenn wir jedoch sterben, haben wir keine Möglichkeit, darauf zu warten, dass sich dieses Ereignis erneut ereignet Wie können wir dieser Situation also Abhilfe schaffen? Nun, was wir hier tun können, ist mit der rechten Maustaste in eine leere Stelle hier oben zu klicken. Ich werde benutzerdefinierte Ereignisse eingeben . Ich nenne das Respawn und füge es genau an derselben Stelle ein, an der unser Event beginnt Im Grunde genommen, hey, lasst uns noch einmal nach dem zerstörten Event-Dispatcher in unserem Charakter aus der dritten Ganz am Ende , nachdem wir das benutzerdefinierte Respawn-Ereignis erstellt haben, können wir es von hier wegziehen und Respawn eingeben Im Grunde ist das, was wir hier tun wir zu Beginn des Spiels das erste Mal darauf warten , dass das Event zerstört Und tatsächlich wird das dann beim Spawn eines neuen Third-Person-Charakters ausgelöst , den wir dann kontrollieren können Dann sagen wir im Grunde, oh ja, das Letzte Achten wir darauf , dass dieses unzerstörte Ereignis erneut eintritt Damit wir immer darauf achten können , wenn unser Charakter zerstört wird, damit wir ihn wiederbeleben können. Okay, lass uns weitermachen und das kompilieren und speichern. Und lassen Sie mich das hier zusammenfassen falls Sie einen Screenshot davon machen möchten. Schau genau, was wir gemacht haben. Gleich springen wir rein und spielen hier. Aber um das wirklich zu testen, muss ich sicherstellen, dass wir hier in unserem Level-Editor eine Möglichkeit haben, uns umzubringen . Lass mich sichergehen, dass wir hier ein paar Flammenarme haben . Das sollte uns früh genug dazu bringen , reinzuspringen und zu spielen. Also gut, ich werde diesen Checkpoint genau hier überqueren diesen Checkpoint genau hier überqueren Wir haben unseren Respawn-Punkt festgelegt. Lass mich weitermachen und auf einen Flammenarm stoßen. Hier bin ich gestorben und wie Sie sehen können, antworte ich genau dort, wo ich hingehört habe. Es scheint, als würde ich den gewünschten Job machen. Gut gemacht Leute. Wir haben jetzt ein Checkpoint- und Reaktionssystem eingerichtet Wir sehen uns alle im nächsten Video. 75. Spieler-Death-Sequenz #1: In Ordnung, willkommen zurück alle. In den nächsten Videos werden wir daran arbeiten, eine Todessequenz für Spieler zu erstellen . Das wird so sein, dass unser Spieler in die Luft geworfen wird, durch die Welt fällt und am Checkpoint reagiert Wir werden auch daran arbeiten, in diesem Abschnitt des Kurses eine sofortige Todesgefahr zu schaffen eine sofortige Todesgefahr in diesem Abschnitt des Kurses eine sofortige Todesgefahr zu Damit wir in eine solche Grube fallen, sterben und dann auch wieder an diesem Checkpoint landen Aber wir werden damit beginnen, diese Todessequenz für Spieler zu erstellen Todessequenz für Spieler zu Ordnung, zurück in unserer funktionierenden Version des Projekts werden wir damit beginnen , ein Drehbuch in unseren BP-Third-Person-Charakter einzufügen . Finden Sie also Ihren Weg zum Ordner mit den Blueprints der dritten Person. Da ist unser BP-Third-Person-Charakter. Doppelklicken Sie auf diesen Typen, um ihn zu öffnen und zum Ereignisdiagramm zu gelangen. Wir haben hier schon eine Menge Drehbuch drin. Ich zoome einfach mit dem Scrollrad heraus und finde vielleicht eine leere Stelle in dieser Region. Ich zoome nach oben und erstelle zunächst ein benutzerdefiniertes Ereignis. Klicken Sie mit der rechten Maustaste. Wir geben Benutzerdefiniertes Ereignis ein und nennen dieses benutzerdefinierte Ereignis. Lassen Sie mich noch weiter vergrößern. Steuerung gedrückt halten und heranzoomen. Ich nenne diesen Spieler stirbt. Wenn dieses benutzerdefinierte Event aufgerufen wird, spielen wir eine Todessequenz. Jetzt möchte ich nicht warten müssen , bis ich auf einen Feind stoße oder in eine Grube falle , um dieses Ereignis auszulösen. Ich möchte das im Editor auslösen können. dieses benutzerdefinierte Ereignis . Wenn ich das ankreuze hier im Detailbereich ausgewählt ist, habe ich dieses Kontrollkästchen namens Im Editor aufrufen , mache ich es so, dass ich manuell aufrufen kann, dass dieses benutzerdefinierte Ereignis ausgelöst wird , während ich das Spiel spiele. Darauf kommen wir gleich zurück. Das ist einfach eine wirklich einfache Methode , die es uns ermöglicht, diese Funktionalität zu testen, ohne auf diesen Feind stoßen zu müssen oder eine Pip hinunterfallen Okay, als Nächstes werden wir hier eine Funktion erstellen Wir können eine Funktion drüben im Bedienfeld „Mein Blueprint“ erstellen. Funktionen Klicken Sie auf diese Plus-Schaltfläche, um eine Funktion zu erstellen. Und wir werden eine Funktion namens destroy a x erstellen. Als wir diese Funktion erstellt haben, haben wir hier oben einen neuen Tab geöffnet, in dem wir die gewünschte Funktionalität hier hinzufügen können . Das Erste, was ich tun werde, wenn diese Funktion aufgerufen wird, ist, dass ich von hier wegziehe und play eintippe. Sound Two D, der Sound, den wir spielen werden , ist der von Mario. Sound, ich werde Mario sterben lassen. Danach klicken wir mit der rechten Maustaste auf Spielercharakter suchen. Wenn wir gestorben sind, wollen wir nicht mehr, dass Eingaben registriert werden. Also werde ich auch mit der rechten Maustaste klicken und Player-Controller holen, Spielercharakter holen, Player-Controller holen. Und wenn ich aus meinem Get Player Controller herausziehe, gebe ich disable input ein. Beachten Sie jetzt, dass, wenn Sie das getan haben, was ich gerade getan , es automatisch mit dem Ziel verbunden wird. Eigentlich wollen wir das Get Player-Controller nach unten auf diesen Player-Controller-Eingang verschieben , um die Steuerung gedrückt zu halten und mit der linken Maustaste zu klicken. Und stellen Sie sicher, dass Sie das an den Player-Controller anschließen und den Spielercharakter als Ziel eingeben. Okay, also spiel. Sound Wir werden den Eingang deaktivieren. Als Nächstes ziehen wir uns von hier weg und wir werden den Emitter an der Position spawnen Auch hier können Sie das Spawn-System am Standort ausführen, wenn es ein Niagara-Partikelsystem handelt , das Sie spawnen möchten Dafür werde ich die alte Explosion verwenden, die im Starter-Inhalt zu finden ist Aber auch hier gilt die Wahl des Händlers, Sie können hinzufügen, was Sie wollen. Ich werde das Ganze hochskalieren, damit ich in glorreicher Pracht ausgehe, es auf breiter Front auf 3,3 hochskalieren Ich muss das mit einem Standort angeben. Wo würde ich diese Explosion gerne erzeugen? Nun, ich kann aus „Spielercharakter auswählen Standort des Schauspielers herausholen Das wird der Ort sein, an dem ich in diesem Partikeleffekt spawnen möchte Okay, wir sind noch nicht fertig, also halte ich die rechte Maustaste gedrückt und schwenke einfach ein bisschen weiter Als Nächstes möchte ich einen Verweis auf meine Komponente zur Charakterbewegung einfügen. Gehe nach links klicken und ziehen. Und dann ziehe ich es raus und tippe deaktivieren ein. Wenn ich sterbe, möchte ich im Grunde sofort aufhören. Und das wird sicherstellen, dass jegliche Bewegung zum Stillstand gekommen ist. Darüber hinaus möchte ich hier oben einen Verweis auf meine Kapselkomponente einfügen. Ziehen Sie das per Drag & Drop. Dann ziehen wir das raus und setzen Kollision ein. Der Knoten heißt Set Collision enabled. Ich möchte sichergehen, dass dieser Wert auf Kollisionsfreiheit eingestellt ist , damit mein Charakter einfach durch alles hindurchfällt. Dann werde ich mein Chaos Re reinbringen , das ist das eigentliche Mannequin selbst. Zieh das rein Dann ziehe ich das weg und tippe Animation ein. Dafür kann ich eine neue Animation zum Abspielen einbauen. Wenn ich auf dieses Drop-down-Menü klicke, erscheint eine Fallschleife. Sie können das Verzeichnis genau dort sehen. Es ist im Spiel enthalten, Charaktere, Mannequins, Animationen, viele. Das ist. Siehst du, wie das aussieht? Wenn ich darauf klicke, ist es irgendwie so, weißt du, hey, ich falle irgendwie. Ich dachte, das wäre ziemlich gut. Aber auch hier gilt die Wahl des Dealers. Sie können wählen, welche Animation Sie spielen möchten Sie können festlegen, dass es sich um eine Endlosschleife handelt, wenn Sie möchten. Das wird also unsere Funktion sein , die wir hier gleich aufrufen werden. All diese Funktionen sind jetzt in einer Funktion gespeichert , die, wenn wir diese Funktion aufrufen, im Grunde genommen viele andere Funktionen aufrufen wird . Ziemlich praktisch, finde ich. Okay, als Nächstes werden wir in unserem, meinem Blueprint-Panel hier, meinem Blueprint-Panel hier, unseren eigenen Event-Dispatcher erstellen , genau hier unten Also klicken Sie auf diese Plus-Schaltfläche und wir werden das R Starts Death Sequence nennen das R Starts Death Also gut, das wird in unserem Event-Dispatcher-Bereich hier unten erstellt unserem Event-Dispatcher-Bereich hier unten Mit einem Event-Dispatcher rufen Sie das Ereignis auf, und dann können alle anderen Blueprints , die auf dieses Ereignis warten Auf diese Weise sind die Empfangs-Blueprints, die abhören, wenn dieses Ereignis eintritt, in etwa so , wie Abonnenten, die darauf warten, benachrichtigt zu werden , wenn ihr Lieblingsstar oder -sportler einen Tweet verschickt, Abonnement-Blueprints, die darauf warten, dass dieses Ereignis eintritt, dann entsprechend reagieren Das heißt, sie können ihr eigenes Skript als Reaktion auf dieses Ereignis ausführen, das gerade eingetreten als Reaktion auf dieses Ereignis ausführen, das Das wird gleich ins Spiel kommen wenn wir unseren Block benachrichtigen , darauf zu achten, wann dieses Ereignis eintritt. Okay, damit startet der Spieler Death Sequence Event Dispatcher an Ort und Stelle Wir können jetzt zu unserem Event-Graph zurückkehren. Im Grunde genommen verlassen wir diesen Funktions-Tab und wir können anfangen, auf unseren Spielerwürfen aufzubauen , dem benutzerdefinierten Event. Also das Erste, was ich tun werde, ist, wenn unser Spieler stirbt, wenn das aufgerufen wird, werden wir unserem Destroy-Akteur FX sagen, diese Funktion genau hier aufgerufen werden soll. Als Nächstes ziehen wir unseren Event-Dispatcher hierher, klicken mit der linken Maustaste und ziehen ihn hinein Und dann bekommst du dieses kleine Untermenü. Wir wollen das Event Dispatcher nennen. Es wird wieder dieses kleine Umschlagsymbol haben , das im Grunde einen Tweet für alle anderen Blueprints aussendet , die auf dieses bestimmte Ereignis warten dieses bestimmte Ereignis Ordnung, und was wir hier tun wollen, indem wir einfach die rechte Maustaste gedrückt und ein bisschen weiterkeuchen, ist, dass ich hier mit der rechten Maustaste in eine leere Stelle klicke Und ich werde den Schauspieler transformieren lassen. Welcher Schauspieler wird das tun, im Grunde unser Charakter aus der dritten Person. Wir wollen wissen, wo sich dieser Schauspieler der Welt befindet und wo er rotiert . Und der Grund, warum ich das haben möchte, ist , dass ich mit der rechten Maustaste auf diesen Rückgabewert klicken möchte und ihn zu einer Variablen heraufstufen , dass ich mit der rechten Maustaste auf diesen Rückgabewert klicken werde . Diese Variable wird Start Death Transform heißen. Jetzt werden wir das etwas später in diesem Skript verwenden , nachdem wir eine Zeitleiste erstellt haben , von der aus unsere Todessequenz beginnen soll. Dieser herunterfallende Effekt. Okay, das nächste, was wir tun werden, ist einen Verweis auf unser Mesh einzubringen. Nochmals, das wird unser Mannequin hier sein. Ziehen Sie das per Drag-and-Drop aus dem Komponenten-Panel hinein. Und dann ziehen wir das in die Länge und lösen uns von den Komponenten Dadurch wird dieses Netz im Wesentlichen von den größeren Kapselbestandteilen des Charakters in der dritten Person gelöst, sodass es aufgrund dieser verschiedenen Regeln nach unten fallen kann Wir werden all das ändern, um die Welt zu erhalten. Und das wird der erste Teil unseres Death-Sequenz-Skripts sein. Und genau hier sind wir noch lange nicht fertig. Als Nächstes müssen wir einen Zeitplan hinzufügen. Aber wir werden dieses Video nennen und dann mit Teil zwei weitermachen. Sie können weitermachen und kompilieren und speichern, um sicherzustellen, dass Sie Ihren Fortschritt hier gespeichert haben. Und dann sehen wir uns alle im nächsten Video, in dem wir das beenden. 76. Spieler-Death-Sequenz #2: Willkommen zurück zum zweiten Teil unserer Player-Death-Sequenz. Lassen Sie uns wieder in unseren Charakterentwurf für Dritte eintauchen unseren Charakterentwurf für Dritte Hier haben wir im letzten Video mit unserer Funktion „ Von Komponenten getrennt“ aufgehört letzten Video mit unserer Funktion „ Von Komponenten getrennt Jetzt fügen wir eine Zeitleiste hinzu, klicken Sie mit der rechten Maustaste in eine leere Stelle. Wir werden eine Zeitleiste hinzufügen, eine Zeitleiste hinzufügen. Ich werde diese Zeitlinie meine Todesanimation nennen. Und ich werde das sofort anschließen. Ich werde das von Anfang an spielen. Es ist nicht wirklich wichtig, wie wir das alles miteinander verbinden werden Wenn der Spieler von Anfang an spielt, spielen wir von Anfang an. Doppelklicken wir dann darauf, um es zu öffnen. Dann haben wir hier oben gerade einen neuen Tab geöffnet , damit wir unsere Animation hier, unsere Zeitleiste, anpassen können . Das wird ein Float-Track sein. Lassen Sie uns also weitermachen und einen Float-Track hinzufügen. Ich werde dieser Bewegung einen Namen geben. Ich werde meine Gesamtlänge hier auf 1,5 Sekunden festlegen . Dann werde ich drei Keyframes hinzufügen. Also werde ich die Umschalttaste gedrückt halten und ein-, zwei- und dreimal mit der linken Maustaste in das gleiche Muster klicken . Und dann mache ich weiter und lege die Werte für jeden dieser Werte fest. Ich wähle diesen ersten aus, die Zeit wird Null sein und der Wert wird Null sein. Den zweiten hier werde ich auswählen, die Zeit wird 0,5 Sekunden sein und der Wert wird 500 sein. Und dann wähle ich mein letztes Schlüsselbild aus, genau hier in der Zeit wird es 1,5 Sekunden sein und der Wert wird negativ 1.000 sein. Auch wird es weit aus dem Diagramm herausspringen. Wenn Sie also auf diese Pfeiltasten klicken, sollten Sie sie so einrahmen . Ich benutze nur das Scrollrad, um nach hinten zu zoomen. Nun, das ist ein etwas hartes Diagramm. Es ist ****, ****. Ich möchte, dass es gekrümmt ist, also kann ich es krümmen, indem ich mit der linken Maustaste klicke und an all diesen verschiedenen Punkten ziehe Und dann kann ich mit der rechten Maustaste auf einen beliebigen Punkt klicken und einfach die automatische Interpolation durchführen Das wird diese glatte Kurve wie diese erzeugen. Nun, das soll unsere Mesh-Animation sein. Also im Grunde genommen in die Luft geschleudert zu werden und dann herunterzufallen Nachdem wir diesen Track hinzugefügt haben, können wir direkt hier aus unserer Todesanimation, unserer Timeline, aussteigen direkt hier aus unserer Todesanimation, unserer Timeline, Gehen Sie zurück zu unserer Ereignisgrafik. Wir sehen jetzt diese Bewegungsausgabe. Und im Wesentlichen werden wir diese Bewegungsausgabe zum Hinzufügen verwenden . Wir werden einen Operator zu einer bestimmten Z-Position hinzufügen . Wir werden jetzt einen Hinweis auf unsere Start-Death-Transformation einbringen . Wenn wir das reinbringen, werden wir das bekommen. Denken Sie weiter oben im Drehbuch daran, dass wir, wenn wir sterben, im Grunde unseren aktuellen Standort abrufen und diesen in einer Variablen speichern. Und der Grund, warum wir diesen Koordinatensatz, wenn Sie so wollen, innerhalb dieser Variablen speichern diesen Koordinatensatz, wenn Sie so wollen, , ist, dass wir ihn hier als Startposition verwenden können hier als Startposition , von der aus diese Todesanimation aus dieser Start-Todes-Transformation heraus beginnen soll . Ich ziehe es in die Länge und sage Pause. Der Grund, warum wir das aufbrechen, ist, dass uns wirklich nur die Standortinformationen interessieren. Also werde ich mit der linken Maustaste klicken und die Maus von hier wegziehen Wir werden diesen Vektor in seine X-, Y- und Z-Komponenten aufteilen. Im Wesentlichen wird das Z unserer Starttiefentransformation zur Wertausgabe aus unserer Zeitleiste hinzugefügt unserer Starttiefentransformation . Wieder einmal wird sich unser Zeitplan ändern. Dieser Wert wird von Null bis 500 ausgegeben, einer halben Sekunde und dann nach 1,5 Sekunden auf minus 1.000. Dieser Wert wird sich über einen Zeitraum von 1,5 Sekunden ändern , wie wir gerade hier erwähnt Okay, all das wird notwendig sein, weil wir es letztendlich verwenden werden, um eine Verbindung zu einem bestimmten relativen Standort und Rotationsknoten herzustellen Wir wollen hier die relative Position und Rotation unseres Meshs festlegen . Ziehen wir das in unser Diagramm. Da ist unser Netz. Zieh dich hier raus. relative Position und Rotation fest , wenn wir unsere Zeitleiste aktualisieren. Genau hier. Da fließen wir rein. Und den neuen Ort, den wir hier rausziehen werden, werden wir einen Vektor erstellen. Einen Vektor erstellen. Wir werden die X- und Y-Werte von unserer Ausgangsposition aus beibehalten . Das ist alles in Ordnung. Wir wollen nur die Z-Position ändern. Das Ergebnis dieser Mathematik hier ist, dass unser Netz im Grunde genommen in die Luft steigt und dann wieder nach unten fällt. Jetzt, nach diesem kleinen Skript hier, werde ich einen Delay-Node einbauen. Ich werde das um 2,5 Sekunden verzögern. 2,5 dann werde ich mich von hier wegziehen und Schauspieler sagen. Gemeint ist unser Charakter aus der dritten Person. Also, warum 2,5 Sekunden? Nun, durch einige Tests habe ich herausgefunden, dass das ungefähr genug Zeit war, um sicherzustellen, dass unser Spieler vom Bildschirm gefallen ist. Das wird also im Grunde unser Drehbuch sein. Und ich werde hier einfach versuchen , rückwärts zu arbeiten , damit Sie das Video bei Bedarf anhalten können , damit Sie alles sehen können , was wir hier zusammengestellt haben In Kürze können wir weitermachen und versuchen, können wir weitermachen und versuchen dieses benutzerdefinierte Ereignis manuell aufzurufen Lassen Sie uns weitermachen und hier kompilieren und speichern, um sicherzustellen , dass alles gut aussieht. Um das zu testen, werde ich hier zurück zu meinem Level-Editor springen. Ich werde hier im Level-Editor auf diese drei Punkte klicken . Und ich werde von einem neuen Editor-Wiedergabefenster zu meinem ausgewählten Viewport wechseln Editor-Wiedergabefenster zu meinem ausgewählten Viewport Ich werde das jetzt tun, weil ich jetzt in meinem Viewport spielen kann, aber auch meinen Outliner sehe Alle Schauspieler in dieser gelblich-orangen Farbe. Sie wurden hier zu Beginn des Spiels automatisch generiert. Sie existierten nicht, bis wir das Spiel gespielt haben. Dadurch kann ich meinen Charakter aus der dritten Person auswählen. Und Sie können sehen, dass ich hier reinklicken und mich bewegen könnte , um meinen Mauszeiger zurückzubekommen. Es ist nur die Umschalttaste und eine, die meinen Mauszeiger zurückbringt , wenn der Mauszeiger ausgewählt ist. Wenn du hier unten in deinem Detailbereich nach einem Spieler suchst hier unten in deinem Detailbereich , wie du gerade gesehen hast, kann ich meinen Spielertod finden. benutzerdefinierte Ereignis wird jetzt hier im Editor angezeigt, sodass ich es aufrufen kann. Das eignet sich hervorragend für Testzwecke, also muss ich nur darauf klicken und Sie werden sehen, wie mein Spieler diese Todessequenz spielt. Toll zum Testen. Los geht's. Behalte also diesen Charakter im Auge, wenn ich darauf klicke . Da haben wir's. Charakter fliegt hoch, geht runter und es funktioniert wie vorgesehen. Das ist großartig. Aber lassen Sie uns jetzt dafür sorgen, dass das tatsächlich in einem relevanten Skript funktioniert in einem relevanten Skript , denn das war nur zu Testzwecken. Wenn wir nun wieder in unseren Charakter aus der dritten Person eintauchen und unser Skript zum Anpassen der Trefferpunkte finden. Und ich werde hier unter mein Panel „Ergebnisse suchen“ gehen . Ich könnte es einfach hier finden, indem ich mich in meiner Grafik umsehe. Aber nur um zu zeigen, was man hier alles machen kann, oben habe ich ein Fenster, ich habe Ergebnisse suchen aktiviert. Wenn ich also einfach anpassen eintippe, Punkte drücke und dann die Eingabetaste drücke, siehst du die Ergebnisse, die ich erhalte. Und wenn ich einfach darauf doppelklicke, finde ich mein Script zum Anpassen von Treffern. Es wird mich zu diesem benutzerdefinierten Event weiterleiten. Was ich jetzt tun möchte, ist, dass ich in diesem Teil meines Diagramms auftauchen möchte. Was wir hier gemacht haben, ist , dass wir einfach unseren Charakter aus der dritten Person zerstört haben, quasi sofort, als ihm die Trefferpunkte ausgegangen sind. Was ich tun möchte, ist , dass ich das hier oben, ganz oben in diesem wahren Zweig, loswerden hier oben, ganz oben in will. Lösch das raus. Stattdessen kann ich diese Destroy Actor FX-Funktion eher nennen. Es tut mir leid, das ist nicht das, was wir tun wollen. Wir möchten unseren Spieler stirbt als benutzerdefiniertes Event bezeichnen. Lassen Sie mich hier einfach weiterziehen und Spieler stirbt eintippen. Dies wird das benutzerdefinierte Ereignis im Wesentlichen dann aufrufen, wenn uns die Trefferpunkte ausgegangen sind. Wenn das stimmt und ich darauf doppelklicke, werde ich zu der Stelle weitergeleitet, an der wir dieses benutzerdefinierte Ereignis starten werden. Und innerhalb unserer Destroy-Actor-Funktion werden wir all diese Effekte machen. Ich doppelklicke einfach auf diesen Knoten und springe dann zurück. Wir werden diesen Teil des Drehbuchs durchgehen. Irgendwann werden wir diesen Event-Dispatcher verwenden , der Spieler startet die Todessequenz Wir werden unser Netz abnehmen. Wir werden diese Todesanimation abspielen. Wir fliegen hoch in die Luft und wieder runter. Und dann, nachdem diese 2,5 Sekunden vergangen sind, werden wir unseren Schauspieler zerstören, indem wir unseren Charakter aus der dritten Person treffen Lassen Sie uns das kompilieren und speichern und testen Und das sollte wieder passieren, wenn wir, sagen wir, auf einen Gumba-Feind stoßen , oder unsere Schusswaffengefahr reicht Lass mich hier oben einfach auf meinen Gumba stoßen. Bum, ich bin tot. Mir gehen die Trefferpunkte aus. Tatsächlich habe ich an meinem Checkpoint geantwortet. Großartig, alles funktioniert wie vorgesehen. Gut gemacht. Wir haben jetzt eine intakte Todessequenz für Spieler. Wir sehen uns alle im nächsten Video. 77. Todessequenz und der P-Block: Ordnung, im Laufe der letzten beiden Videos haben wir das Drehbuch für die Spielerwürfel zusammengestellt , damit unser Spieler eine Todessequenz spielen kann Und das alles wurde innerhalb unseres Third-Person-Charakters gemacht . Als Teil des Skripts haben wir auch einen Event-Dispatcher-Aufruf namens Player Death Start Sequence eingebaut Damit wir allen anderen Blueprints, die wissen mussten, dass unser Spieler gestorben ist, eine Nachricht senden konnten allen anderen Blueprints, die wissen mussten, dass unser Spieler gestorben ist Jetzt können wir innerhalb jeder anderen Blaupause entsprechend reagieren Lass etwas passieren, was wir gerne geschehen lassen würden. Das ist nur das Aussenden der Botschaft. Jetzt müssen wir in einem anderen Plan den Empfang dieser Nachricht und eine entsprechende Antwort einrichten einem anderen Plan den Empfang dieser Nachricht und eine entsprechende Antwort Und wir wollen das eigentlich innerhalb unseres Blocks einrichten . Ich habe einen Block in meinem Level eingerichtet und wie du weißt, wenn du damit aufhörst, werden einige meiner Blöcke hier in Münzen umgewandelt. Und was wir tun müssen, ist unserem Block zu melden, dass, ja, der Spieler gestorben ist. Damit wir diese Blöcke, die in Münzen umgewandelt wurden, wieder in Blöcke eintauschen können . Sobald unser Spieler gestorben ist, kannst du deinen Block wieder öffnen, indem du ihn in deinem Level und dann im Outliner auswählst, indem du einfach genau dort klickst Oder du findest ihn unten in deinem Inhaltsbrowser. Wir haben es an diesem Ort. das geöffnet ist, werden wir unser Skript ein wenig modifizieren. Am Anfang starten wir das ganze Skript genau hier, wenn wir festgestellt haben, dass unser Spieler die Box-Komponente getroffen hat . Jetzt müssen wir das ein wenig ändern, weil wir herausfinden müssen, ob es sich um den Charakter der dritten Person handelt und nicht um irgendeinen Charakter , der diese Box trifft. Und der Grund, warum wir das tun werden, ist, dass wir aus diesem Grund das Ereignis finden müssen, dass der Dispatcher-Spieler die Todessequenz startet Okay, lassen Sie uns unser P-Block-Skript hier ein wenig modifizieren unser P-Block-Skript hier ein wenig Ich werde das einfach zurückstellen. Ich werde den Get Player-Charakter loswerden, diesen Gleichheitszeichen und diesen Knoten. Ich werde auch diesen Re-Route-Knoten loswerden. Genau in der Zwischenzeit werde ich die Stecknadel meines anderen Schauspielers herausziehen und wir werden für einen Charakter aus der dritten Person casten. Und ich werde das einfach als solches neu verkabeln. Ich werde die Steuerung gedrückt halten linken Maustaste das Ganze durch mein Casting an den Charakter aus der dritten Person Wir stecken das in die Filiale für unsere Filiale. Ich werde das einfach direkt aus unserem Treffergebnis herausnehmen und herausfinden, ob unser Charakter auch noch oben drauf landet. Und das wird an unsere Filiale angeschlossen. Jetzt brauchen wir ein Ziel für unseren Startcharakter. wir also sicher, dass wir unseren Charakter aus der dritten Person nehmen und ihn dort einbauen. Aus unserem Charakter in der dritten Person ziehen wir uns von hier raus und ich werde nach dem Event-Dispatcher suchen, das hieß Spielertod, Spieler startet Todessequenz Spieler startet Todessequenz Jetzt werde ich genau hier diese Option wählen. Der zugewiesene Spieler startet die Todessequenz. Und es wird zwei Knoten einbauen , was ich will. Es wird sowohl diesen Bind-Knoten als auch dieses benutzerdefinierte Ereignis einbeziehen. Und ich lasse dieses benutzerdefinierte Ereignis einfach so, wie es ist wo ich sie von unserem Sequenzknoten abhängen werde . Wir werden gleich hier eine weitere PIN hinzufügen. Klicken Sie hier, um eine weitere PIN von den damals fünf Pins hinzuzufügen. Ich werde das hier einstecken . Was wir hier also sagen ist, wenn unser Charakter aus der dritten Person auf dieser Box stehengeblieben ist und sich unser Block im Blockmodus befindet, werden diese Blöcke in Münzen umgewandelt. Wir werden darauf achten, ob unser Spieler gestorben ist und ob unser Spieler hier in unserem Charakter aus der dritten Person gestorben ist. Wenn dieser Teil des Skripts gestartet wird, sendet er über diesen Aufruf direkt hier eine Nachricht an alle anderen Blaupausen, die darauf warten Das ist im Grunde, dass wir genau hier mit diesem Setup darauf achten. Wenn wir es an diesen Spieler binden, beginnt die Todessequenz Wir achten darauf und sobald unser Spieler stirbt, werden wir von hier aus feuern. In Ordnung, jetzt werde ich diese beiden Knoten nehmen und sie in diese beiden Knoten nehmen und sie Richtung unseres Block-Timer-Skripts hier herunterfahren. Ich werde versuchen, nach oben zu zoomen und das etwas besser einzurahmen. Nun, wenn unsere Blockzeit vorbei ist, nehmen wir all unsere Blöcke, die in Münzen umgewandelt wurden, und drehen sie einfach zurück. Jetzt wollen wir dasselbe tun, wenn unser Charakter stirbt. Wir wollen im Grunde alle unsere Blöcke wieder so machen , wie sie einmal waren. Um das zu tun, müssen wir nur ein Kabel aus der Todessequenz unseres Spielers herausnehmen Todessequenz unseres Spielers und wir werden es daran anschließen. Das Gleiche gilt für jeden Loop hier oben. Auch das ist alles in unserem Blockskript ganz unten, also so. Okay, nachdem das alles erledigt ist, lassen Sie uns weitermachen und kompilieren und speichern. Und lassen Sie uns das testen, indem wir hier zu unserem Level gehen. Ich werde auf Play klicken. Also was ich hier machen werde, ich werde unseren Checkpoint überlappen und ich werde hier auf diesen Block springen Du solltest sehen, wie sich einige dieser Blöcke in Münzen verwandeln. Ich werde versuchen, meinen Flammenarmen hier auszuweichen. Wie du gesehen hast, werden sie zu Münzen. Ich werde sterben. Jetzt kannst du sehen, dass sie sich sofort wieder in Blöcke verwandelt haben , was genau das ist, was ich wollte. Da hast du es innerhalb unseres Third-Person-Charakters , wenn dieser Spieler Todessequenz startet , die wir aufrufen. Wenn unser Spieler stirbt, wird benutzerdefiniertes Ereignis ausgelöst. Wir senden im Grunde genommen Nachrichten an alle Abonnenten, wenn Sie so wollen. Alle anderen Blueprints, die auf unseren Spieler warten, starten den Death Sequence Event Dispatcher Und für diejenigen, die zuhören , wie unser Block hier, wird es dann aus diesem benutzerdefinierten Ereignis heraus ausgelöst und was damit verbunden ist, wird ebenfalls ausgelöst In Ordnung Leute, das reicht für dieses Video. Wir sehen uns im nächsten. 78. Aktualisiere das Leben der Spieler: Ordnung, jetzt, wo wir die Todessequenz für Spieler in der Hand haben , wollen wir weitermachen und unser Hud reparieren Denn wie du oben links sehen kannst, habe ich angeblich drei Marios Wenn ich derzeit sterbe, ändert sich diese Zahl jedoch nicht Also werden wir das in diesem beheben. Um das zu erreichen, werden wir innerhalb unseres Player-Controller-Blueprints arbeiten innerhalb unseres Player-Controller-Blueprints Finden Sie also heraus, dass sich in Ihrem Plattform-Blueprint-Framework-Ordner unser BP-Player-Controller befindet Wir haben da drinnen etwas gearbeitet. Lassen Sie uns noch ein bisschen mehr tun, indem wir hineintauchen. Wir werden hier ein brandneues Skript hinzufügen. Ich werde die Steuerung gedrückt halten und die Ansicht vergrößern. Das wird unser Live-Adjust-Drehbuch sein. Ich werde unter „Punkte hinzufügen“ nach unten gehen und dann nach oben zoomen. Ich werde Click in ein leeres Feld schreiben. Ich werde ein benutzerdefiniertes Ereignis hinzufügen . Ich werde dieses Event Adjust Lives nennen , wobei dieses Kundenevent ausgewählt ist. Ich werde im Bereich „Details“ eine Eingabe hinzufügen. Klicken Sie auf diese Plus-Schaltfläche und die Eingabe, die ich hinzufügen werde, wird Leben zum Hinzufügen oder Entfernen heißen. Und ich werde den Typ von Boolean auf Integer ändern. Was ich tun werde, ist von hier wegzuziehen und einen Add-Node einzufügen Und der andere Input , den ich hier einfüge, sind Leben, mit denen wir beginnen, in meinem Fall mit drei Leben. Wenn wir dieses benutzerdefinierte Ereignis aufrufen, können wir bestimmen, wie viele Leben wir addieren oder subtrahieren möchten, und dann werden wir es zu unserer Anzahl von Leben hinzufügen Was ich dann tun möchte, ist, dass ich die Maus von hier wegziehen will, und ich werde diese Zahl klammern, wir werden diese ganze Zahl klammern Und ich werde das bei einem Wert von 0,100 belassen. Das wird mich auf 100 Leben beschränken Sie müssen das nicht tun , wenn Sie nicht wollen, aber ich würde es gerne auf 100 Leben begrenzen und dann werde ich mein Leben in die Länge ziehen Ich werde es auf diesen Rückgabewert setzen , um eine Setter-Version unserer Lebensvariablen Ich nehme unser Adjust Life, Custom Event und füge es dort ein Als Nächstes zoome ich einfach ein wenig heraus. Ich werde das rausziehen, das wird die Anzahl der Leben ausgeben. Ich werde das Gleichheitszeichen eingeben , um einen Gleichheitsknoten einzufügen Und ich sage, wenn unsere Anzahl an Leben gleich Null ist, stecke ich das in einen Verzweigungsknoten ein Also halte ich die Taste gedrückt und klicke mit der linken Maustaste, um einen Verzweigungsknoten einzufügen Wenn das wahr ist, dass unser Leben auf Null gesunken ist, dann ziehe ich von hier ab und tippe Open Level nach Namen Jetzt habe ich derzeit ein Level, LV 01. Ich könnte dieses Level einfach wieder öffnen, wenn mir die Leben ausgehen dieses Level einfach wieder öffnen, wenn mir die Leben Ich werde hier ein bisschen weiterarbeiten. Wisse das, ich weiß, dass der Editor einige Fehler ausgeben wird , wenn wir das irgendwann auslösen, wenn uns die Leben ausgehen. Irgendwann werden wir in diesem Kurs ein Hauptmenü erstellen . Und ich werde dieses Hauptmenü LV nennen und dabei Hauptmenü unterstreichen Jetzt möchte ich dieses Video nicht verzetteln, indem das ganze Hauptmenü erstelle , das später kommen Aber wisse einfach, dass ich hier weiterarbeite und wir irgendwann ein Hauptmenü erstellen Und das bringt uns zu unserer Hauptmenüebene , die wir eingerichtet haben. In Ordnung, also lass uns das einfach zusammenfassen. Ich klicke mit der linken Maustaste und ziehe auf die C-Taste. Und das wird unser Adjust Lives-Skript sein. Ich werde den Raum dazwischen loswerden und ihn schwarz färben. Ich mag die schwarzen Kommentarfelder , weil dadurch die Kabel herausspringen. Das wird also unser Live-Skript für die Anpassung genau dort sein. Nochmals, wir werden dafür sorgen , dass das später funktioniert. Okay, da diese Kundenveranstaltung jetzt stattfindet, heißt sie Adjust Lives. Ich gehe zu meinem Ad-Coin-Skript innerhalb desselben Blueprints, meines Player-Controllers Und hier ist unser Ad-Coin-Skript. Und was ich ganz am Ende gemacht habe , ist, einen Hinweis auf unser Leben einzubauen und das zu ergänzen , damit wir, wenn wir 100 Münzen haben, ein Extraleben bekommen. Nun, da unser benutzerdefiniertes Ereignis „ Leben anpassen“ eingerichtet ist, muss ich nur noch dieses Kundenevent aufrufen und einfach die Zahl eins eingeben , um unsere Anzahl an Leben anzupassen. Also kann ich diese beiden Knoten einfach da draußen in unserem Ad-Coin-Skript löschen . Ich werde sie mit Atomwaffen ausschalten. Ich werde jetzt hier aus meinem Münzensetzer herausholen und Leben anpassen eingeben Also nochmal, das wird dieses benutzerdefinierte Ereignis genau hier nennen dieses benutzerdefinierte Ereignis genau hier Ich kann einfach diese harte Zahl von Leben eingeben, um sie zu addieren oder zu subtrahieren Ich füge positive Leben hinzu und spiele dann diesen Sound Beachten Sie also, dass, wenn Sie die Zahl Eins genau hier eingeben, diese Zahl durch das benutzerdefinierte Ereignis fließt. Wenn ich genau hier auf diesen Knoten doppelklicke, wird das benutzerdefinierte Ereignis angezeigt, das dadurch aufgerufen wird. Diese Nummer eins wird also hier durchfließen, zu unserer Anzahl an Leben hinzugefügt werden, sie wird sie überfordern. Und es wird diesen ganzen Jazz genau hier machen. Ordnung, wenn das alles erledigt ist, stellen Sie sicher, dass Sie kompilieren und sagen Sie sehr wichtig , dass Sie hier kompilieren. Weil wir kompilieren müssen, um unseren Aufruf „Leben anpassen“ innerhalb unseres Charakterplans für Dritte zu finden unseren Aufruf „Leben anpassen innerhalb unseres Charakterplans für Dritte Dort werden wir als Nächstes hingehen. Finden Sie also Ihren Bauplan für einen Charakter in der dritten Person. Finde das Drehbuch für diesen Spieler. Gegen Ende haben wir diesen Delay und diesen Destroy-Akteur. Nun, wir werden unseren Destroy-Akteur trennen. Bewegen Sie das nach rechts, weil wir hier ein bisschen Drehbuch einfügen Wir klicken mit der rechten Maustaste in eine leere holen uns den Player-Controller Und dann werden wir das Ganze auf unseren Player-Controller übertragen, unseren maßgeschneiderten Player-Controller. Wir werden hier weitermachen. Und der Grund, warum wir das tun, ist, dass wir unseren Spieler-Controller-Blueprint hineingreifen und unser „ Leben anpassen“ -Event „Custom“ nennen können und unser „ Leben anpassen“ -Event „Custom“ nennen Weil das Teil des Player-Würfel-Skripts ist. Um zu addieren oder zu subtrahieren, nun ja, ich möchte ein Leben abziehen, also gib genau dort ein negatives ein Und dann können wir den Schauspieler wieder vernichten. Wenn ich auf diesen Aufruf „Leben anpassen“ doppelklicken würde, würde ich zu meinem BP-Player-Controller springen und mir zeigen, wohin die Zahl der negativen Eins durch dieses benutzerdefinierte Ereignis fließen wird. Mache diese Mathe und mach diesen ganzen Teil des Drehbuchs. Okay, noch eine Überlegung, die wir berücksichtigen müssen, und dazu müssen wir unseren Spielmodus Blueprints aufrufen Ich gehe zum Third-Person-Blueprints, zum Third-Person-Spielmodus Third-Person-Spielmodus Übrigens, es liegt an Ihnen, ob Sie diese beiden Blueprints in Ihren Plattform - oder Frameworks-Ordner ziehen möchten diese beiden Blueprints in Ihren Plattform - oder Frameworks-Ordner ziehen , das liegt ganz bei Ihnen Diese werden ebenfalls als Framework-Blueprints betrachtet. Ich habe mich dafür entschieden, im Spielmodus keinen eigenen Charakter für dieses Projekt zu erstellen , aber du hättest es tun Ich werde in meinen BP-Third-Person-Spielmodus eintauchen . Und im Moment antworten wir dem Spieler, egal was passiert, egal ob er drei Leben, zwei Leben, ein Leben oder gar keine Leben hat. Wir müssen sicherstellen, dass unserem Spieler nicht die Lebenspunkte ausgehen. Bevor wir ihnen antworten, wollen wir ihnen nicht antworten, wenn sie kein Leben mehr haben. Also, um diesen Teil des Antwortskripts anzupassen, werde ich genau hier machen , ich werde mit der rechten Maustaste in eine leere Stelle klicken. Besorgen Sie sich den Player-Controller, wie Sie vielleicht vermutet haben. Wir werden es hier schaffen. Wir werden auf unseren BP-Player-Controller casten. Jetzt kann ich das ändern, ich kann diesen Node konvertieren indem ich mit der rechten Maustaste darauf klicke und ihn in einen reinen Cast umwandle , um diese Execution In- und Out-Pins loszuwerden . Du willst das wirklich immer nur machen, wenn du weißt, dass deine Besetzung hier nicht scheitern wird. Und ich weiß, dass das in diesem Fall nicht der Fall sein wird, weil ich keine anderen Player-Controller verwenden werde , die auf reine Besetzung umgestellt werden, es wird diese Ausführungs-Pins auf diese Weise loswerden. Was ich dann tun kann, ist aus meinem SBP-Player-Controller herauszuholen und unser Leben variabel zu gestalten Ich kann es in die Länge ziehen und schauen, ob es keine Leben gibt. Wenn wir mehr als Null Leben haben, dann möchte ich reagieren Ich halte die B-Taste gedrückt und klicke mit der linken Maustaste, wenn sie aktiviert sind. Ich muss diesen ganzen Teil des Skripts hierher verschieben. Und ich werde das im Grunde ins Spiel bringen , wenn unser Charakter zerstört ist. Wenn unser Charakter zerstört ist, möchte ich hier weitermachen und die Frage stellen: Hey, haben wir mehr als null Leben? Und wenn wir mehr als null Leben haben, dann ist das großartig, mach weiter und spawnen Sie den Charakter erneut Sonst nicht. Das ist also alles in unserem Third-Person-Spielmodus. Mach weiter und kompiliere und speichere das. Bevor wir das Spiel hier spielen, möchte ich in unserem Hud-Entwurf darauf hinweisen Hud-Widget-Blueprint, der sich im UI-Ordner befindet , unserem Zu Beginn des Kurses unserer Registerkarte „Grafik“, nicht auf der Registerkarte „Designer“, sondern auf der Registerkarte „Grafik“, wir auf unserer Registerkarte „Grafik“, nicht auf der Registerkarte „Designer“, sondern auf der Registerkarte „Grafik“, dieses Skript hinzugefügt, um einen Verweis auf unseren Player-Controller zu erstellen Ich habe einfach mit der rechten Maustaste darauf geklickt und es zu einer Variablen heraufgestuft , um einen Verweis auf unseren Player-Controller zu erstellen einen Verweis auf unseren Player-Controller zu Dadurch konnten wir dieses Widget genau hier, dieses Text-Widget, an unsere Player-Controller-Live-Variable binden dieses Text-Widget, an unsere Player-Controller-Live-Variable Das wurde hier gemacht, Player-Controller, und wir haben es einfach unserer Live-Variablen zugeordnet Jetzt, da wir unsere Lebensvariable mithilfe eines Skripts aktualisieren , das wir in diesem Video hinzugefügt haben, sollten wir sehen, wie sich diese Zahl ändert. Aber ich wollte nur auf all das hinweisen , ein kleiner Rückblick, der zeigt, dass wir tatsächlich unsere Lebensvariable von unserem Player-Controller auf dieses spezielle Widget gemappt haben Lebensvariable von unserem Player-Controller auf dieses spezielle Widget In Ordnung, gehen wir zu unserem Level und lassen Sie uns einsteigen und spielen Ich fange dort gerade mit drei Leben an. Lass mich einfach auf unseren Gumba stoßen. Hier, da sind wir, bis auf zwei Leben. Hier versuchen wir, in die Flame Arm Bar zu rennen. Wiederum bis auf eins live gemacht. Und lassen Sie uns über Goomba noch einmal auf Null Leben heruntertauchen. Und jetzt hast du gesehen, wie es einfach wieder zurückgesetzt wurde und wenn ich entkomme, wird es das vorerst tun Trotz der Tatsache, dass wir in unserem Player-Controller haben, versuchen wir, zum Hauptmenü zurückzukehren. Wisst also, dass wir irgendwann mit der Zeit ein weiteres Level namens LV, Underscore Main Menu, erstellen ein weiteres Level namens LV, Underscore Main Menu, Und es wird uns zurück zum Hauptmenü bringen, sobald uns die Lügen ausgegangen sind Ordnung, Leute, aber das reicht für dieses Video. Wir haben jetzt die Anzahl unserer Leben in unserer Hud Jobblende korrekt erhöht Wir sehen uns im nächsten. 79. Sofortige Todesgefahr: In Ordnung, willkommen zurück an alle. Jetzt, wo wir eine Player-Death-Sequenz haben und unser Player-Live-System in unserem Hud funktioniert, all dieser Jazz, werden wir eine totale Todesgefahr schaffen Und das wird in einer Reihe von Anwendungsfällen nützlich sein. Sie können diesen Schauspieler, den wir gerade erschaffen werden, über einigen Stacheln platzieren , sagen wir, über einer Lavagrube oder sogar einer Leere Und der Zweck besteht darin, dass unser Spieler sofort stirbt und reagiert, wenn er ihn so berührt sofort stirbt und reagiert, wenn Ordnung, zurück in unserer Arbeitsversion des Projekts werde ich in meinen Platform-Blueprints-Ordner kommen Ich werde hier mit der rechten Maustaste in eine leere Stelle klicken. Blueprint-Klasse. Das wird ein Entwurf der Schauspielerklasse Es wird eines sein , das wir in unserer Welt platzieren Und ich werde weitermachen und diesem neuen Plan den Namen geben, den BP mit Tod unterstreicht Ordnung, und wenn das ausgewählt ist, könnten wir ignorieren, dass dieser Server Diese Quellcodeverwaltungsnachricht genau hier. Ich doppelklicke auf meinen Blutdruck in den Tod. Und wenn das geöffnet ist, werden wir eine einzelne Komponente hinzufügen , die unter dem Bedienfeld „Komponenten“ angezeigt wird. Wir werden eine Box-Kollision hinzufügen. Und ich nenne das einfach mein Depth Volume. Und wenn das ausgewählt ist, gebe ich dem einfach einen Standardwert. Also werde ich die Größe der Box auf 400 mal, sagen wir mal 400 mal 50, 50 einstellen mal, sagen wir mal 400 mal 50, 50 Und ich werde meine Linienstärke hier auf drei einstellen , ungefähr so Wir werden in der Lage sein, diese Größe zu ändern , sobald wir sie auf unser Level gebracht haben, aber das wird uns einen ziemlich guten Standardwert geben. Okay, wenn das an Ort und Stelle ist, werde ich hier mit der rechten Maustaste auf meine Death Volume-Komponente klicken . rechten Maustaste klicken. Wir fügen ein Ereignis hinzu, wenn wir beginnen, es zu überlappen. Dadurch werden wir aus unserem Viewport und zum Event-Graph weitergeleitet Wenn sich nun etwas mit diesem Todesband überschneidet, werden wir herausfinden , wer der andere Schauspieler Wir werden unseren Charakter aus dritten Person innerhalb unseres Charakters in der dritten Person casten Wir ziehen uns hier raus und tippen Spielersterbe ein. Wir werden das benutzerdefinierte Ereignisse nennen. Also ein wirklich einfaches Skript und ich ziehe einfach mit der Maus herum, tippe auf die C-Taste, das wird aufgerufen. Hier sterben benutzerdefinierte Ereignisse innerhalb unseres Charakters BP. Jedes Mal, wenn Sie ein Skript schreiben, sollten Sie sicherstellen, dass Sie es kompilieren, um sicherzustellen , dass es keine Fehler findet und es auch nicht tut. Ich werde weitermachen und das jetzt speichern. Lass uns weitermachen und eines davon in unserem Level platzieren und einfach zeigen, wie man damit im Allgemeinen umgeht. Also gehe ich hier zurück zu meinem Level-Editor. Hier ist mein Blutdruck im Tod. Ich habe hier nicht wirklich irgendwelche Gruben oder so, also werde ich das hier irgendwie vom Rand wegziehen Also los geht's. Ich ziehe das nur rein Ich habe meine beiden D-Snap-Einstellungen hier auf meine Hauptebene eingestellt Und ich werde meine Snap-Einstellungen genau hier einstellen, Schritten von sagen wir 50. Ich werde das einfach so weitermachen. Nochmals, wenn du The Pit of Doom spielst, möchtest du diese Art von Level wahrscheinlich nicht zusammen mit deinen wichtigsten spielbaren Levels platzieren von Level wahrscheinlich nicht zusammen mit deinen wichtigsten spielbaren Also werde ich das nur ein bisschen festlegen , damit du diese Standardgröße sehen kannst Beachten Sie jedoch, dass Sie, wenn dieser Akteur ausgewählt , im Detailbereich ist, im Detailbereich die Komponente Todesvolumen auswählen können. Wenn Sie das nicht sehen, liegt es vielleicht daran, dass Sie ein wenig zurückziehen müssen. Sie können Ihre Death-Volume-Komponente auswählen und ihre Größe hier Wenn Sie also diesen X-Wert etwas größer machen möchten, wissen Sie, dass wir ihn auf 1.000 setzen wollen. Sie können das so machen Okay, also werde ich einfach reinspringen und hier spielen und dann einfach vom Rand springen und schauen, ob das alles funktioniert. Los geht's. Alles klar, wenn hier vom Felsvorsprung springen und bumm, wir sterben wie beabsichtigt Also noch einmal, innerhalb unseres Blutdrucks in den Tod, schauen wir nur, ob es unser Charakter aus der dritten Person ist , der sich mit diesem Band überschneidet Und wenn ja, machen wir hier Drogen nennen diesen Spieler stirbt ein benutzerdefiniertes Event Und du kannst darauf doppelklicken. Und das wird tatsächlich unseren Charakter aus der dritten Person öffnen und dir zeigen, welches benutzerdefinierte Ereignis er aufrufen will Also noch einmal ein paar Anwendungsfälle für diese sofortige Todesgefahr Du kannst es in eine Grube wie diese legen. Du könntest das über etwas platzieren , das stachelig aussieht, einer Lavagrube Es gibt viele mögliche Anwendungsfälle dafür in deinem Level. In Ordnung, Leute, das reicht für diesen. Wir sehen uns im nächsten. 80. Fahnen-Pole-Blueprint: Willkommen zurück alle. In diesem Video werden wir an der Entwicklung und Implementierung eines Flaggenmastes am Ende des Levels im Mario-Stil arbeiten Implementierung eines Flaggenmastes am Ende des Levels im Mario-Stil Und das wird so funktionieren, dass unser Charakter, wenn er auf den Fahnenmast springt, es aufschreibt Sie werden loslegen, wir werden ein Feuerwerk sehen und es wird einfach eine tolle Zeit Das wird einer der komplizierteren Pläne sein , die wir im Laufe dieses Kurses zusammengestellt Ich gebe Ihnen nur einen kleinen Vorgeschmack darauf, wie das letztendlich aussehen wird Hier ist der fertige Entwurf. Visuell gesehen, was wir zusammenstellen werden. Also ziemlich viele Komponenten, viele Variablen und eine ordentliche Menge an Skripten, und eine ordentliche Menge an Skripten um hier zu starten. Eine Menge Drehbuch. Aber wir werden das hier in mehreren Videos erläutern. Und wir werden das schaffen, ich verspreche, es wird nicht allzu schlimm sein. Ordnung, zurück in unserer Arbeitsversion des Projekts, gehen Sie in den Ordner „ Plattform-Texturen “ und stellen Sie sicher, dass dieser Block in der Mario-Flaggentextur verwendet wird. Dies sind einige Ressourcen, die schon viel früher im Kurs importiert wurden . Falls Sie dies noch nicht getan haben, stellen Sie sicher, dass Sie diese importiert haben, da wir sie in unserem Flaggenmast-Blueprint verwenden werden Jetzt, wo wir diese Texturen haben, müssen wir sie in materielle Ressourcen umwandeln , die wir in unserem Flaggenmast-Blueprint verwenden können Jetzt habe ich das schon vor dem Video gemacht. Aber nur um zu zeigen, wie man diese Texturen in Materialien umwandelt , könnte man einfach mit der rechten Maustaste darauf klicken und dann Material daraus erstellen. Wenn Sie das tun, werden Sie sehen, wie diese Material-Assets in Ihrem Texturen-Ordner generiert wurden . Und dann habe ich sie nur noch verschoben. Ich würde buchstäblich mit der linken Maustaste klicken und sie so in meinen Materialordner ziehen, um sie dorthin zu verschieben. Ich möchte die Texturdatei eigentlich nicht hierher verschieben, aber so können Sie verschiedene Elemente zwischen Ordnern verschieben . Also nur um es dir zu zeigen, in meinem Materialordner habe ich hier mein Mario-Flaggenmaterial in meinem T-Block verwendetes Material. Nur um eines davon schnell zu öffnen, ist es nur ein Texturmuster, das in die Grundfarbe unseres Mastermaterials eingefügt wird . Hinweis hier. nun zusätzlich zu diesen beiden Materialien sicher, dass Sie die Audiodaten von Mario Flagpole, dem Typ da drüben sowie Mario Jump haben die Audiodaten von Mario Flagpole, Typ da drüben sowie Mario Jump Jetzt solltest du das schon wieder haben, all diese Audiodateien wurden viel früher im Kurs importiert Wenn Sie diese also noch nicht importiert haben, stellen Sie bitte sicher, dass Sie dies tun. Okay. Nun, bevor wir weitermachen und unseren Flaggenmast-Blueprint erstellen, werde ich hier in unseren Ordner für Dritte springen unseren Ordner für Dritte springen Gehen Sie in unsere Baupläne und finden Sie unseren Charakter aus der dritten Person Ich möchte sichergehen, dass wir diese Tiefe nicht vergessen. Ich doppelklicke auf unseren Charakter aus der dritten Person. Öffne es und ich möchte unserem Charakter aus der dritten Person eine weitere Komponente hinzufügen . Ich wähle unsere Kapselkomponente weil ich sie an unsere Kapselkomponente anhängen möchte. Lassen Sie mich hier zum Viewport gehen. Kapselkomponente Ich werde eine Pfeilkomponente hinzufügen. Pfeil. Und ich werde diesen Flaggenanschlusspunkt nennen. Dies wird verwendet, um zu bestimmen, wo wir unseren Charakter am Fahnenmast befestigen sollen unseren Charakter am Fahnenmast damit unser Charakter ihn hinunterfahren kann. diese Komponente also im Detailbereich ausgewählt ist, setze ich die X-Position auf 40 und die Z-Position auf minus 55. Und ich bin gerade durch viele Versuche und Irrtümer zu diesen Zahlen gekommen . Also 40 und minus 55 bedeuten, dass wir unsere Flagge an der Spitze haben werden. Okay, stellen Sie sicher, dass Sie das kompiliert und gespeichert haben. Dann können wir unseren Charakter aus der dritten Person beenden. Gehen wir jetzt zurück zu unserem Plattform-Blueprints-Ordner. Und hier werden wir mit rechten Maustaste in eine leere Stelle klicken Wir werden eine neue Blueprint-Klasse erstellen. Dies wird eine Blaupause für Schauspielerklassen sein. Und wir werden diesen Vermögenswert BP nennen. Unterstrich, Markierung für das Ende des Levels. In Ordnung. Wenn Sie das ausgewählt haben, können Sie darauf doppelklicken oder die Leertaste drücken, um es zu öffnen. Und was ich hier tun werde, ist, dass ich all meine Komponenten hinzufüge und dann zurückgehe und die Details für jede Komponente festlege. Lassen Sie mich also weitermachen und die erste hinzufügen. Das wird ein Triggervolumen sein. Nun, eigentlich wird es Trigger Volume heißen. Was ich eigentlich will, ist eine Box-Kollision, eine Box-Kollision. Box-Kollisionskomponente, und ich werde es Trigger-Volumen nennen. Sie werden dies verwenden, um zu bestimmen, wann die gesamte Flag-Sequenz ausgelöst werden soll. Jetzt füge ich hinzu, dass all diese Komponenten an meinen Standard-Szenenstamm angehängt werden. , dass Sie zwischen jeder weiteren Komponente Stellen Sie sicher, dass Sie zwischen jeder weiteren Komponente Ihren Standard-Szenenstamm ausgewählt haben , da all diese Komponenten in einer geraden Linie nach unten angeordnet sein müssen und nicht an etwas anderes angehängt sein müssen. Als Nächstes werde ich hier eine statische Netzkomponente hinzufügen . Diese wird einfach Flagge genannt werden. Und ich werde wieder meine Standard-Szenen-Root-Komponente auswählen . Dieser wird Flaggenmast genannt werden. Hoppla, ich versuche einen Fahnenmast hinzuzufügen. Ich muss eine statische Netzkomponente hinzufügen und sie dann Flaggenmast nennen Okay, wählen Sie den Standard-Szenenstamm. Fügen Sie noch einmal hinzu, dass dies eine statische vernetzte Komponente sein wird Diese wird Flag Base genannt werden. Jetzt, wo eines davon ausgewählt wieder nur verschiedene Möglichkeiten aufgezeigt werden, wie Sie Dinge tun können, wird Control D das duplizieren, also wird es automatisch an meinen Standard-Szenenstamm angehängt. Dieser wird ganz oben stehen. Als nächste Komponente wähle ich meinen Standard-Szenenstamm aus und klicke auf Hinzufügen. Diese Komponente wird eine Billboard-Komponente sein. Billboard, es wird dieses Dragon Head-Symbol haben. Ich werde das meinen Flaggenendpunkt nennen. Hier möchte ich, dass die Flagge landet , wenn sie den Fahnenmast runtergegangen ist In Ordnung, wählen Sie die Standardszene. Noch einmal fügen wir hinzu, das wird ein weiterer Box Collider sein, Box Collision, und ich werde das mein Feuerwerksareal nennen Das ist im Grunde der Bereich, von dem aus ich ein paar Feuerwerke sprengen werde. Wenn wir unsere Levelzeit innerhalb einer bestimmten Ziffer beenden, die mit einer Sieben endet, also 87 Sekunden, werden sieben Feuerwerke erscheinen, so etwas Wir werden hier drei weitere Komponenten hinzufügen . Standard-Szenenroute. Ich werde hinzufügen, dass es sich bei allen um Pfeilkomponenten handelt, also wähle ich die erste aus. Ich rufe den Spieler Endpoint an. Hier wird unser Spieler landen, wenn er das ausgewählt hat. Ich werde Control D übernehmen. Dieser wird Player Explode Point heißen Hoppla, ich kontrolliere versehentlich die beiden da. Das wird der Explosionspunkt meines Spielers sein denn nachdem sie vom Fahnenmast gesprungen sind, lassen wir sie in die Mitte des Feuerwerksbereichs springen des Feuerwerksbereichs Nur weil es Spaß macht , wähle das aus. Ich mache noch einmal Control D, um das zu duplizieren. Und dieser wird Startpunkt meiner Spieler heißen. Ich habe einen Startpunkt für Spieler, einen Endpunkt für Spieler und einen Explosionspunkt für Spieler Es ist nicht wirklich wichtig, wie diese angeordnet sind, es spielt überhaupt keine Rolle Wenn Ihre Bestellung also ein bisschen anders ist als meine, spielt das keine Rolle. Alles, was zählt, ist, dass sie alle in der Reihe sind, dass sie an die Standard-Szenenroute angehängt sind. Wenn Sie nun versehentlich so etwas eingestellt haben, lassen Sie mich einfach weitermachen und diesen kleinen Einzug hierher ziehen und dort ablegen diesen kleinen Einzug hierher Das ist derzeit daran angehängt. Um das rückgängig zu machen, können Sie es einfach per Drag & Drop wieder darauf ziehen. Dadurch wird die Verbindung zu dem aufgehoben, Dadurch wird die Verbindung zu dem aufgehoben woran es zuvor angehängt war Einrichtung der Details für jede dieser Komponenten in unserer Komponentenliste Ich fange hier mit der Flagge an. Ich werde nicht der Reihe nach vorgehen, aber ich werde zu gegebener Zeit auf all diese eingehen wobei unsere Flaggenkomponente im Detailbereich ausgewählt ist. Unser statisches Netz wird ein Flugzeug sein, und ich werde im Pfad für die Grundformen der Engine nach diesem suchen Detailbereich im Pfad für die Grundformen der Engine nach diesem suchen. Ich werde das Material sofort so einstellen , dass es unsere Mario-Flagge ist. Tippe einfach Mario ein, da ist unsere Mario-Flagge. Ziemlich süß. Jetzt muss ich die Position und Drehung anpassen und das ein wenig skalieren. Lassen Sie uns also zuerst mit dem Standort beginnen. Ich setze die X-Position auf 85, die Z-Position auf 845 Es springt weit oben. Lassen Sie mich in meinem Darstellungsfenster die Ansicht vergrößern und dabei die rechte Maustaste gedrückt halten, S und D, dann setze ich die Drehung, die X-Drehung, auf 90. Dann stelle ich hier den Maßstab ein. Es wird so in diese Richtung schauen. Die Skala soll etwa 1,5 sein. Ordnung, großartig. Als nächstes die Komponente für den Fahnenmast. Wenn diese Option ausgewählt ist, verschiebe ich ein statisches Netz aus einem Zylinder und wähle den Motor, die Grundformen des Zylinders. Der Typ da drüben. Das Material, ich werde nur eine einfache Unterstreichwand machen, das ist im Startinhalt, nochmal, es ist ein Fahnenmast, also kannst du entscheiden, wie das aussehen soll Die Position, ich werde sie auf 500 im Z einstellen. Die Skala werde ich auf 0,2 mal 0,2 mal acht setzen Jetzt habe ich das alles wieder bekommen, indem die Waageneinstellungen freigeschaltet Wenn Sie das gesperrt haben, was auch immer Sie auf eine dieser beiden Einstellungen setzen und die Mitteltaste drücken, werden sie alle so eingestellt, dass sie entsperrt Um diese einzeln einzustellen. Das kommt bisher ziemlich gut an. Als Nächstes erstellen wir die Flaggenbasis mit dem ausgewählten statischen Netz im Detailbereich. Ich wähle A, das wird meine Engine sein, Grundformen wie dieser Würfel. Für das Material werde ich uns in den Block einbauen. Ich finde, das sieht ziemlich gut aus. Auch hier gilt die Wahl des Händlers Sie können das machen, was Sie wollen. Ich werde die Z-Position auf 50 ändern, sodass es im Grunde so aussieht, als ob der Fahnenmast darin eingebettet ist. Das sieht ziemlich gut aus. Ordnung, dann machen wir die Flagge In Ordnung, dann machen wir die Flagge oben auf dem Fahnenmast. Wir wählen eine statische Nachricht. Das wird eine Form sein, die Sphäre unterstreicht, das wird im Startinhalt sein Wir werden das Material dafür als Unterstrich, Würfel, drei Materialinstanzen festlegen , das ist im Engine VR Editor, Basic Nochmals, du musst nicht genau das haben, was ich habe. Ich finde, das sieht ziemlich gut aus. Also werde ich den Standort dafür auf 8905895 setzen. oben auf der Skala werde ich auf der ganzen Linie 0,5 einstellen, also werde ich die Skala sperren, und dann werde ich 0,5 einstellen, drücken Sie die Eingabetaste, und das sieht oben ziemlich gut Okay. Als Nächstes mache ich den Flaggenendpunkt, diese Billboard-Komponente, okay? Ich setze das auf eine Position, 150 im Z, und dann setze ich die Position im X auf 85. Und dann werde ich die Drehung auch auf 90 im X einstellen . Drücke rein oder da rein. Es wird hier visuell keinen großen Unterschied machen, aber es wird wichtig sein, weil wir dies als unseren Flaggenendpunkt verwenden werden. Dies muss auf die gleiche Weise gedreht werden wie unsere Flagge. Das wird wichtig sein. Das sind 90 für unsere Flagge. Wir müssen sicherstellen, dass unsere Endpunktrotation dort dieselbe ist, nur um das noch einmal zu überprüfen. Okay. Als Nächstes haben wir unseren Feuerwerksbereich. Stellen Sie also sicher, dass Sie das auswählen. Und ich werde mein Darstellungsfenster ein bisschen von hinten vergrößern , weil ich es ein bisschen hier drüben haben werde es ein bisschen hier drüben haben Ich halte sowohl die linke als auch die rechte Maustaste gedrückt, um so zu schwenken Also werde ich diesen Punkt auf eine Position von 850 im x 700 im Z setzen . Die Ausdehnung der Box werde ich auf 500 mal 200 mal 300 festlegen. Ich werde diese Form im Wesentlichen verwenden, um einen Bereich zu definieren, in dem Feuerwerkskörper erscheinen können Ich werde hier auch die Linienstärke auf fünf einstellen, nur um das etwas stärker hervorzuheben Dann werde ich hier auch die Kollisionsvoreinstellung so einstellen , dass keine Kollision angezeigt wird. Ich möchte nicht, dass etwas Mögliches damit kollidiert. Weißt du, ich will nicht, dass, wenn unser Charakter hier drüben ist oder so , versucht Feuerbälle abzuschießen, dann könnte alles Mögliche damit kollidieren Also schalten wir das einfach für alles aus. Okay, als Nächstes wählen wir unseren Spieler Endpoint, den Typen da drüben. Und dafür werden wir einfach einen Standort festlegen. Also zoome ich hier nach oben zur Basis unserer Flagge. Endpunkt des Spielers, es wird minus 25 im X sein, es wird 30 im Y sein. Für das Z wird es 190 vor dem Flaggenpool sein, aber unten rechts unten Okay, der Explosionspunkt unseres Spielers. Wir wählen diese Pfeilkomponente aus. Als Nächstes wird sie irgendwo in dieser Region sein, also wähle ich meinen Standort X wird 850 sein und Z wird 500 sein. Das wird im Grunde irgendwo genau dort sein . Das habe ich beschlossen. Das ist in Ordnung, Startpunkt der Spieler ist ganz oben. Wir werden diese Pfeilkomponente auswählen. Die X-Position wird minus 25 sein, die Y-Position wird 30 sein und die Z-Position wird 845 sein Also egal, wo sie mit dieser Flagge interagieren werden, wir werden sicherstellen, dass sie genau dort ankommen . Dort werden sie anfangen. Sie werden hier unten landen, um damit sozusagen den Fahnenmast runterzufahren Das Einzige, was ich hier noch nicht eingestellt habe , ist unsere Auslöselautstärke Lass uns weitermachen und das auswählen. Jetzt drüben im Detailbereich unsere Triggerlautstärke ausgewählt ist, werde ich hier unter ein Kollisions-Preset fallen. Und ich werde das einfach auf Benutzerdefiniert einstellen. Und ich werde Kollisionen mit allem ignorieren, alles außer ich möchte, dass unsere Spielfigur das überlappen kann Wir müssen erkennen, wann sich unsere Spielfigur damit überschneidet. Und ich möchte, dass dieses Triggervolumen sehr hoch ist und sich bis hoch in den Himmel erstreckt Wenn unsere Spieler also gerne über den Fahnenmast springen, sie tatsächlich bis zu diesem Punkt herunterfahren Und dann schreib es auf. Okay, dafür werde ich die Z-Position auf 1.000 setzen , ich werde die X-Position auf 30 setzen. Das entspricht ungefähr unserem Fahnenmast hier, also okay Und dann werde ich die Größe der Box festlegen. Ich werde diese Ausdehnung auf 1.000 setzen . Sie wird sich so nach unten erstrecken, genau durch die Mitte unseres Fahnenmastes, Sie können sehen, dass sie weit hoch in den Himmel reicht Und ich werde das auch ein bisschen breiter machen , auch wenn unser Charakter niemals offline gehen sollte Nur um meiner eigenen Vernunft willen werde ich die Y-Ausdehnung auf etwa 200 setzen Das sollte ziemlich gut sein. Wenn ich nun aus dieser perspektivischen Ansicht springen und das Ganze, sagen wir, von rechts betrachten würde, würde ich weitermachen und darauf klicken. Sie können sehen, wenn ich im Wesentlichen nach hinten zoome, wo diese Auslöselautstärke im Verhältnis zu unserem Fahnenmast liegt Jetzt werde ich es wahrscheinlich ein bisschen weiter anschieben, nur um sicherzugehen ein bisschen weiter anschieben, nur , dass unser Charakter diesen Fahnenmast nicht trifft Auch hier könnte ich es hier im Detailbereich verschieben. Lassen Sie mich hier einfach meine Snap-Einstellungen ausschalten. Ich werde es so verschieben, dass es ungefähr dort steht. Ich werde den X-Standort festlegen . Versuchen wir es stattdessen mit zehn. Aber wer weiß, vielleicht spielen wir ganz am Ende damit Eigentlich wollen sie auch nicht, dass unser Charakter oben auf dem Fahnenmast kollidiert Also werde ich das auf etwa fünf setzen, nur um es ein bisschen mehr herauszuholen Ordnung, damit werde ich zu meiner perspektivischen Ansicht zurückkehren Das ist alles, was wir in diesem Fall erreichen wollten. Lassen Sie uns weitermachen und kompilieren und speichern, und dann machen wir weiter und ziehen das Ganze in unseren Viewport Und ja, zwischen den Kameraschnitten habe ich tatsächlich geschummelt und es hat Stellen in meinem Level gemacht, sodass du sehen kannst, wie es aussehen wird, wenn du es in deinem Level platzierst So ähnlich wird es aussehen. Der Spieler wird damit interagieren. Sie werden diesen Fahnenmast hinunterfahren und dann werden sie an diesem Explosionspunkt landen Das wird also alles per Scripting erledigt werden. Es gibt noch viel zu tun, aber wir haben einen guten Start hingelegt Wir sehen uns alle im nächsten Video. 81. Flag-Pole-Skript #1: Willkommen zurück. In diesem Video werden wir die Variablen hinzufügen und mit dem Skript für unsere Flaggenmast-Sequenz für die Endstufe beginnen Lassen Sie uns noch einmal in unser BP- und Level-Endkennzeichen eintauchen. Als Erstes werde ich im Bereich „Meine Blueprints“ die Variablen erstellen , die wir für dieses umfangreiche Skript verwenden Das wird kommen, wenn Sie auf diese Plus-Variablen-Schaltfläche klicken. Der erste, den ich erstellen werde, wird Startpunkt heißen. Es wird eine Vektorvariable sein und sie wird verwendet, um den Startpunkt unserer Flagge hier zu bestimmen. Idealerweise beginnen wir oben, wenn unser Spieler oben landet. Wenn unser Spieler jedoch ungefähr in der Mitte landet, wird unsere Flagge automatisch an diesem Punkt gestartet Es wird sich im Grunde bis zu diesem Punkt verziehen und dann weiter nach unten fahren Okay, wenn das ausgewählt ist, mache ich Steuerung D, um es zu duplizieren Und dieses wird Firework Locale heißen. Dies wird verwendet, um das Gebiet zu bestimmen , in dem wir unser Feuerwerk erzeugen werden. Spoiler-Alarm, es wird in diesem Bereich liegen. Als Nächstes werde ich eine erstellen, ich werde auf die Schaltfläche mit den Plus-Variablen klicken Dieser wird mein Charakter genannt werden. Der Typ hier wird mein BP sein, Charakter aus der dritten Person, die Objektreferenz. Lassen Sie mich das einfach erweitern, damit Sie das etwas klarer lesen können. nächste Variable, die wir erstellen werden, wird mein Controller heißen. Dieser wird unserem Player-Controller zugeordnet. Es wird Player-Controller sein. Unser BP, der Player-Controller , ist der, den wir geschaffen haben. Objektreferenz, das ist unsere Wahl. nächste, den wir erstellen werden, wird Firework Points heißen Es wird eine Ganzzahl sein. Und das wird zeigen , wie viele Punkte jedes Feuerwerk wert ist Wenn wir eine Feuerwerksshow bekommen, bei der das ausgewählt ist, mache ich Steuerung D, um es zu duplizieren Diese Nummer wird „ Firework Special Number“ heißen. Das soll nun funktionieren, wenn unser Timer mit einer bestimmten Zahl endet, sagen wir, er endet mit 87 Sekunden Wenn er mit der Zahl Sieben endet, zünden wir ein Feuerwerk ab Dies dient im Wesentlichen dazu, die letzte Ziffer der verbleibenden Zeit auf Ihrem Timer zu speichern die letzte Ziffer der verbleibenden Zeit auf Ihrem Timer Okay, wenn all diese erstellt sind, fahren Sie fort und kompilieren Sie, damit wir beginnen können, einige Standardwerte hinzuzufügen. Okay, unser Flag-Point-Start wird überall Nullen haben, das wird in Ordnung sein Firework Local wird überall Nullen haben , das wird in Ordnung sein Mein Charakter wird jetzt auf Null gesetzt. Das wird auch in Ordnung sein. Mein Controller wird auch auf Null gesetzt. Das wird in Ordnung sein. Wir werden diese Variablen in unser Skript einfügen, unsere Feuerwerkspunkte Wir werden das auf 500 setzen. Wissen Sie was? Wir werden das so einrichten, dass es von der Instanz bearbeitet werden Wenn wir das ändern möchten , während wir im Editor selbst sind, können wir das tun Dann die Sonderzahl unserer Feuerwerksshow, ich werde sie auf sieben setzen Ich werde auch dieses Kästchen ankreuzen, das für Instanzen editierbar ist. Wenn wir das ändern wollen, wenn wir uns im Editor befinden , können wir das auch tun Okay, wenn das alles an Ort und Stelle ist, springen wir zu unserem Event-Graph Wir werden auf diesem Event aufbauen . Begin Play. Lasst uns diese beiden anderen Knoten loswerden, die hier draußen sind. Linksklick und Ziehen. Aus dem Event löschen und mit der Wiedergabe beginnen. Ich mache einen Rechtsklick, wir holen uns den Player-Controller und dann casten wir den Controller für zwei Spieler, unseren BP-Player-Controller. Wir wollen das zu Beginn des Spiels machen. Und dann wollen wir das hier in unsere Player-Controller-Variable eintragen. Also können wir das einfach per Drag & direkt über diesen Pin ziehen. Und das bringt eine Reihe von Versionen mit sich. Also wird es diese Variable mit unserem BP-Player-Controller füllen diese Variable mit unserem BP-Player-Controller Es reicht nicht aus, diese Variable einfach zu erstellen und auf diesen Typ zu setzen Dies wird tatsächlich im Wertebereich angegeben , wenn wir es hier als den eigentlichen Player-Controller festlegen den eigentlichen Player-Controller , den wir im Spiel verwenden. Also klicke ich mit der linken Maustaste und ziehe darauf und tippe auf die C-Taste Dies wird wie in der Referenz Ref to Player Controller Ref sein . Ich mache weiter und setze das auf Schwarz. Als Nächstes werde ich im den Bereich „ Event-Dispatcher“ Mein Blueprint“ den Bereich „ Event-Dispatcher“ aufrufen. Ich werde darauf klicken Um einen Event-Dispatcher hinzuzufügen. Und ich werde dieses Level als abgeschlossen bezeichnen. Jetzt wird das genutzt , um eine Nachricht an andere Baupläne zu senden , die wissen müssen, dass unser Spielercharakter das Level abgeschlossen hat Ordnung, nachdem all das erledigt ist, beginnen wir mit der Erstellung unseres riesigen Skripts Als Erstes überprüfen wir eine Überlappung unseres Triggervolumens und noch einmal unseres Triggervolumens in unserem Viewport, das wird genau dieses riesige Volumen sein. Wir werden überprüfen, ob unser Player das überlappt Jetzt können wir dafür ein Überschneidungsereignis hinzufügen. es auswählen, können wir rechten Maustaste klicken und auf diese Weise ein Ereignis hinzufügen. Aber nur weil ich gerne verschiedene Dinge zur Schau stelle, wähle ich es aus und gehe bis zum Ende meines Detailfensters. Hier sind verschiedene Ereignisse im Zusammenhang mit dieser Komponente. Wir haben keine Überschneidung am Anfang der Komponenten. Ich werde auf diese Plus-Schaltfläche klicken. Es wird uns zu unserer Registerkarte „Ereignisdiagramm“ weiterleiten. Wir werden das nur ein bisschen reduzieren. Gib mir hier ein bisschen mehr Platz. Davon ausgehend werden wir herausfinden, wer der andere Schauspieler ist. Wir werden zwei Charaktere aus der dritten Person casten. Ordnung, wenn es ein Charakter aus der dritten Person ist ein Charakter aus der dritten Person , der sich hier überschneidet, werden wir hier unsere Variable „ Mein Charakter“ auffüllen Variable „ Mein Charakter Derzeit ist das Null, was bedeutet, dass es leer ist. Wir werden das anschließen, also lass es einfach auf diesen Pin fallen. Und das wird es so verdrahten, wenn es sich überschneidet Wir werden diese Variable mit unserem Charakter aus der dritten Person füllen diese Variable mit unserem Charakter aus der dritten Person Auch hier reicht es nicht aus, nur diesen Typ festzulegen. Dadurch wird die tatsächliche Instanz unseres Third-Person-Charakters festgelegt , den wir im Spiel kontrollieren. Okay, gleich danach werde ich einfach hier nach rechts gehen. Ich klicke mit der rechten Maustaste auf Player-Controller holen. Und was wir sofort nach der Interaktion mit der Triggerlautstärke tun wollen , ist , dass wir die Eingabe deaktivieren wollen. Auch hier wird es an den falschen Pin angeschlossen. Eigentlich wollen wir unseren Player-Controller an den Player-Controller-Eingang anschließen . Also werde ich die Strg-Linksklick gedrückt halten. Wir werden das unten einstecken. Sehr wichtig. Verpasse das nicht, was das Ziel angeht, wir werden unseren Charakter einbauen. Okay, als Nächstes werde ich einen Once-Knoten einbauen. Ich kann das tun, indem ich die Taste gedrückt halte und mit der linken Maustaste klicke. Und ich möchte sicherstellen , dass wir alles , was folgt, nur einmal tun, um Probleme zu vermeiden. Das Erste, was ich einmal tun werde, ist unser Level Complete Event Dispatcher anzurufen Wir können das so hineinziehen sodass wir hier ein Untermenü haben, das wir so nennen wollen Es hat also das kleine Umschlagsymbol. Also, es wird jedem, der auf dieses Ereignis zuhört , eine Nachricht senden , dass hey, unser Level abgeschlossen ist. Ordnung, mit diesem Drehbuch werde ich ein Kommentarfeld darum herum einrichten. Ich möchte jeden Abschnitt, den wir hier haben , gut kommentieren C-Taste, ich sage, das ist meine Auslöselautstärke bei der Erkennung von Spielern beim Lappen der Fahnenstange Ich deaktiviere auch die Eingabe und das Versenden von Nachrichten an andere BPs. Das Level ist abgeschlossen, okay? Und ich finde, es ist ziemlich wichtig, dass ich all diese Dinge hier gut kommentiere Wenn wir also irgendwann herauszoomen und sehen, was wir gemacht haben, können Sie die verschiedenen Abschnitte irgendwie identifizieren Das wird hier also Abschnitt Nummer eins sein. Sie können das Video bei Bedarf pausieren , um im Wesentlichen zu sehen, was wir hier gemacht haben. Wir beenden es mit dem Aufruf an unseren Level Complete Event Dispatcher, der uns das mitteilt Okay, das nächste Skript , das ich darüber hinaus hinzufügen möchte , besteht darin, die Position unserer Startposition unserer Flagge festzulegen die Position unserer Startposition unserer , wenn unser Spieler die Auslöselautstärke überschreitet nun zu unserem Standpunkt zu kommen Wenn unser Charakter diese Auslöselautstärke überschreitet, entweder ganz oben auf unserer Flagge oder darüber, wollen wir, dass unsere Flagge von dieser Position aus den Fahnenmast hinunterfährt dieser Position aus den Fahnenmast hinunterfährt Wenn unser Charakter jedoch diesen Fahnenmast überquert, sagen wir hier oder unten, wollen wir, dass diese Flagge an dieser Stelle herunterfährt, entweder in der Mitte oder unten, oder wo auch immer unser Spieler diese Auslöselautstärke überschreitet, werden wir die Flagge sofort dort bearbeiten und sie dann auf den Fahnenmast schreiben. Ordnung, um das zu tun, springen wir zum Ereignisdiagramm über Und wieder werden wir das Ganze auf dem Ende unseres Anrufs aufbauen , bis der Level abgeschlossen ist. Als Erstes müssen wir einen Bezug zu unserem Charakter herstellen. Also mit der linken Maustaste klicken und ziehen. Wir werden das holen, wir werden es hier rausziehen, wir werden den Befestigungspunkt für die Flagge finden. Jetzt, zwischen den Kameraschnitten, habe ich meinen Charakter aus der dritten Person geöffnet. Ich habe das getan, um euch daran zu erinnern, dass in unserem Bauplan für Charaktere aus der dritten Person eine Flagge angebracht ist. Wir haben das gerade im vorherigen Video hinzugefügt. Es ist eine Pfeilkomponente und sie befindet sich genau dort auf unserem Charakter. Das ist im Wesentlichen das, worauf ich mich hier in meinem BP, Level End Flag beziehe Wir schnappen uns diese Komponente in unserem Charakter. Jetzt will ich es, um herauszufinden , wo es sich auf der Welt befindet . Ermitteln Sie den Standort der Welt, okay. Also werden wir herausfinden, wo sich das weltweit befindet. Dann werden wir das herausfinden. Zerlegen Sie das in seine X-, Y- und Z-Komponenten. Ordnung, wir werden uns hier auch unsere Flagge schnappen wollen . Hoppla, ich doppelklicke einfach darauf, um zum Viewport zu gelangen Lass uns mit der linken Maustaste klicken und das hineinziehen. Dann wollen wir auch die Position der Welt ermitteln, Position der Welt ermitteln diesen Vektor auch dafür durchbrechen. Also werde ich einfach diese beiden Knoten duplizieren. Steuerung D, nur um hier eine kleine Abkürzung zu nehmen. Wir werden das so einstecken. Der Grund, warum wir sie hier in ihre X-, Y - und Z-Komponenten aufteilen, ist, dass wir hier die Z-Höhe unseres Flaggenverbindungspunkts vergleichen wollen . Wir werden das vergleichen, indem wir herausfinden, ob sie größer ist als die Position unserer Flagge. Steht unsere Flagge an unserem Charakter? Ist das größer als, in diesem Fall, höher als die Position unserer Flagge auf der Welt? Wir nehmen den Ausgang und stecken ihn in einen Zweig. Also werde ich die B-Taste gedrückt halten und mit der linken Maustaste klicken. Das wird der Zustand sein, den wir prüfen werden. Wieder einmal bauen wir auf der Call Level Complete auf. Wir verkabeln das so. Okay, wenn das wahr ist, möchte ich meinen Startpunkt für meine Flagge setzen. Kommen Sie hier unter Ihre Variablen. Ich werde die Alt-Taste gedrückt halten, mit der linken Maustaste klicken und ziehen, um eine Setter-Version unseres Flaggen-Startpunkts Wir werden hier die Startkoordinaten für unsere Flagge festlegen hier die Startkoordinaten für unsere Flagge Um das zu tun, ziehen wir es rückwärts und geben make vector Und wir werden unseren Vektor erstellen , indem wir im Wesentlichen die X -, Y- und Z-Position unserer Flagge beibehalten -, Y- und Z-Position unserer Flagge Wenn sich unser Spieler hier an der Flagge festsetzt, im Grunde genommen nach oben oder darüber geflogen Wir sagen hier im Grunde, ja, lassen Sie uns unsere Flagge an diesem Punkt starten , wo sie sich befindet Standardmäßig ist das im Wesentlichen das, was wir hier sagen. Wenn das als falsch ausgewertet wird, kopieren wir diesen Knoten genau hierher. Ich werde einfach Control D ausführen, um diese Variable zu kopieren. Wir werden hier reinkommen und ich werde mein Drehbuch hier aufräumen. Nur ein bisschen so , dafür werde ich auch einen Vektor machen. Also werde ich die Taste D drücken, um diesen Knoten zu kopieren. Dafür möchte ich die X- und Y-Werte unserer aktuellen Flaggenposition beibehalten . Die Z-Position, die ich haben möchte, stammt jedoch vom Flaggenverbindungspunkt unserer Charaktere. Was ich hier im Grunde noch einmal sagen will, ist, wenn unser Flaggenanhang höher ist als unsere Flagge , wenn wir die Auslöselautstärke überschreiten werden wir unseren Flaggenstartpunkt an der Stelle setzen , wo unsere Flagge beginnt. Wenn das falsch ist , setzen werden wir unseren Flaggenstartpunkt auf die Z-Höhe des Flaggenbefestigungspunkts unserer Charaktere Das ist es also, was dort passiert. Jetzt füllen wir nur diese Variable, diese Flaggen-Startpunktvariable Was wir tun müssen, ist sie tatsächlich zu verwenden. Was ich also tun werde, ist hier einen Hinweis auf unsere Flagge einzubringen . Ziehen Sie das per Drag & Drop, ziehen Sie es hierher. Und tippe den festen Standort der Welt ein. Stellen Sie den Standort der Welt genau dort ein. Und ich werde diesen Knoten mit dem ausgewählten Steuerelement duplizieren . D wird es duplizieren. Wir werden auch eine Kopie davon herbringen. Verdrahten Sie das. Wir können diese Flaggenreferenz in diesen beiden Knoten dort und da verwenden. Hier werden wir den Standort festlegen. Dadurch wird die Position unserer Flaggen sofort auf den Ort gesetzt , an dem sich diese Koordinaten befinden. Ordnung, damit mache ich weiter und klicke und ziehe diesen Teil des Skripts mit der linken Maustaste und ziehe, tippe auf diese Taste und ich zoome für die Kommentare ein wenig zurück. Das wird unser Gebietsschema für Zug zwei sein , in dem der Spieler die Triggerlautstärke überschritten Und wir werden es schwarz einfärben, um einen schönen Kontrast hinzuzufügen einen schönen Kontrast Okay, nachdem das alles erledigt ist, werde ich das noch einmal zusammenfassen. Damit ist unser Anruf-Level abgeschlossen. Lassen Sie uns das kompilieren, um sicherzustellen, dass unser Skript gut und gut aussieht. Und speichere es. Und Leute, wir werden das hier ein Video nennen. Sicherlich gibt es noch mehr zu tun, aber wir haben einen ziemlich guten Start hingelegt. Wir sehen uns im nächsten Video. 82. Flag-Pole-Skript #2: Ordnung, bevor wir mit unserem Flaggen-Skript weitermachen, wollte ich einfach reinspringen und spielen und dir zeigen, was wir bisher haben. Wir haben es so gemacht, dass wir, wenn unser Charakter irgendwann die Stange mit der Fahnenstange am Ende des Levels interagiert, diese Flagge so einstellen, dass sie hinunterfährt, wo sich unser Charakter mit der Auslöselautstärke überschneidet Hier gibt es noch mehr Arbeit innerhalb unseres Blutdrucks, Flagge am Ende des Levels und einfach bis zu einer Art Frame in dem wir auf diesem Skript aufbauen werden Als Nächstes werden wir zunächst auf diesem festgelegten weltweiten Standortknotenpunkt aufbauen . Klicken wir also mit der rechten Maustaste und schwenken wir nach unten in diese Region. Ich zoome auf mehrere Dinge heran, die ich tun möchte. Die erste besteht darin, sicherzustellen, dass mein Charakter gegen den Fahnenmast schaut Und wir werden einen kleinen Versatz hinzufügen, um sicherzustellen , dass sich unser Charakter vor dem Fahnenmast befindet, bevor er die Fahrt nach unten beginnt Deshalb werden wir auch die Animation unserer Charaktere auf eine bestimmte Pose einstellen , wenn sie den Fahnenmast hinunterfahren Wir beginnen damit, einen Verweis auf unseren Charakter einzufügen, indem wir mit der linken Maustaste klicken und ziehen Wir werden das herausfinden und dann ziehen wir es weg und holen uns unsere Kapselkomponente. Die Kapselkomponente ist die Hauptkomponente unseres Charakters, die andere Komponenten gebunden sind. Und wir werden die Komponenten dieser Kapsel wegziehen und sagen, die Weltrotation noch einmal einstellen . Ich sagte, wir werden von diesem festen Ort der Welt ausgehend von diesem kleinen Drehbuch hier aufbauen diesem festen Ort der Welt ausgehend . Warum ist das hier so? So. Jetzt wollen wir dem eine Rotation geben. Auf was wollen wir die Rotation unserer Charaktere einstellen? Wir werden zwar unsere Spieler-Endpunkt-Komponente bekommen, nur um hier zum Aussichtspunkt zu gehen Diese Komponente ist gleich hier unten. Es ist eine Pfeilkomponente. Der Typ da drüben. Wir werden hier unsere Player-Endpoint-Komponente schnappen. Wir ziehen es in die Länge und sagen: Holen Sie sich die Weltrotation. Das wird die Rotation sein, bei der wir garantieren werden , dass unser Charakter in diese Richtung schaut, quasi mit dem Blick zum Fahnenmast. In Ordnung. Als Nächstes möchte ich sicherstellen, dass unser Charakter vor dem Fahnenmast steht. Ein kleines bisschen Um das zu tun, ziehe ich von der Kapselkomponente meines Charakters ab und tippe lokalen Offsetdraht ein, also die Delta-Position, der Unterschied in der Position ist, dass ich das Y einfach auf 30 setze. Y 30. Ich bin zwar durch Versuch und Irrtum dazu gekommen. Als Nächstes möchte ich es so machen, dass unser Charakter nicht sofort herunterfällt, wenn er sich mit der Auslöselautstärke überschneidet , wie du es gerade ganz am Anfang dieses Videos gesehen Vielmehr frieren sie ein. Sie schweben in der Luft. Um das zu tun, werde ich meinen Charakter hier wegziehen. Bringe die Bewegungskomponente in meinen Charakter ein, aber die Bewegungskomponente des Charakters davon weg. Ich ziehe es in die Länge und sage „Schwerkraft-Skala einstellen“. Wir werden unsere Schwerkraft-Skala auf Null setzen und ich werde das so einbinden. Nur um dir zu zeigen, was zur Hölle ich hier mache, werde ich noch einmal zu meiner Figur in der dritten Person zurückkehren noch einmal zu meiner Figur in der dritten Person Wir verwenden hier unseren Charakter aus der dritten Person in diesem Projekt. Wenn ich mir die Bewegungskomponente meines Charakters schnappe, ist das die Komponente, mit der ich hier in meiner Flaggensequenz am Ende des Levels spreche . Die Bewegungskomponente meines Charakters. In dieser Komponente, der Komponente zur Charakterbewegung, einen Skalenwert , der derzeit auf 2,5 eingestellt ist. Hier in meiner Flagge am Ende des Levels sage ich im Grunde, hey, lasst uns die Schwerkraft-Skala für unseren Charakter auf Null setzen, sodass er quasi in der Luft schwebt und in der Luft einfriert, wenn er die Auslöselautstärke überschreitet Ordnung, also werde ich das einfach herunterfahren, In Ordnung, also werde ich das einfach herunterfahren, also vielleicht auch hier einen Re-Route-Knoten einbauen, nur um diesen Ablauf ein bisschen besser zu zeigen. Okay, das nächste, was ich tun möchte , ist, dass ich meine Charakterbewegung hier weiter in die Länge ziehe. Und ich werde deaktivieren eingeben. Und das wird funktionieren , was es sagt, es wird unseren Charakter daran hindern, sich zu bewegen. Übrigens, kurzer Tipp hier. Wenn du deine Kabel gerade machen willst, weil sie vielleicht ein bisschen aus dem Gleichgewicht geraten sind, kann ich diese beiden einfach markieren und auf die Taste tippen Das E ist leise, um diese Drähte zu glätten. Wenn ich weitermache, ein bisschen nach rechts gehe, werde ich noch einen Hinweis auf meinen Charakter hinzufügen, damit ich das nicht dauernd durchziehen muss und überlappende Drähte haben Und eigentlich wollte ich diese Routenkomponente nicht einbauen. Lass mich nur Z kontrollieren. Okay, das ist, was wir bis jetzt haben. Ich werde noch einen Hinweis auf meinen Charakter hinzufügen, Drag & Drop. Und ich habe einfach die Steuertaste gedrückt gehalten, während ich das per Drag-and-Drop verschiebe. Um das besser zu machen , ziehe ich das ab und tippe Mesh Ich hole das Mesh. Und wenn ich wieder zu meinem Charakter aus der dritten Person zurückkehre , sage ich, dass ich diese Komponente genau hier haben will, mein Mannequin-Mesh genau Ich möchte dieses Mesh weil ich es von hier wegziehen möchte und in der Animation möchte ich , dass mein Mesh eine bestimmte Animation abspielt Ich habe eine im Kopf , die ich gerne abspielen würde. Wenn ich hier eine neue Animation auswähle, die abgespielt werden soll. Ich gebe M, M, Unterstrich Lauf, Unterstrich nicht N M, Unterstrich, Vorwärts Und wie ihr dem Pfad entnehmen könnt, gibt es in der Spielfigur Mannequins Mannequins Wenn du darauf klickst, wird das Asset im Inhaltsbrowser durchsucht Tatsächlich mache ich das jetzt, indem ich auf diese Lupe klicke, hier ist sie, genau hier unten. Diese Animation. Jetzt spielt es diese Animation ab. Ich werde es einfach hier unten pausieren. Jetzt möchte ich, dass dies an einem bestimmten Punkt in der Animation im Wesentlichen zeitlich eingefroren wird. Ich möchte im Wesentlichen , dass es etwa bei der 1,9-Sekunden-Marke, irgendwo gegen Ende, einfriert der 1,9-Sekunden-Marke, . Der Grund dafür ist, dass die Hand unseres Charakters zu diesem Zeitpunkt in der Animation ungefähr zu diesem Zeitpunkt ausgestreckt ist . Ich wollte also so aussehen, als würde sich unser Charakter den Fahnenmast schnappen und ihn aufschreiben , damit unser Charakter diese Animation spielt An diesem Punkt kann ich hier tatsächlich zu meiner Flagge am Ende des Levels zurückkehren und so aus unserem Netz ziehen und hier meine Animationsposition festlegen eingeben meine Animationsposition festlegen Ich spiele die Animation ab. Und mit dieser Funktion lege ich die Position fest, die Position in der Zeit. Also werde ich das auf 1,9 setzen, so wie du mich gerade hier gesehen hast. Im Vorwärtslauf habe ich die 1,9-Sekunden-Marke erreicht. Ich möchte im Grunde, dass diese Pose abgespielt wird und ich werde das alles in Ordnung übertragen, also zoomen, ich bin wieder ein bisschen hier , ist dieser Teil des Drehbuchs Ich werde das anklicken und herumziehen. Ich nenne das Standardcharakter und spiele ein bisschen Drehbuch ab Formuliere das für alle hier ein bisschen besser. Und jetzt, bevor wir dieses Video nennen, werde ich mich dem Anfang dieses Drehbuches nähern. Wir entfernen den Fahnenmast zu dem Ort, an dem der Spieler die Lautstärke auslöst Ich werde von diesem festen Standort in der Welt ausgehen. Bitte beachten Sie ein wenig , denn wir wollen das Gebietsschema der Spieler festlegen , wenn sie über den Fahnenmast springen Um das zu tun, werde ich einen Verweis auf meinen Charakter einbringen einen Verweis auf meinen Noch einmal, mein Charakter zieht es mit rein. Ich hole mir den Charakter ich hier wegschleppen werde. Holen Sie sich noch einmal die Kapselkomponente. Wir holen uns die Kapselkomponente wir hier wegschleppen werden. Wir werden sagen, den Standort der Welt festlegen. Und ich werde das so verkabeln. Was ist der Ort, den ich dafür festlegen möchte? Nun, ich werde unseren Spielern den ersten Startpunkt geben. Was ich sagen werde, war der Startpunkt meines Spielers genau hier. Nur um dir zu zeigen, wo das aus unserer Sicht ist, der Startpunkt des Spielers wird genau dort sein Wenn sie also über den Fahnenmast springen, sagen wir, Spieler, du fängst genau dort an Wir werden uns das schnappen. Startpunkt der Spieler, zieh ihn rein. Wir ziehen das in die Länge und sagen Weltstandort. Wir werden den Standort dieser Welt ermitteln, an der Weltregion werden wir den Standort unserer Charaktere festlegen. Was wir dann tun müssen, ist einfach das Ende der Sache hier zu verdrahten und unsere Weltrotation festzulegen. machen nur ein kleines Backup, damit Sie sehen können, wo das alles innerhalb des größeren Schemas unseres Blueprint-Skripts positioniert ist des größeren Schemas unseres Blueprint-Skripts Hier, ich werde das ein bisschen vergrößern . Genau hier kann ich einen Kommentar dazu schreiben, auf diese Taste tippen und ich nenne das mein festgelegtes Spieler-Gebietsschema Wenn sie über den Fahnenmast springen, nur um aus der Ferne klar zu machen, was zur Hölle hier passiert In Ordnung, wenn all das an Ort und Stelle ist, sollten wir natürlich unser Skript kompilieren und speichern Und lasst uns zurück in unser Level springen , nur um uns das erste Mal hier zu spielen. Ich werde dafür sorgen , dass ich nicht über meinen Fahnenmast springe . Also los geht's. reinspringen und planen, einfach das Triggervolumen überlappen. Wie du siehst, stehen wir jetzt fest und müssen unseren Charakter wahrscheinlich ein wenig nach vorne bewegen, damit es so aussieht, als würde er sich den Fahnenmast schnappen zu tun, können wir den Standort unseres Charakters ein wenig anpassen Standort unseres Charakters ein Sie sind ein bisschen versetzt, aber aus Zeitgründen werde ich vorerst damit leben. Jetzt müssen wir das Szenario testen dem unser Charakter versucht, über den Fahnenmast zu springen über den Fahnenmast Um dabei zu helfen, werde ich hier eine meiner Launcher-Plattformen direkt vor mir einrichten hier eine meiner Launcher-Plattformen direkt vor Lassen Sie mich weitermachen und meinen Launcher auswählen. Ich werde den oberen Teil des Launchers hier ein wenig vergrößern. Ich werde nicht genau sein, ich muss es nur so weit abprallen lassen, dass wir in die Luft fliegen und am Ende an unserem Fahnenmast landen Also lass uns einfach versuchen, reinzuspringen und zu spielen. Sie können sehen, dass es unseren Charakter bis zur Spitze unseres Fahnenmastes verzerrt bis zur Spitze unseres Fahnenmastes Und genau das wollen wir dort geschehen lassen. Ordnung, es muss also offensichtlich noch mehr Arbeit getan werden , damit unser Charakter den Fahnenmast hinunterfährt, von ihm springt und in glorreicher Pracht explodiert. Aber jetzt friert unser Charakter an der richtigen Stelle entlang des Fahnenmastes ein, spielt die richtige Animation ab und sieht aus, als würde er ein bisschen aus dem Fahnenmast spielt die richtige Animation ab und sieht aus, herausgreifen herausgreifen Außerdem wird die Bewegung unseres Charakters deaktiviert . Leute, das reicht für dieses Video. Wir sehen uns im nächsten. 83. Flaggenpole-Skript #3: Willkommen zurück. Unser nächster Schritt besteht darin, es so zu gestalten, dass sowohl unsere Flagge als auch unser Charakter am Fahnenmast animiert werden wenn unser Charakter diese Auslöselautstärke überlappt Lassen Sie uns nun aus einer Entfernung von 10.000 Fuß direkt wieder in unseren Flaggenentwurf eintauchen nun aus einer Entfernung von 10.000 Fuß direkt wieder in unseren Flaggenentwurf eintauchen Das ist das gesamte Skript, das wir derzeit haben. In unserer Markierung „BP, Levelende“ stellen Sie fest, dass wir bestimmte Abschnitte unseres Skripts mit Kommentaren versehen haben , die uns helfen, herauszufinden, was zur Hölle wo passiert Ich dachte, ich würde das erwähnen, wenn wir schon hier sind, dass du, wenn du in das Fenstermenü kommst und die Lesezeichen aktivierst, auf einen deiner Kommentarknoten hier unten doppelklicken kannst einen deiner Kommentarknoten hier unten , um zu dem Abschnitt von Script F zum Spielercharakter zu springen von Script F zum Spielercharakter zu Doppelklicken Sie einfach darauf. Und es vergrößert diesen Abschnitt des Skripts, legt die Position des Charakters fest und spielt Anum ab Dieser Abschnitt des Skripts wird hervorgehoben, das ist also eine wirklich gute Möglichkeit Ihrem Bauplan zurechtzufinden Jetzt beginnen wir damit, auf dieser festgelegten Position aufzubauen, uns von diesen festgelegten Charakteren zu trennen und einen Abschnitt des Drehbuchs abzuspielen und einen Abschnitt des Drehbuchs abzuspielen Also werde ich hier unten nach oben zoomen. Und bevor wir unseren und unseren Charakter am Fahnenmast animieren , werden wir eine Verzögerung einbauen werden wir eine Verzögerung einbauen Also werde ich mit der rechten Maustaste klicken und einen Delay-Knoten einfügen. Wir werden das um 1 Sekunde verzögern Lassen Sie mich die Linie etwas weiter vergrößern. Wir bauen wieder einmal auf dieser Funktion zur Einstellung der Position auf. Wir werden es um 1 Sekunde verzögern. Und dann werden wir einen Sound abspielen. Spiel Sound Two D, das wird unser Fahnenmast sein Ton. Also werden wir eine Sekunde warten, bevor wir diesen Sound auslösen. Und danach werden wir ein paar Dinge tun. Da ich im Wesentlichen ein paar Dinge gleichzeitig erledigen möchte , werde ich einen Sequenzknoten einbauen. Und ich werde das tun, indem ich die Taste gedrückt halte und mit der linken Maustaste klicke Dadurch wird ein Sequenzknoten angezeigt. Und ich werde einfach ein Kommentarfeld um diese wirklich schnelle Linksklick-und-Drag-Taste legen. Ich nenne das meine Pause, bevor ich das Drehbuch abspiele und den Hauptteil des Drehbuchs heruntergehe . Nur eine kurze Pause, bevor wir diesen Sound spielen. Und dann mach hier ein paar Dinge. Ich werde auch schwarz färben. Nur um ein bisschen mehr Kontrast zwischen meinen Drähten zu erzeugen , lassen wir unseren Charakter am Fahnenmast animieren Um das zu tun, werde ich hier einen Verweis auf meinen Charakter einfügen. Also werde ich die Strg-Taste gedrückt halten und mit der linken Maustaste klicken. Das wird meinen Charakter bekommen. Dann verlasse ich meinen Charakter und tippe die Kapselkomponente ein. Ich nehme die Kapselkomponente , weil, noch einmal, die Kapselkomponente, wenn ich in meinen Blutdruck, den Charakter einer dritten Person, eingehe, das ist der Hauptbestandteil, von dem alle anderen Komponenten , die darin hinzugefügt werden, an unsere Kapselkomponente gebunden sind . Das ist hier im Wesentlichen unsere Hauptkomponente. Ich möchte das haben, und der Grund, warum ich unsere Kapselkomponente wieder hier in unserem Flag am Ende des Levels haben möchte unsere Kapselkomponente wieder hier in unserem Flag am Ende des Levels ist, dass ich sie wegziehen und Move-Komponente zwei eingeben kann . Wir werden diese Komponente verschieben. Und wenn wir diese Komponente bewegen, alle anderen Komponenten unseres Charakters werden auch alle anderen Komponenten unseres Charakters mitbewegt. Lass uns das direkt in Move einbauen. Ich werde einen Re-Route-Knoten einbauen, nur um das ein wenig aufzuräumen Wohin wollen wir das jetzt verschieben? Nun, wir wollen das auf unseren Spielerendpunkt verschieben. Ziehen wir das also rein und holen das, nur um zu zeigen, wo es sich in unserem Viewport-Player-Endpunkt befindet Ich habe es gerade hier angeklickt. Sie können sehen, dass es gleich da unten ist. Das ist im Grunde der Punkt, an dem wir unseren Charakter in unserem Event-Graph hier nach hinten verschieben wollen . Wir werden das hier zur Seite verschieben, zu unserem Spielerendpunkt. Lassen Sie uns hier rausziehen und den Standort der Welt ermitteln. Das wird der Ort sein , zu dem wir gehen wollen. Und dann ziehen wir es wieder in die Länge und geben get world rotation so ein. Jetzt können wir angeben, über welchen Zeitraum das alles passieren wird. Genau hier können Sie eine Zeit angeben. Ich werde dafür sorgen, dass das eine Sekunde dauert. Das wird unseren Charakter dazu bringen, den Fahnenmast runterzufahren. Lassen Sie mich einfach mit der linken Maustaste klicken und auf die Taste C ziehen, dann sage ich: Animiere den Charakter an der Stange entlang Färbe das auch schwarz. Sie können sich vorstellen, dass wir etwas Ähnliches für unsere Flagge tun werden. Ich werde das nur ein bisschen nach oben verschieben . Das wird das Erste sein, was wir hier mit unserem Sequenzknoten machen werden . Das nächste, was wir von unserem Sequenzknoten aus tun werden , ist, uns einen Verweis darauf zu schnappen, dass unsere Flagge offensichtlich genau dort Das ist unsere Flaggenkomponente. Wir ziehen das per Drag-and-Drop rein. Wir werden es von hier wegziehen. Wir werden auch eine zweite Komponente einbauen. Wir werden das auf diese Weise in den Eingangspin einstecken. Wo wollen wir das nun animieren? Nun, wir wollen das auf unseren Endpunkt verschieben . Wir haben eine Komponente, die für diesen Flaggenendpunkt spezifisch ist. Wenn Sie vergessen haben, wo sich das befindet, kehren Sie hier zu unserem Viewport-Tab zurück Dieser Drachenkopf genau hier. Das ist unser Flaggenendpunkt. Das wird also von hier bis da so weitergehen. Ziehen Sie aus unserem Flaggenendpunkt heraus und wir erhalten die relative Position. Dies ist die Position relativ zu unserem Ziel. Und dann ziehen wir das in die Länge und geben die relative Drehung ein. Also nochmal, wir werden hier 1 Sekunde angeben. Okay, das wird also unsere Flagge animieren. Klicken Sie mit der linken Maustaste und ziehen Sie diese Taste , und schon wird die Flagge animiert, die Stange herunterzufahren Hallo, dieser schwarze. Und dann lass uns weitermachen und kompilieren und speichern. Und lass uns reinspringen und spielen und uns ansehen, was wir haben. In Ordnung, spring hier hoch, Flagge animiert runter. Unser Charakter animiert nach unten. Jetzt wird unser Charakter irgendwann - und aussteigen und explodieren Aber das ist im Wesentlichen das, was wir bisher erreichen wollten Nun, eine Sache, von der ich hier nicht gerade begeistert bin , ist unser Charakter, wenn man es genau bemerkt und beobachtet. Im Moment sieht es so aus, als würden sie den Fahnenmast schnappen, aber als sie anfingen, sah es so aus, als wären sie etwas versetzt Also lass mich das jetzt einfach nochmal machen. Beobachten Sie die Hand unserer Charaktere. Ganz am Anfang stehen sie quasi vor dem Fahnenmast Und dann animieren sie quasi bis dahin. Unsere Flagge funktioniert gut, aber unser Charakter nicht ganz so gut Die Art und Weise, wie wir das beheben können besteht im Wesentlichen darin, zu unserem Standpunkt zurückzukehren und sicherzustellen, dass unser Trigger genau hier im Wesentlichen dem Endpunkt des Spielers entspricht Wenn ich hier also in eine Seitenansicht gehen würde, gehen wir zur linken Ansicht Gehen wir jetzt zur rechten Ansicht. Die rechte Ansicht ist die, die wir wollen, und ich muss genau dort unsere Triggerlautstärke auswählen . Es sieht so aus, als ob es genau dort in der Schlange steht. Aber anscheinend wird das visuell nicht gut sein. Also werde ich meine Auslöselautstärke einfach ein bisschen mehr erhöhen Allerdings möchte ich hier meine Snap-Einstellungen ausschalten. Ich werde genau in die Mitte gehen so wie ich dachte, ich wollte es haben. Jetzt konnte ich mir ein Problem mit der Einstellung der Auslöselautstärke genau hier vorstellen, nämlich dass mein Charakter gegen den eigentlichen Fahnenmast und möglicherweise sogar gegen die Fahnenmastspitze selbst stoßen könnte den eigentlichen Fahnenmast und möglicherweise sogar gegen die Fahnenmastspitze möglicherweise sogar Aber lass mich einfach weitermachen und das kompilieren und speichern und spielen. Mal sehen wie mein Charakter auf den Fahnenmast reagiert Du kannst im Moment sehen, dass sie die Auslöselautstärke nicht wirklich überlappen , weil unser Charakter gegen den Fahnenmast selbst stößt Wie können wir dem also Abhilfe schaffen? Nun, was wir tun können, ist die Kollision sowohl für unseren Fahnenmast als auch für unseren Fahnenmastdeckel hier auszuschalten unseren Fahnenmast als auch für unseren Fahnenmastdeckel hier Wir wollen sicherstellen , dass unser Charakter nicht auf diese stößt Stattdessen können sie sie durchdringen, sodass sie die Auslöselautstärke beide ausgewählt sind, gehe ich nur zu den Kollisions-Voreinstellungen und aktiviere „Keine Kollision, keine Kollision “ für unseren Fahnenmast sowie für ein Flaggendach Ich werde kompilieren. Speichere das nochmal. Springe zurück ins Spiel. Wenn ich jetzt springen würde, würde ich dort im Grunde darauf treffen . Das ist ziemlich gut. Sieht aus, als ob unser Charakter den Fahnenmast wie beabsichtigt herunteranimiert hat, ohne dass unser Charakter mit dem Fahnenmast selbst kollidiert Passen Sie die Auslöselautstärke also nach Ihren Wünschen an. Also, ich habe es irgendwie genau in der Mitte meines Fahnenmastes, genau dort Wenn Sie den tatsächlichen Standort sehen möchten, habe ich momentan den Standort N eingestellt. Wenn Sie das tun, stellen Sie sicher, dass Sie einfach Ihr Flaggenoberteil und Ihre Fahnenmasten ausschalten Ihr Flaggenoberteil und Ihre Fahnenmasten Kollision. Und das haben wir getan, indem unter eine Kollisions-Voreinstellung geraten sind. Keine Kollision. Okay, wir werden dieses Video beenden. Es liegt noch mehr Arbeit vor uns. Wir sehen uns alle im nächsten. 84. Flaggenpole-Skript #4: Ordnung, weiter mit unserer Flagge für das Ende des Levels, springen wir wieder rein, damit wir den Spieler, auf dem unsere Spieler gerade auf der Flagge reiten, explodieren lassen können unsere Spieler gerade auf der Flagge reiten Machen wir es so , dass sie gleich dort abspringen und explodieren Um zurück zu unserer Flagge am Ende des Levels zu springen, zeige ich Ihnen, wie Sie einfach mit der rechten Maustaste auf das Asset in Ihrem Level klicken können Maustaste auf das Asset in Ihrem Level klicken Hier können wir BP und Levelende-Flag bearbeiten. Ein Klick darauf reicht völlig aus. Steuern Sie auch die einfache Hotkey-Kombination, um wieder reinzukommen. Das ist derzeit unser Drehbuch aus einer Entfernung von 10.000 Fuß. Ich klicke mit der rechten Maustaste und zoome bis zu der Stelle, an der wir unseren Charakter animiert haben. Lassen Sie uns also noch einmal genau in diese Region eintauchen. Es ist genau hier nicht in unserer Reihenfolge. Das erste, was wir tun werden, ist, einen weiteren Verweis auf unseren Charakter direkt drüben in das Bedienfeld „ Mein Blueprint“ einzufügen einen weiteren Verweis auf unseren Charakter direkt drüben in das Bedienfeld „ Mein Blueprint“ Lassen Sie uns einen weiteren Verweis auf unseren Charakter einfügen, indem Sie die Strg-Taste gedrückt halten und mit der linken Maustaste klicken Wir werden meinen Charakter bekommen. Und dann ziehe ich das in die Länge und tippe get mesh ein. Ich möchte das Mannequin-Mesh aus dem Inneren unseres Charakters holen Mannequin-Mesh aus dem Inneren unseres Charakters Diese Mesh-Komponente. Ich ziehe das dann raus und tippe Play-Animation ein. Es gibt eine bestimmte Animation, die ich abspielen möchte, und es wird M, M, Underscore J. Ump sein . Und wir werden das am Ende der zweiten Komponente des Zuges einhängen , nachdem wir die Figur die Stange hinunter animiert haben Also zeigen wir nur, wo das ins Spiel kommen wird. Sie sich jetzt einfach diese Animation hier an, indem Sie auf dieses Lupensymbol klicken, es wird so aussehen Als ob unser Charakter in der Hocke liegt. Was wir also im Grunde tun werden, ist, dass unser Spieler am Ende sein wird Der Fahnenmast unten, wenn Sie so wollen. Und sie werden nur für einen kurzen Moment eine Pause einlegen . Und hier werde ich wieder zu meinem Drehbuch zurückkehren. Und ich werde sagen, dass wir hier 0,3 Sekunden verzögern werden. Also werde ich die Taste für die Verzögerung gedrückt halten und mit der linken Maustaste klicken. Das wird einen Verzögerungsknoten einschalten. Also ich lasse meinen Charakter diese Animation spielen, die hockt, während sie springen Und dann werden wir das um 0,3 Sekunden und 0,3 Sekunden verzögern , weil, nun ja, meine Spieltests haben ergeben, dass das ziemlich gut war Ich klicke mit der linken Maustaste und ziehe sie herum, tippe auf die Taste und das ist mein Player am unteren Rand des Flaggenmast-Skripts Ich sage in Klammern, spring. Sie werden nicht wirklich springen, wir werden sie bewegen, aber es wird so aussehen, als würden sie abspringen Ich werde das auch noch einmal schwarz färben . Okay. Als Nächstes lassen wir unseren Spieler tatsächlich vom Fahnenmast springen. Also drücken wir die rechte Maustaste und schwenken einfach weiter. Wir werden auf diesem Verzögerungsknoten aufbauen . Wir werden noch einmal einen Hinweis auf unseren Charakter einbringen . Ich werde die Strg-Taste gedrückt halten, linken Maustaste klicken und ziehen. Da ist mein Charakter. Ich werde das noch einmal durchziehen und ich werde die Mischung holen, Get ish. Wir werden auch eine weitere Animation abspielen , eine Drag-Play-Animation Und was das sein wird, lassen Sie uns das sofort einhängen, das Ausführungskabel, sodass diese Funktion, diese Funktion zum Abspielen von Animationen , ausgeführt wird. Jetzt wird die Animation, die ich hier abspielen möchte , Fall Loop heißen. Sie wird sich dort in derselben Reihe von Ordnern befinden. Sie können den Pfad hier sehen, Fall Loop, nur um Ihnen zu zeigen, wie das aussehen wird Es wird so aussehen, als ob unser Charakter ständig in dieser Schleife feststeckt. So etwas in der Art. Während sie vom Boden des Fahnenmastes bis zu unserem Explosionspunkt animieren , werden sie die Animation im Grunde genau dort abspielen Sie könnten dies auf Looping setzen, wenn Sie möchten. Ich meine, das wird alles relativ schnell gehen. Das ist genau die Wahl des Händlers. Und was ich dann tun werde, ist, dass ich meinen Charakter hier wieder herunterziehe. Und wir werden uns noch einmal die Kapselkomponenten besorgen. Die Kapselkomponente ist die Hauptwurzelkomponente unseres Charakters, zu der auch jede andere Komponente gehört. Wenn wir also die Kapselkomponente bewegen, werden wir alles andere bewegen. Der Grund, warum wir das tun , ist , dass wir das in die Länge ziehen und sagen werden, Komponente verschieben zu. Wir werden diese Komponente verschieben und sicherstellen, dass Sie sie so verkabeln, wie sie waren. Nun, wir wollen es an unseren Explosionspunkt bringen. Lassen Sie mich jetzt einfach zu unserem Aussichtspunkt hier springen. Wir haben diesen Explosionspunkt für Spieler. Und ich habe es meinem Komponenten-Panel vorgezogen. Das ist im Wesentlichen diese Pfeilkomponente genau hier in diesem Feld, genau dort, wo wir die Kapselkomponente unserer Spieler platzieren werden . Lassen Sie uns unseren Spieler explodieren lassen. Richten Sie das Bauteil genau dorthin. Wir werden das in die Länge ziehen, wir werden den Standort der Welt ermitteln. Und das wird der Zielort für unsere Kapselkomponente sein. Dann ziehen wir das auch und sagen noch einmal, holt euch die Weltrotation, ihr könnt entscheiden wie lange dieser Übergang stattfinden wird, von der Stelle, an dieser Übergang stattfinden wird, von der Stelle, der unser Charakter am Boden der Fliegenstange hockt , bis hin zur Wahl dieses Händlers Ich werde das auf eine halbe Sekunde einstellen, also 0,5 Sekunden. Lassen Sie uns eine Comic-Box um diesen Linksklick legen, ziehen, auf die Taste tippen, und ich sage, ein Spieler springt vom Fahnenmast. Wir werden das auch schwarz färben. Zoomen Sie einfach eins heraus. Derzeit haben wir hier zwei Skriptblöcke , die wir in diesem speziellen Video geschrieben haben. In Ordnung, lass uns jetzt die Spieler explodieren lassen, sollen wir? Also, um das zu tun, gehen wir nach rechts. Auch hier wollen wir den Charakter in die Kapselkomponente aufnehmen. Noch einmal werde ich eine Abkürzung nehmen. Hier. Ich werde diese beiden Knoten hervorheben, indem ich sie ansteuere und mit der linken Maustaste klicke. Ich mache Control D, um sie beide zu duplizieren und sie hierher zu bringen. Was ich tun möchte, ist, dass ich meine Kapselkomponente hierher ziehen möchte. Ich möchte den weltweiten Standort unserer Kapselkomponente ermitteln. Und der Grund, warum ich die weltweite Position meiner Kapselkomponente ermitteln möchte , ist , dass ich von dort wegziehen werde, um den Emitter an der Position zu spawnen Auch hier erzeugt das Spawnen eines Emitters die ältere Art von Partikeln Nun, der Grund, warum ich ein älteres Partikelformat erzeuge ist, dass, wenn ich hier draufklicke, unser Explosionspartikel sich gerade in unserem ursprünglichen Inhalt befindet, das ist das Legacy, das ältere Kaskaden-Partikelsystem in unserem ursprünglichen Inhalt befindet, das ist das Legacy, das ältere Kaskaden-Partikelsystem das ältere Wir haben es uns im Startinhalt zur Verfügung gestellt. Wenn dir über das Niagara-Partikelsystem eine Explosion im neueren Stil zur Verfügung steht, könntest du wählen, ob du ein System am Standort spawnen möchtest So kannst du ein Niagara-Partikel spawnen Wir müssen das als Ort angeben, an dem wir bei diesem Partikeleffekt spawnen werden Ich werde diese Explosion auch vergrößern , um sie ein bisschen größer zu machen Also werde ich es auf der ganzen Linie auf zwei festlegen. Ich werde diesen Ort auf der Welt auch als Ort verwenden diesen Ort auf der Welt auch als Ort , an dem ich einen Sound abspielen möchte Ja, du kannst einen Sound an einem bestimmten Ort abspielen. Also ziehe ich mich von hier weg und tippe Play Sound am Standort ein. Wenn wir also ein Bild für eine Explosion haben, wollen wir wahrscheinlich auch einen Soundeffekt für eine Explosion. Wir haben diese Explosion. Dabei wird nach dem Zufallsprinzip ausgewählt, welche der beiden gegebenen Schallwellen sehr ähnlich wiedergegeben wird, aber Sie könnten eine dieser Schallwellen selbst wählen Dadurch wird die rohe Schallwelle selbst abgespielt. Ein Sound-Cue bietet ein bisschen mehr Flexibilität und kann solche Randomisierungsmöglichkeiten bieten. Ich werde mich also für einen Sound-Cue entscheiden. Eine weitere Sache, die ich hier tun werde, ist, dass ich den Spieler nicht wirklich zerstöre, ich werde ihn nur verstecken. Also werde ich meine Kapselkomponente noch einmal herausziehen . Und ich werde die eingestellte Sichtbarkeit eingeben. Ich will den Spieler nicht zerstören und ein Leben verlieren oder so. Ich stelle die Sichtbarkeit ein und stelle sicher, dass du diese Ausführungsleitung einschaltest. Und wir werden diese neue Sichtbarkeit hier ungeprüft lassen diese neue Sichtbarkeit hier ungeprüft Das heißt, wir werden unseren Charakter nicht dadurch erkennen, dass wir unseren Spieler explodieren lassen Wir werden unseren Spieler nicht wirklich los, wir zerstören unseren Spieler nicht Es ist alles ein bisschen Taschenspielertrick einfach zu verstecken, sie unsichtbar zu machen. In Ordnung, tippe auf die C-Taste. Ich nenne das mein Explode the Players-Skript. Wir werden das auch schwarz färben. In Ordnung, lass uns weitermachen und das kompilieren und speichern. Lass uns reinspringen und spielen und sehen, wie das aussieht. In Ordnung, ich überspringe das. Einfach ins Fliegenbecken springen, es aufschreiben, Pause machen, aussteigen und unser Charakter ist dort nicht explodiert Also das ist offensichtlich ein Problem. Lass uns nachsehen, was falsch ist. Nun, und da hätten wir es. Bei mir wirkt unsere Kapselkomponente, aber ich muss das auch an die Kinder Das sind all die anderen Komponenten , die daran befestigt werden Wenn ich also dieses Kästchen ankreuze, springen wir wieder rein und spielen und einsteigen. Wir schreiben es auf, bumm, weg ist unser Charakter in glorreicher Pracht Wie befriedigend in der Tat. Also ja, bitte denken Sie daran dieses Kästchen auch für die Weitergabe an Kinder anzukreuzen Ordnung, also in diesem Video haben wir diese drei Abschnitte des Skripts zu unserem Flaggenmast am Ende des Levels hinzugefügt diese drei Abschnitte des Skripts zu unserem Flaggenmast am Ende des Levels Und das haben wir auf Basis unseres animierten Charakters am Fahnenmast aufgebaut animierten Charakters am Fahnenmast Also nur, um bei jedem Teil des Skripts ein wenig nach oben zu zoomen , falls Sie das Video hier pausieren möchten Das war unser Spieler am Boden des Fahnenmastes, der sich auf den Sprung vorbereitete, der Spieler, der vom Fahnenmast sprang Und zu guter Letzt haben wir unseren Spieler explodieren lassen Ordnung, es liegt noch ein bisschen mehr vor uns, aber damit ist dieses Video abgeschlossen Wir sehen uns im nächsten. 85. Flag Pole-Script #5: Ordnung, lassen Sie uns unsere Flagge für das Ende des Levels beenden , indem wir mit der rechten Maustaste darauf klicken. Ich werde es bearbeiten. Control plus E bringt es gleich wieder rein. Noch einmal, so sieht unser Skript aus einer 10.000 Fuß großen vergrößerten Ansicht aus Wir werden hier unten rechts weitermachen , also werde ich mit der rechten Maustaste klicken Zoomen Sie nach oben. Wir werden auf diesem festgelegten Sichtbarkeitsknoten aufbauen. Jetzt wird es unser Ziel sein , nur dann ein Feuerwerk zu spielen , wenn unsere Levelendzeit mit einer bestimmten Ziffer endet Jetzt kam mir diese Idee, als ich die allerersten Super Mario Brothers auf dem Nintendo gespielt die allerersten Super Mario Brothers auf dem Nintendo Und ich glaube, wenn ich mich richtig erinnere, wenn du mit einer Levelzeit mit einer Ziffer von sechs fertig wärst, also 86 Sekunden, würdest du ein Feuerwerk bekommen, das aus sechs Feuerwerken besteht Das ist also im Grunde das , was wir hier anstreben. Nur ein bisschen mehr Jazz. Jetzt will ich herausfinden ob unsere Feuerwerks-Sondershow-Nummer, in meinem Fall, ich eine Integer-Variable auf den Wert 7 gesetzt habe, wir ziehen das raus, also wenn unsere Zeit im Grunde mit der Stufe 7 endet, holen wir uns diese Variable, wir wollen ein Feuerwerk abspielen Ich möchte hier also im Wesentlichen auf unsere Zahl sieben verweisen Jetzt möchte ich herausfinden, ob unsere Levelzeit mit der Zahl Sieben enden wird . Also, wie mache ich das? Also, ich muss einen Hinweis auf meinen Controller einbringen, meinen BP-Player-Controller. Also werde ich die Strg-Taste gedrückt halten, mit der linken Maustaste klicken und ziehen. Dann ziehe ich hier aus meinem Controller heraus und tippe die Levelzeit ein. Wir werden unsere Levelzeit bekommen. Nun, das ist eine Integer-Variable, die sich in unserem BP-Player-Controller befindet. Lassen Sie mich einfach schnell zu diesem Entwurf übergehen. Darin befindet sich meine Ganzzahlvariable Level Time , die derzeit auf 500 eingestellt Lass uns zurück zu unserer Flagge für das Ende des Levels springen. Okay, und was wir tun wollen, ist die Ziffer, die am weitesten rechts steht, herauszufinden . Um dies zu tun, klicken wir mit der rechten Maustaste auf ein leeres Feld und geben es direkt unter der Zeichenfolge ein. Klicken Sie nach rechts, um hier einen Funktionsknoten einzufügen. Und was wir tun werden, ist, unsere Ganzzahl hier in diese Zeichenketteneingabe einzufügen. Dadurch wird unsere Levelzeit von einer Ganzzahl in eine Zeichenfolge umgewandelt. Durch die Umwandlung in eine Zeichenfolge haben wir Zugriff auf weitere Funktionen wie diese Funktion hier , um einige sehr spezifische Informationen darüber zu extrahieren. In diesem Fall wollen wir nur herausfinden, was die letzte Ziffer unserer Levelzeit ist. Um das zu tun, wenn ich mit der Maus darüber fahre, wird angezeigt, dass die Zeichenfolge rechts neben der angegebenen Position zurückgegeben wird . Von rechts rückwärts zählen. Wenn ich meine Zählung hier auf eins setze, erhalte ich quasi die letzte Ziffer, wenn ich von rechts von unserer Zeit zähle Wenn wir mit einer Levelzeit von sagen wir 87 enden , wird hier die Zahl Sieben ausgespuckt Und wir werden das mit unserer Feuerwerks-Sondershow vergleichen unserer Feuerwerks-Sondershow Um diese beiden zu vergleichen, klicke ich mit der rechten Maustaste in eine leere Stelle und füge einen Gleichheitsoperator ein Unsere Feuerwerk-Sondershow wird, nun ja, wir stecken sie in die Decke Unser Rückgabewert hier von unserer Funktion wird in den unteren Teil eingefügt Es wird das sofort in eine Zeichenketteneingabe umwandeln. Und dann fügen wir eine Verzweigungsnotiz ein, um die B-Taste gedrückt zu halten und abzuzweigen und mit der linken Maustaste zu klicken. Das wird unsere Bedingung sein, dass wir hier überprüfen , ob sie im Wesentlichen gleich sind. Noch einmal, wir werden mit unserem Explode the Player weitermachen mit unserem Explode the Player weitermachen Um den Ausführungsfluss am Laufen zu halten, müssen Sie hier Ihren eingestellten Sichtbarkeitsausgangspin nehmen und ihn in den Zweig stecken Und damit werde ich mit linken Maustaste auf diese Knoten klicken. Ziehen Sie heraus und tippen Sie auf die C-Taste , um die Comic-Box einzublenden. Und das wird mein Scheck sein , ob letzte Ziffer der verbleibenden Zeit der Nummer der Feuerwerksshow entspricht, okay Und ich färbe das schwarz , damit du leichter erkennen kannst, ob du das Video hier pausieren möchtest Wir überprüfen also nur, ob die letzte Ziffer der verbleibenden Zeit der gewünschten Sonderzahl für das Feuerwerk entspricht gewünschten Sonderzahl für das Feuerwerk Wenn das stimmt, werden wir damit weitermachen Der wahre Zweig, ich werde einen Delay-Node einbauen. Halten Sie die Taste D gedrückt und klicken Sie mit der linken Maustaste , wir werden es nur um eine halbe Sekunde, 0,5 Sekunden, verzögern. Dann werden wir eine bestimmte Anzahl von Malen tun . Wir klicken mit der rechten Maustaste und fügen einen Knoten hinzu. Wir wollen etwas mehrmals tun. unabhängig davon, welcher Wert damit verbunden ist wollen wir tun , unabhängig davon, welcher Wert damit verbunden ist? N mehrmals? Nun, wie oft wollen wir das machen? Nun, wir werden es machen, unsere Feuerwerk-Sondershow-Nummer in unserem Fall sieben Mal Was wollen wir, dass siebenmal passiert? Nun, wir werden jetzt ein paar Feuerwerke spawnen. Ich gehe hierher, wir klicken mit der rechten Maustaste und wir werden den Emitter am Standort spawnen Ich werde das noch nicht einhängen, aber ich werde meine Emitter-Vorlage hier einbinden oder angeben Und das wird unterstreichen: Spark Burst. Dieser Typ hier, er ist im Infinity Blade Effects Pack Unterstreichen Sie Spark Burst. Nun, wo soll der Ort dieses Feuerwerks abgespielt werden Nun, wenn ich hier in mein Viewport gehe, richte ich diesen ganzen Box-Bereich genau Ich habe es sogar Feuerwerksbereich genannt. Ich wollte einfach zufällig irgendwo in diesem Gebiet spawnen. Mit dieser Komponente, die in meinem Event-Graph ausgewählt ist. Ich werde meinen Bereich für Feuerwerke reinbringen. Ich werde es genau da hinschleppen. Lassen Sie uns hier ein bisschen heranzoomen. Das ist mein Feuerwerksbereich. ziehe ich in die Länge und sage : Ermitteln Sie den Standort der Welt Ermitteln Sie den Standort der Welt wie. Also werde ich hier auch den Text in der Ausdehnung rausziehen, die Größe der Box ermitteln, mir im Grunde diesen Bereich besorgen, wo unser Feuerwerk-Ausstellungsbereich befindet Dann klicke ich mit der rechten Maustaste in ein leeres Feld und tippe zufälligen Punkt im Begrenzungsrahmen Also werde ich das Zentrum unseres Feuerwerksbereichs genau hier finden Und dann, was die Größe der Box angeht, das wird an unsere halbe Größe angeschlossen, und das wird im Grunde genommen ein Punkt innerhalb unseres Feuerwerksbereichs heraussuchen ein Punkt innerhalb unseres Feuerwerksbereichs Das wird der Ort sein, an dem ich unser Feuerwerk starten möchte. Also, ich werde das nicht einfach direkt hier einstecken. Was ich stattdessen tun möchte, ist, dass dies als unser Feuerwerks-Gebietsschema festgelegt Weil ich das n-mal machen möchte, sodass jedes Mal, wenn unser Feuerwerk lokal ist, wenn es mehrmals abgefeuert wird, in unserem Fall sieben Mal, es ein anderes Gebietsschema wählt Jedes Mal, wenn ich unser Firework-Locale hierher nehme , setze ich es direkt über den Rückgabewert, um einen Setter einzufügen Und jetzt wird mein Setup so aussehen, dass wir jedes Mal, wenn wir von hier aus feuern, ein neues zufälliges Fireworks-Gebietsschema festlegen Und das wird das Gebietsschema sein, in dem wir einen Funkenausbruch erzeugen, also quasi ein Feuerwerk Nun, noch einmal, wenn Sie das Niagara-Partikelsystem verwenden möchten , wäre dies der Standort des Spawn-Systems wäre dies Dieses spezielle Partikel ist ein bisschen klein, also werde ich es vergrößern, indem meine Skala hier auf zehn erhöhe. Jetzt ist es ziemlich schwach, einen Partikeleffekt ohne Ton zu erzeugen Lassen Sie uns also weitermachen und danach auch etwas Sound abspielen. Also, wenn wir uns von hier wegziehen, werden wir den Ton vor Ort abspielen Was wollen wir hier für einen Sound? Nun, ich dachte tatsächlich, der Mario Swamp-Sound klingt ziemlich gut für diese Explosion Klingt nicht richtig. Ich fand das eigentlich ziemlich gut Der Ort des Sounds. Nun, ich kann wieder mein Fireworks-Gebietsschema verwenden. Wo auch immer unser Feuerwerksort festgelegt ist, wir verwenden das als Ort, an dem unser Sound abgespielt Was ich dann auch tun werde , ist, dass ich auch ein paar Punkte reinspawnen will paar Punkte reinspawnen Lassen Sie uns das hier in die Länge ziehen und ich gebe Saw Act aus dem Unterricht ein, weil es cool wäre , ein paar Bonuspunkte für das Sammeln von Feuerwerkskörpern zu haben paar Bonuspunkte für das Sammeln von Feuerwerkskörpern wenn Sie so wollen, für unsere Klasse hier Ich werde unsere BP-Unterstreichungspunkte eingeben, die wir zu Beginn des Kurses erstellt haben Und natürlich müssen wir angeben, wo das erscheinen wird Ich kann einfach von der Spawn-Transformation rückwärts ziehen und make transform wie folgt für das Fireworks-Gebietsschema eingeben transform wie folgt für das Fireworks-Gebietsschema Ich könnte das einfach als Ort angeben , an dem dieses Punkte-Widget erzeugt werden soll, was ziemlich cool sein wird Nun, wie viele Punkte wollen wir für jedes Feuerwerk hinzufügen? Nun, ich meine, wir können hier wählen. Wir haben unsere Feuerwerkspunkte variabel. Ich habe das momentan auf 500 gesetzt, also lass uns weitermachen und das einfach einstecken, deshalb haben wir diesen Typen geschaffen Dann werden wir auch meinen Controller einbauen , was sich darauf bezieht, sich darauf bezieht dass unser Player-Controller ihn hineinzieht Wir holen uns das, dann ziehen wir es raus und geben Punkte hinzufügen Wir werden Punkte hinzufügen, und ich werde gleich dazu springen. Wie viele Punkte möchten wir hinzufügen? Nun, wir können die Anzahl unserer Feuerwerkspunkte hinzufügen. Im Grunde genommen werden wir jedes Mal, wenn ein Feuerwerk zündet, Punkte anzeigen. Darüber hinaus nennen wir das Add Points innerhalb unseres BP-Player-Controllers. Was macht das nochmal? Nun, wenn ich einfach darauf doppelklicke, werde ich zu meinem BP-Player-Controller weitergeleitet. Und es zeigt, dass wir dieses Event als Custom Event bezeichnen werden. Und wir werden die Anzahl der Punkte , die wir eingegeben haben, genau hier durchgehen Anzahl der Punkte , die wir eingegeben haben, , in diesem Fall 500 Das wird es durchgehen. 500 plus unsere aktuelle Gesamtpunktzahl. Und das wird unsere neue Gesamtpunktzahl ergeben. Auch hier ist unser Punktewert mit unserer Punkteanzeige in unserer Ud verknüpft, also sollte das in Dandy in Ordnung sein Ordnung, lassen Sie uns die Ansicht vergrößern und noch einmal zeigen, was wir hier haben. Ich klicke mit der linken Maustaste und ziehe mit der Maus um diese Taste, dann nenne ich das mein Spiel. Fire Works, wodurch Spieler zusätzliche Punkte erhalten, wenn sie die Zeit abgeschlossen haben Wenn Sie hier wirklich versiert sind, haben Sie vielleicht bemerkt, dass ich noch etwas tun muss . Lassen Sie mich meine Farbe hier auf Schwarz ändern Derzeit lassen wir das mehrmals passieren, um ein neues Feuerwerk zu erzeugen Derzeit würden wir allerdings nur einmal durchfahren, aber wir haben nicht die Möglichkeit, aber wir haben nicht die Möglichkeit das Ganze im Grunde sieben Mal abzufeuern, wie wir es gerne hätten Was wir hier tun müssen, ist, ein benutzerdefiniertes Ereignis zu erstellen. Genau hier oben. Benutzerdefiniertes Event, und ich nenne es einfach eher Feuerwerk Und ich werde das in unsere Verzögerung einbauen. Und der Grund, warum wir das tun werden, ist, dass wenn sich das noch einmal als wahr herausstellt, wir sagen werden, hey, lassen Sie uns das für eine halbe Sekunde hinauszögern Dann werden wir in einem Feuerwerk spawnen. Jetzt heißt es „Fälliges Ende der Zeit“. Das erste Mal, wenn wir es durchgehen, wird es all diesen Code machen, aber dann, ganz am Ende, brauchen wir Feuerwerk, unsere benutzerdefinierten Ereignisse, die wir gerade erstellt Also, was das im Grunde machen wird, ich habe es einfach doppelt angeklickt Es wird uns zu diesem benutzerdefinierten Ereignis zurückleiten, sodass wir es um eine halbe Sekunde verzögern können Sie erneut durch unsere D N, in diesem Fall ein zweites Mal, sodass wir in einem neuen Feuerwerk spawnen Und das wird sich wiederholen, bis wir unser Limit erreicht haben, in diesem Fall von sieben In diesem Fall wird es diesen Punkt nicht mehr überschreiten Ordnung, lassen Sie uns weitermachen und unser Skript hier kompilieren, speichern und sicherstellen, dass alles gut aussieht. Das haben wir uns darin ausgedacht. Ein bisschen, schwer zu erkennen, also muss ich es hier vielleicht in zwei Aufnahmen zusammenfassen. Okay, da und gleich hier drüben. Und jetzt lass uns ins Spiel kommen und uns einen Test geben. Ordnung, los geht's. Versuch, dafür hoch zu greifen. Oh, und natürlich habe ich meine Levelzeit nicht festgelegt, ich habe das System hier nicht gespielt. Derzeit ist meine Zeit auf 500 eingestellt. Noch einmal, wir werden unsere Zeit in den kommenden Videos sehr bald erhöhen , aber ich werde unsere Zeit fest programmieren müssen nur um sicherzugehen, dass das wie beabsichtigt funktioniert Also werde ich meinen BP-Player-Controller hierher bringen. Ich werde meine Levelzeit hier so einstellen, wie sie ist. Lass uns 47 nehmen, also endet es mit der Zahl Sieben. Okay, lass uns weitermachen und das speichern. Gehen wir wieder rein und spielen mein Spiel. Und los geht's. Und wieder endet es mit der letzten Ziffer von Sieben. Wir haben jeweils sieben Feuerwerke bekommen, was 500 Punkte ergibt. Sie haben gesehen, wie sich diese Punkte erhöht haben und sie oben rechts zu meiner Gesamtsumme addiert haben , und das funktioniert wie beabsichtigt Gut gemacht Leute. Wir haben jetzt einen Fahnenmast am Ende des Levels für einige Level-Einstellungen, mit denen wir Dinge wie unseren Level-Timer tatsächlich zum Laufen bringen werden. Wir sehen uns dort 86. Blueprint für Level-Einstellungen: Willkommen im Laufe der nächsten Videos hier. Die Dinge werden sich wirklich zusammenfügen, wenn wir einen Plan für Leveleinstellungen implementieren Nun, das wird ein hochgradig anpassbarer Plan sein , den wir in unserem Level platzieren können Und es wird Dinge für uns bestimmen, zum Beispiel, welche Level-Musik wir spielen wollen, welche Art von Zeitlimit wir für dieses spezielle Level einführen wollen dieses spezielle Level einführen ändern nicht nur, wann Musik abgespielt werden soll, was darauf hinweist, dass unsere Levelzeit bald abläuft, die Blockzeit. Musik All diese Art von Jazz. In diesem werden also gute Dinge implementiert werden. Und dieser wird an einige andere Pläne anknüpfen , die wir im Laufe des Kurses ebenfalls erstellt haben Bevor Sie also diesen ganzen Videoabschnitt erstellen, stellen Sie sicher, dass Sie den Checkpoint-Blueprint, das Hud-Widget, den Blueprint und den Block fertiggestellt haben den Checkpoint-Blueprint, das Hud-Widget, den Blueprint Hud-Widget, den Weil sie sich alle an das System anpassen werden , das wir hier erstellen werden Ordnung, um uns den Einstieg zu erleichtern, werden wir wieder einen Plan für Schauspielerklasse erstellen Und das werden wir in unserem Blueprint-Ordner tun. Der erste Schritt ist also, hier runterzukommen . Wir klicken mit der rechten Maustaste. Wir werden eine neue Blueprint-Klasse der Art Actor Parent Class erstellen . Und ich werde dem einen Namen geben. Und wo hat es es hingestellt? Drinnen hier. Da ist es, genau da unten. Wenn ich F zwei drücke, um das umzubenennen, nenne ich es BP. Einstellungen für die Unterstrichstufe. Ordnung, wenn das ausgewählt ist, drücke ich die Leertaste, um es zu öffnen Das Ziel in diesem Video ist nur, die Komponente und die Variablen an ihren Platz zu bringen , und dann werden wir das Drehbuch für das nächste Video oder Video schreiben Bringen wir die Komponenten , die wir dafür benötigen werden. Bei der ersten Komponente , die wir hinzufügen werden, werden wir hier eine Reihe von Audiokomponenten hinzufügen. Die Audiokomponente befindet sich ganz oben in Ihren Anzeigen. Diese erste werde ich Level-Musikkomponente nennen. Als Nächstes werde ich eine Audiokomponente hinzufügen. Und es ist nicht wirklich wichtig , dass sie hier angehängt sind. Aber wenn es Sie verrückt macht , dass sie aneinander hängen , können Sie sie einfach per Drag & Drop auf die vorhandene Audiokomponente Die nächste Warnung wird Time Running Out Warning heißen Time Running Out Warning Ich wähle meinen Standard-Senior aus. Fügen Sie noch einmal ein Audio hinzu. Dieser wird Time Expired heißen. Der Standardsensor wird erneut auf Hinzufügen klicken. Dies werden alles unsichtbare Komponenten in unserem Spiel selbst sein Komponenten in unserem Spiel selbst Dieser wird übrigens Level Complete heißen. Hoppla. Und ich habe Level Complete eingegeben Ich möchte nur eine Audiokomponente hinzufügen und sie Level Complete nennen Okay, lassen Sie uns weitermachen und die Einstellungen für jeden von ihnen sofort festlegen , beginnend mit unserem Level. Musik Lass uns weitermachen und das auswählen. Drüben im Detailbereich , wo Sound We go to slot in steht. Musik Ich suche Mario Level. Musik Wir wollen nach unten scrollen. Das ist sehr wichtig, wo Auto Activate steht. Wir werden uns dafür entscheiden, das nicht automatisch zu aktivieren. Okay, als Nächstes wählen wir aus, dass die Zeit abläuft. Auch hier werden wir sofort die automatische Aktivierung deaktivieren. Aber was den Sound selbst angeht, werden wir Mario mit der Warnung, dass die Zeit abläuft, einbauen und dann, wenn die Zeit abgelaufen ist, weitermachen und diese Komponente auswählen Stellen Sie sicher, dass Sie die Option Automatische Aktivierung sofort deaktivieren. Für den Sound wählen wir Mario, der abgelaufen ist. Die Zeit ist abgelaufen. Dann wählst du das für Level abgeschlossen aus. Stellen Sie außerdem sicher, dass die automatische Aktivierung nicht aktiviert ist. Andernfalls wird es von Anfang an abgespielt . Im Sound wählen wir hier ist Level gelöscht, Mario, Level gelöscht. Ordnung, wir haben also vier verschiedene Musikstücke, wenn Sie so wollen, die mit unseren Level-Einstellungen verknüpft sind. Und sie sind alle so eingestellt, dass am Anfang nicht aktiviert werden. Lassen Sie uns runterkommen und einige Variablen erstellen. Als Nächstes klicken Sie in meinem Blueprint-Bereich Variablen auf die Plus-Schaltfläche Dieser erste wird als aktuelles Zeitlimit bezeichnet. Dies wird eine Ganzzahl sein. Wir werden all das mit einem Skript verwenden . Ich werde dieses und mit dem ausgewählten Steuerelement D auswählen , weil ich eine weitere Ganzzahl haben möchte Diese wird Time Limit Max heißen. diese Option ausgewählt ist, mache ich Steuerung D, weil ich eine weitere Ganzzahl haben möchte. Und diese Warnung wird Time Running Out Warning heißen , sie wird gelten. Das ist genau dasselbe wie meine Komponente hier oben. Ich nenne das meine Running Out-Warnung, das V, die variable Version. Dann füge ich eine weitere Variable hinzu. Das wird Time-Play-Rate genannt. Das wird ein Float sein. guter Letzt füge ich eine weitere Variable hinzu und diese wird mein Level genannt. Musik Dafür stelle ich den Typ auf Schallwelle ein. Wir wählen den Objekttyp Schallwelle, Objektreferenz. Jetzt werden wir wieder all diese in einem kommenden Drehbuch verwenden . Lassen Sie uns hier weitermachen und kompilieren, damit wir für jeden dieser Werte einige Standardwerte festlegen können . Also mach weiter und kompiliere. diese Weise können wir einige Standardwerte für ein aktuelles Zeitlimit festlegen . Ich werde das für unser maximales Zeitlimit auf Null setzen. Ich werde das auch auf Null setzen. Beachten Sie, dass diese Werte hier nicht festgelegt werden müssen. Dieser Maximalwert wird im Level-Editor festgelegt und mithilfe eines Skripts an die aktuelle Wertvariable übergeben . Wir werden irgendwann etwas erstellen , was ich tun möchte, wobei das Zeitlimit maximal darin besteht, dass ich sicherstellen möchte , dass ich es so einstelle Instanzen bearbeitet werden kann, damit wir es im Level-Editor bearbeiten können Als Nächstes, bei einer Warnung, die Zeit abläuft, ist dies das Zeitlimit , mit dem Sie spielen möchten, eine Art Liedchen, das den Spieler warnt, dass, hey, Ihnen bald die Zeit davonläuft Damit wollen wir das auch offenlegen, um diese Instanz editierbar zu machen Also können wir das vom Editor aus bearbeiten, wenn wir wollen. Und wir werden das auf 50 setzen. Aber noch einmal, Wahl des Händlers. Ich werde den Spieler, der noch etwa 50 Sekunden übrig hat, warnen , dass , hey, dir bald die Zeit davonläuft. Meine Spielrate werde ich auf 1,0 setzen, was 100% der üblichen Rate entspricht. Das wird also verwendet, um zu bestimmen, wie schnell wir tatsächlich Sekunden von unserer Uhr abweichen werden Sekunden von unserer Uhr Tatsächlich verringern nicht alle Mario-Spiele die Zeit pro realer Welt Zweitens werden sie manchmal schneller inkrementell. Ich nehme an, wir könnten diese Instanz auch editierbar machen. Ich könnte dieses Kästchen hier ankreuzen, aber wenn Sie auch auf dieses kleine Augapfelsymbol klicken wird genau das Gleiche tun einfach vorzuzeigen, das anzukreuzen oder auf diesen Augapfel zu klicken , macht das Gleiche für das Musik Hier werden wir diese Instanz auch editierbar machen, das heißt, wenn wir unseren Leveleinstellungs-Akteur hier auf Ebene zwei, Stufe drei, Stufe vier usw. platzieren würden, könnten wir die Standardstufe Musik tatsächlich ändern. Im würden, könnten wir die Standardstufe Musik tatsächlich ändern Moment stelle ich das auf Level Music eins Und wenn wir diese nun kompilieren und speichern, könnten wir weitermachen und einen dieser Typen platzieren Du brauchst nur eines davon. Die Art und Weise, wie das innerhalb unseres Levels entworfen wird , also ziehe ich das einfach per Drag & Drop auf meine beiden D, meine Hauptebene hier. Klar, lass mich auch meine Snap-Einstellungen einschalten. Ich werde es gleich hier fallen lassen. Und dann lass es mich einfach irgendwie über allem in die Luft hängen. Beachten Sie also, dass dies nur eine Sammlung von Symbolen ist. Es sind ein Haufen von, du weißt schon, Audiosymbole, die das Standard-Szenen-Root-Symbol hier überlappen die das Standard-Szenen-Root-Symbol hier Und was ich wirklich damit angeben wollte, ist das im Detailbereich hier. Jetzt werden wir in der Lage sein, verschiedene Dinge an diesem speziellen Level, Stufe eins, anzupassen . Beachten Sie also, dass Sie, wenn Sie eine Ebene zwei, drei usw. erstellen , wenn Sie eine Ebene zwei, drei usw. eine davon auf eine Ebene zwei, Ebene drei usw. ziehen und für diese spezielle Ebene anpassen können Direkt hier im Level-Editor wird der Spieler diese Symbole überhaupt nicht sehen Der Grund, warum wir diesen Plan als einen Plan für die Schauspielerklasse erstellen , der im Level platziert werden soll, ist , dass dies eine sehr bequeme Möglichkeit sein wird, dies auch mit anderen Bauplänen in unserem Level zu kommunizieren Okay, wir haben hier also einen guten Start hingelegt. Es muss noch mehr getan werden, vor allem was das Scripting angeht Aber wir haben unsere Einstellungen für den Blutdruckwert zusammen mit den Komponenten und Variablen zusammengestellt, die in Zukunft benötigt werden In Ordnung, Leute, das reicht für diesen. Wir sehen uns im nächsten. 87. Level-Settings-Skript #1: Ordnung, willkommen zurück. In diesem Video haben wir uns zum Ziel gesetzt, ein Drehbuch innerhalb unserer Level-Einstellungen zu erstellen, hier ein Plan für die Schauspielerklasse Dadurch werden unser Game-Timer gestartet und je nach Situation im Spiel relevante Audiokomponenten abgespielt Lass uns gleich wieder eintauchen, indem wir darauf doppelklicken oder es auswählen lassen und die Leertaste drücken. Wir werden hier zu unserem Ereignisdiagramm übergehen. Und Sie sollten drei Knoten hier benotet sehen. Wir werden diese beiden eliminieren. Event-Häkchen und Event-Beginn überschneiden sich. Wir werden jedoch die Option Event Begin Play verwenden. Wenn du das hier noch nicht siehst, kannst du mit der rechten Maustaste in eine leere Stelle klicken und danach suchen. Und was wir nach dem Start des Events tun ist, einen Sequenzknoten einzufügen. Ich halte die Taste S gedrückt und klicke mit der linken Maustaste, um einen Sequenzknoten einzufügen. Und der Grund, warum ich das einfüge ist, dass ich, wenn ich mehrere Dinge in diesem Fall außerhalb des Spiels erledigen möchte, sie aus organisatorischen Gründen in eigene separate Skripte unterteilen möchte. Jetzt werde ich hier fünf Dinge tun. Also werde ich noch ein paar Stecknadeln hinzufügen. Und wir werden das wahrscheinlich im Laufe einiger Videos erläutern, nur um die Dinge kürzer zu halten. Bevor wir nun mit diesem Null-Pin weitermachen, werde ich hier ein benutzerdefiniertes Ereignis erstellen, indem ich mit der rechten Maustaste auf Benutzerdefiniertes Ereignis klicke. Und wir werden diesen Spieler als Antwort bezeichnen. Weil wir zwar möchten, dass mehrere Dinge zu Beginn des Spiels passieren, aber wir werden auch die Dinge zurücksetzen wollen , die passieren, wenn unser Spieler reagiert. Deshalb werden wir dieses benutzerdefinierte Ereignis gleich hier nennen . Aber lassen Sie uns weitermachen und das auch an den Sequenzknoten anschließen Okay, als Nächstes wollen wir aufbauend auf unserem Null-Pin, einen Verweis auf unseren Spielmodus einfügen Klicken wir also mit der rechten Maustaste auf Spielmodus abrufen. Wir ziehen das in die Länge und werfen zwei, unseren Spielmodus. Welchen Spielmodus verwenden wir? Wir verwenden unseren Third-Person-Spielmodus. Und wieder einmal, das ist der Teil unseres Third-Person-Blueprint-Ordners unseres Third-Person-Blueprint-Ordners Wir nutzen diesen Third-Person-Spielmodus. Und lassen Sie mich das gleich öffnen denn hier haben wir ein Respawn-Skript Und das wird im Grunde eine Art verbindender Bauplan mit unseren Level-Einstellungen hier sein eine Art verbindender Bauplan mit , wie wir sehen werden nur ein bisschen von unserem damaligen Null-Pin Lass uns weitermachen und das sofort hier einstecken. Und sie einfach etwas höher anheben. Nun, bevor wir damit weitermachen, müssen wir tatsächlich in unseren Blutdruckmodus springen, in der dritten Person schwul. Wir werden hier einen Event-Dispatcher hinzufügen. Ich komme aus dem Panel „Mein Blueprint“. Klicken Sie auf diese Plus-Schaltfläche , um einen Event-Dispatcher hinzuzufügen. Und wir werden diesen Spieler Respawn nennen. Nachdem dies erstellt ist, werden wir tatsächlich ganz am Ende unseres Respawn-Skripts hier einen Aufruf dafür erstellen ganz am Ende unseres Respawn-Skripts hier einen Aufruf dafür unseres Respawn-Skripts In unserem Third-Person-Spiel. Die Modi kommen ganz am Ende. Und wir ziehen das in die Länge und nennen es so. Das wird eine Botschaft an alle anderen Blueprints senden , die darauf warten Und dann können diese zuhörenden Blaupausen entsprechend reagieren Nachdem das hinzugefügt wurde, reagiert dieser Event-Dispatcher-Spieler und fügt dann diesen Aufruf am Ende unseres Skripts hier Lassen Sie uns weitermachen und kompilieren und speichern. Sehr wichtig, dass Sie hier kompilieren und speichern. So können wir jetzt in unseren Level-Einstellungen aus diesem BP-Third-Person-Spielmodus herausziehen und nach einem Spieler suchen , dem Event-Dispatcher Jetzt wollen wir den Spielern Respawn zuweisen. Dadurch werden zwei Knoten hinzukommen. Schau dir an, wie das funktioniert. Wir werden dieses benutzerdefinierte Ereignis an diesen Event-Dispatcher binden , sodass wir darauf warten, wenn es hier in unseren Level-Einstellungen aufgerufen wird es Dafür ist dieses ganze Setup da, um abzuhören, wann das benutzerdefinierte Event dieses Spielers aufgerufen wird Und wenn das aufgerufen wird, werden wir dieses benutzerdefinierte Event starten. Im Grunde wartet man darauf, dass der Event-Dispatcher, der auf den Spieler reagiert, aufgerufen wird Und in dem Moment, in dem dies aufgerufen wird und nur dann, wird dieses benutzerdefinierte Ereignis ausgelöst Alles, was wir daraus machen werden , ist unsere Level-Musikkomponente ganz oben in unsere Komponentenliste aufzunehmen. Zieh das rein. Und dann ziehen wir das ab und geben Set Pitch Multiplikator Und wir werden den Wert auf 1,0 setzen, also auf die gewünschte Tonhöhe, die wir haben wollen Nun ist es wichtig, dies bei der Beantwortung zu tun, damit wir sicherstellen können, dass unsere Level-Musik in dieser Tonhöhe abgespielt wird. Weil wir diese Tonhöhe ändern werden, wissen Sie, dass uns die Zeit davonläuft. Dann werden wir auch diesen Teil des Skripts beenden, indem wir einen Rückruf zu diesem benutzerdefinierten Ereignis, auch Spielerantwort genannt, durchführen. Lassen Sie sich also nicht verwirren. Dieses benutzerdefinierte Event für Spieler unterscheidet sich von diesem Event-Dispatcher für Spieler , der in unserem Third-Person-Spielmodus verfügbar Also ziehen wir das in die Länge und geben Spielerantwort ein, rufen diese in die Länge und geben Spielerantwort ein, Funktion auf, Spielerantwort, und wenn ich darauf doppelklicke, wird verifiziert, dass es nur das benutzerdefinierte Ereignis aufruft Ganz am Anfang dieses Drehbuchs. Machen wir weiter und klicken mit der linken Maustaste und ziehen um diese Knoten herum und tippen auf den C-Schlüssel um sie herum , damit wir das kommentieren können Ich nenne das in unserem Spielmodus den Event-Dispatcher „Hört auf Spieler reagiert “ und setzt unsere Level-Einstellungen Ich werde es noch einmal schwarz einfärben, nur um einen schärferen Kontrast zu erzeugen Das haben wir also bisher. Vielleicht werde ich das ein bisschen verschieben nur um es ein bisschen besser zu gestalten. Okay, das zweite, was wir unserer Sequenznotiz hier machen werden, lassen Sie uns einfach unsere Sequenznotiz einschalten , ist, dass ich mit der rechten Maustaste in eine leere Stelle klicke und sage , Player-Controller holen. Dann ziehe ich das Ganze raus und casten auf den Player-Controller, unseren BP-Player-Controller. Der Grund, warum wir das tun, ist , dass wir einige Informationen daraus extrahieren wollen. Vielmehr wollen wir eine Variable darin setzen. Aber bevor wir das tun, werde ich hier mit der rechten Maustaste auf diesen Pin klicken. Und wir werden das zu einer Variablen heraufstufen. Ich nenne das einfach meinen Player-Controller Ref. Wir werden diesen Player-Controller wieder verwenden . Lassen Sie uns einfach weitermachen und das sofort zu einer Variablen heraufstufen. In dieser Variablen sind Player-Controller gespeichert. Und jetzt möchte ich unseren Player-Controller herausziehen und Levelzeit wieder in unserem Player-Controller einstellen . Lassen Sie uns zu unserem Player-Controller übergehen , der in meinem Plattform-Blueprints-Framework, Player-Controller, enthalten Ich habe diese Level-Zeitvariable genau hier, derzeit auf 500 zurückgesetzt Ich habe es auf 500 zurückgesetzt und ich möchte das einstellen können. Jetzt ist diese Variable wieder an unsere Level-Zeitanzeige in unserer Motorhaube gebunden. Und hier in unseren Level-Einstellungen sagen wir, dass wir in der Lage sein wollen, diesen Wert anzupassen. Im Wesentlichen werden unsere Level-Einstellungen genau hier eine neue Zahl an diese Variable übergeben. Was möchte ich jetzt auch einstellen? Ich habe mein maximales Zeitlimit. Ich mache einfach weiter und füge das jetzt hier ein , wobei meine Blutdruckeinstellung hier in meinem Level ausgewählt ist. Was auch immer ich hier unten im Detailbereich als Zeitlimit festgelegt habe. Lassen Sie mich einfach weitermachen und das auf 300 setzen. Das würde weitergehen und das über unsere Level-Einstellungen hier an die Levelzeit in unserem Player-Controller weitergeben. Und um das zu beweisen, wenn ich jetzt einfach auf Play klicken würde, können Sie ganz oben sehen , dass wir jetzt den Wert 300 statt 500 sehen , weil ich hier in unseren Level-Einstellungen ein neues Zeitlimit für die Variable, die sich in unserem Player-Controller befindet , weitergebe die sich in unserem Player-Controller befindet , Eine weitere Sache, die ich hier tun möchte, ist, unser Zeitlimit auf den aktuellen Stand zu bringen unser Zeitlimit auf den aktuellen Stand und es per Drag-and-Drop zu verschieben Und platziere das ganz am Ende. Ich ziehe es einfach per Drag & Drop auf diese Stecknadel hier um unser Zeitlimit auf den aktuellen Stand zu setzen. Jetzt wundern Sie sich vielleicht, warum wir das jetzt tun. Nun, das liegt daran, dass dies eine Variable sein wird , die wir weiter unten über einen Timer erhöhen oder besser gesagt verringern werden erhöhen oder besser gesagt verringern weiter unten über einen Timer Also alles, was wir hier tun, ist unser maximales Zeitlimit zu nehmen und es dann auf diese Variable zu setzen, die unserem tatsächlichen Hud zugeordnet Und dann setzen wir es auch hier ein, weil das die Variable ist, die wir über einen Timer dekrementieren werden Ein bisschen weiter unten. Ordnung, wenn das erledigt ist, machen wir weiter und klicken mit der linken Maustaste und ziehen diesen Teil des Skripts. Ich werde hier nur ein bisschen rauszoomen. Tippe auf diese Taste und ich nenne meinen F-Controller für zwei Spieler und setze ein Zeitvariablen-Skript ein. Ich sollte auch sagen, was an unser HUD gebunden ist, das ist eine gute Erinnerung Und dann mach weiter und wechselt ebenfalls zu Schwarz. Okay, das wird also unsere erste Einrichtung hier sein. Wir haben noch mehr Arbeit vor uns, aber ich werde das hier ein Video nennen, um es nicht zu überfordern und es in mundgerechten Stücken zu halten. Aber wenn du das Video hier pausieren möchtest, kannst du dir ansehen, was wir bisher entwickelt haben Fahren Sie fort und kompilieren Sie und stellen Sie sicher, dass Ihr Skript soweit gut aussieht, und speichern Sie es. Wir sehen uns alle im nächsten. 88. Level-Settings-Skript #2: Willkommen zurück alle. Fahren Sie mit unserem Skript zur Einstellung des Blutdruckpegels fort. Ich werde gleich hier im Outliner klicken. Bearbeiten Sie die Einstellungen für die Blutdruckstufe, um sofort wieder einzusteigen und weiterzumachen In Ordnung, ich gehe weiter nach unten. Wir werden wieder auf unserem Sequenzknoten aufbauen, dieses Mal auf den dann zwei Pins. Was ich mit diesem Abschnitt machen möchte, ist das Skript, um das Audio einzustellen, das in unserem Level abgespielt werden soll. Dazu werden wir einen Verweis auf unsere Level-Musikkomponente einfügen. Lassen Sie uns weitermachen und das hineinziehen. Wenn wir davon wegziehen, können wir Set Sound eingeben. Lass uns weitermachen und das sofort verkabeln. Derzeit habe ich standardmäßig die Musik eingestellt , die in dieser Variablen abgespielt wird , genau hier, auf unserem Level Music. Lassen Sie uns das jetzt eingeben Wir haben diese Level-Musik-Variableninstanz erneut editierbar gemacht , was bedeutet, dass wir hier in unserem Level-Editor, wenn unsere BP-Level-Einstellung ausgewählt ist, den Level unserem Level-Editor, wenn unsere BP-Level-Einstellung ausgewählt ist, den Level tatsächlich ändern können Musik genau hier, derzeit ist sie standardmäßig auf Mario-Level eingestellt Musik Aber wenn du sie pro Level ändern möchtest, musst du nur die Einstellungen per Drag & Drop in dein Und dann können Sie es hier so ändern , wie Sie es möchten. Und dann per Skript wird hier tatsächlich alles übernommen, was wir in diesem Level-Editor eingestellt haben , wobei diese Instanz editierbar Und es wird festlegen, dass das die neue Level-Musikkomponente ist , was wir spielen wollen Ordnung, damit werden wir dann einen kleinen Delay-Node einbauen. Halten Sie die Taste D gedrückt und klicken Sie mit der linken Maustaste. Ich möchte nicht, dass diese Musik sie sofort abspielt, also verzögere ich sie einfach um 34 Sekunden, 0,75, und dann füge ich noch einen 0,75, und dann füge ich Hinweis auf unsere Level-Musikkomponente Um das per Drag-and-Drop , sagen wir einfach: Hey, jetzt, da du mit der Musik gefüllt wurdest , die wir innerhalb dieser Variablen eingestellt haben, lass uns weitermachen und diese Musik abspielen Und natürlich können Sie angeben, dass die Startzeit Null ist, es wird einfach von Anfang an abgespielt. Klicken Sie mit der linken Maustaste und ziehen Sie auf diese Taste. Ich nenne das „Meine Sets Audio , um unsere Level-Musikkomponenten Jetzt stellen sich einige von Ihnen vielleicht die Frage, hey, diese Level-Musikkomponente, wir haben hier tatsächlich einen Standardsound eingestellt Müssen wir das tun? Nein, haben wir nicht. Wir hätten dieses Feld leer lassen , weil wir diese Level-Musikkomponente im Grunde mit der eigentlichen Level-Musik überschreiben diese Level-Musikkomponente im Grunde mit , die genau hier angeschlossen ist Ordnung, lassen Sie uns weitermachen und das gesamte Kommentarfeld hier so einstellen , dass es schwarz ist Und dann lasst uns hier an dem krassesten Abschnitt unseres Drehbuchs arbeiten hier an dem krassesten Abschnitt unseres Drehbuchs unseren Sequenzknoten einfach nach unten verschiebe, werde ich für eine Verzögerung sorgen, die wieder ausgelöst Ich erkläre gleich, warum, aber das wird von Anfang an keinen Sinn ergeben Also werde ich das so einstecken also werde ich es auf 1,0 setzen und dann werde ich mit der rechten Maustaste darauf klicken, um einen leeren Bereich zu leeren, und „Timer nach Ereignis einstellen“ eingeben . Und dann werden wir das Ereignis rückwärts verschieben Wir werden ein benutzerdefiniertes Ereignis einführen und das nenne ich meinen Run-Level-Timer Es wird für mich einfacher sein, diese alle einzubeziehen und dann zu erklären, wie das alles funktionieren soll. Nachdem ich die entsprechenden Knoten hinzugefügt habe und hier für eine Weile ein paar Dinge eingerichtet habe, werde ich die Time-Play-Rate wie folgt einbauen. Und dann werde ich es auf Looping einstellen , also kreuzen Sie das Kästchen Stellen Sie sicher, dass Sie das Kästchen ankreuzen. Okay, also im Grunde genommen, wenn wir das Spiel beginnen, werden all diese Teile des Skripts oben ausgelöst, und dann kommen wir runter zu O. Dann drei, wir werden 1 Sekunde warten und dann werden wir unseren Timer starten. Das wird jetzt losgehen, in diesem Fall jedes Zeitinkrement , das ich momentan auf eins gesetzt habe Das ist es also, was dieses Mal hier ist, um zu bestimmen, wie lange gewartet werden muss bevor der Delegate ausgeführt wird Das ist dieses benutzerdefinierte Ereignis genau hier. Da es sich um eine Endlosschleife handelt, wird es weiter ausgelöst, in diesem Fall jede Sekunde Nun, der Grund, warum ich das auf eine retriggerbare Verzögerung eingestellt habe , im Gegensatz zu einer normalen Verzögerung, ist der Fall, dass unser Charakter stirbt und dann alles wieder von vorne beginnen muss Eine retriggerbare Verzögerung funktioniert im Gegensatz zu einer normalen Verzögerung so , dass, sobald sie eintritt, der Countdown beginnt, in Und wenn wir während des Rückwärtszählens von einer Sekunde sagen würden, sterben und alles wieder von vorne beginnen würde, würde das die Verzögerung wieder auf eine Sekunde zurücksetzen Wenn dies also während des Countdowns erneut ausgeführt wird, wird dies erneut auf eine Sekunde zurückgesetzt, bevor dann all dies getan wird. Okay, was wir auch außerhalb unserer festgelegten Timer für Event-Knoten tun wollen , ist, dass wir das genau hier bewerben werden. Wir klicken mit der rechten Maustaste auf „Promoten “ und nennen das unser Level. Timer, der jetzt variabel gespeichert ist. Und das tun wir im Wesentlichen, damit wir diesen Timer löschen können , wenn uns die Zeit abläuft. Wir werden das gleich hier im Spiel sehen. Okay, was möchte ich nach unserem Run-Level-Timer machen , ein benutzerdefiniertes Event hier. Nun, ich werde einen Zweig hinzufügen , also halten Sie die B-Taste gedrückt und klicken Sie mit der linken Maustaste. Und wir wollen einen Zustand bewerten. Nun ist unser Zustand, den wir auswerten wollen , unser Zeitlimit. Ziehen wir das mit rein. Das werden wir uns noch einmal holen. Oben haben wir unser Zeitlimit so eingestellt , dass es zunächst unabhängig von unserem Zeitlimit ist. Und auch dies wird über den Level-Editor eingestellt. Derzeit liegt die maximale Zeitstufe bei 300. Wir sagen im Grunde, hey, was auch immer unser Standardwert hier in den Level-Einstellungen ist, wir setzen ihn auf 300. Das geht bis zu unserer Levelzeit durch, das ist unserer Umgebung zugeordnet. Und dann füllen wir auch unser aktuelles Zeitlimit mit dem gleichen Wert von In diesem Fall nehmen wir diesen Wert und werden herausfinden , ob er gleich Null ist Wenn das gleich Null ist, wollen wir im Grunde unseren Level-Timer hier löschen. Alles, was ich tun muss, ist hierher zu ziehen und Timer löschen und ungültig machen nach Griff einzugeben Jetzt, wann immer ich das mache, wird es automatisch genau hier oben eingesteckt Was wir tatsächlich tun können, ist das Kabel genau hier abzuschneiden. Ich werde einfach die Alt-Taste gedrückt halten und mit der linken Maustaste klicken. Wir können den Stecker drin lassen. Aber vom eigentlichen Zweig hier kann ich ihn einfach so einstecken. Wenn es nun falsch ist, dass unser Zeitbegrenzungsstrom noch nicht Null ist, werden wir einfach diesen Zeitbegrenzungsstrom schmücken diesen Zeitbegrenzungsstrom Ich kann das machen, indem ich es hier rausziehe und decment decorment int eintippe , was das machen wird Es wird diesen Wert annehmen , den wir derzeit aufgrund dieses Zeitlimits auf 300 festgelegt haben , maximal Dann wird dieser Wert subtrahiert, 299300 Dann wird es diesen Wert wieder hier in dieser Variablen setzen wieder hier Dieser Vorgang, dieses Dekrement dient uns also als Möglichkeit , sofort eins von diesem angegebenen Wert zu subtrahieren , und dann wird er wieder hier reingeschaltet Das ist jetzt praktisch, weil ich auch möchte, dass sich das in unserem Hud widerspiegelt, denn auch hier ist diese Variable nur lokal innerhalb unserer Level-Einstellungen hier Wir haben das nirgendwo anders veröffentlicht. Ich nehme unsere Controller-Referenz mit, wir holen uns das, wir holen uns das. Dann ziehe ich mich hier raus und tippe festgelegte Levelzeit ein. Wir werden das im Wesentlichen an unsere Levelzeitvariable in unserem Player-Controller weitergeben an unsere Levelzeitvariable in unserem , da dies die Variable ist , die unserem Hud zugeordnet ist Okay, ich möchte noch etwas tun. Wenn unser aktuelles Zeitlimit noch nicht gleich Null ist, möchte ich eigentlich noch einen Vergleich machen. Jenseits von hier. Ich werde die B-Taste gedrückt halten und mit der linken Maustaste klicken. Also Taste und Linksklick. Und dieses Mal möchte ich vergleichen, ob unser aktuelles Zeitlimit gleich ist , was ist? Nun, unsere Zeit läuft ab, warnend. Derzeit habe ich diesen Wert auf 50 eingestellt. Aber auch hier in den Level-Einstellungen können Sie diese Standardvariable überschreiben . Ich habe es dort auch auf 50 gesetzt. Es sind trotzdem 50, aber wir werden herausfinden, ob unser aktuelles Zeitlimit im Grunde genommen bis zur 52. Marke gesunken ist bis zur 52. Marke gesunken Wenn ja, werden wir es gleich hier an unsere Filiale anschließen Wir werden unsere Level-Musik-Komponente so einbringen . Dann ziehen wir es raus und geben Set Pause ein. Also werden wir diese Musik im Grunde pausieren. Stellen Sie sicher, dass Sie dieses Kontrollkästchen aktivieren, um festzulegen, dass es angehalten wird. Dann werden wir uns die Zeit nehmen , uns davonzulaufen, Warnung Musik Das wird dieses Musikstück hier sein, Mario, die Zeit läuft ab. Wir nehmen diese Komponente, ziehen sie hierher und geben Play ein, um die Wiedergabefunktion einzufügen. Wir pausieren im Grunde unser Musiklevel, damit wir die Zeit, in der die Zeit abläuft, abspielen können Jetzt gehe ich einfach ein bisschen nach oben denn wenn unser Zeitlimit abgelaufen ist und sich das als wahr herausstellt , werden wir diesen Level-Timer löschen Aber es gibt noch ein paar Dinge, die ich damit machen möchte. Also werde ich auf diesem Clear and Invalidate Timer nach Handle Node aufbauen Clear and Invalidate Timer nach Handle Node Und was ich daraus machen möchte, ist, unsere Level-Musik-Komponente einzubringen sie noch einmal mit einzubeziehen Wir werden auch unsere Warnung vor Zeitablaufende einziehen, beide für den Fall, dass einer von beiden läuft. Und was ich hier machen möchte, ist , Tippstopp einzutippen, wir wollen im Grunde jegliche Musik hier beenden , falls unser Zeitlimit tatsächlich abgelaufen ist. Und zusätzlich zum Stoppen der Musik möchte ich auch, dass unser Charakter stirbt, wenn ihm die Zeit davonläuft. zu tun, klicke ich mit der rechten Maustaste in ein leeres Feld und suche mir den Spielercharakter. Und wir werden für unseren Charakter aus der dritten Person casten. Hier drin werde ich noch einmal die Sterbefälle des Spielers herausziehen und eintippen . Wenn ich darauf doppelklicken würde, würde das zeigen, dass wir dieses benutzerdefinierte Ereignis innerhalb unseres BP-Third-Person-Charakters aufrufen benutzerdefinierte Ereignis innerhalb , um all unsere Death-Effekte zu erzielen. Das ist unser Charakter, in die Luft geworfen zu werden und dann durch die Welt zu fallen. In Ordnung, das Drehbuch war also ein bisschen krass. Da ist alles. Versuche es auf den Bildschirm zu bringen. Ich komme von unserem Sequenzknoten hier runter, okay? Und dann klicke ich mit der linken Maustaste und ziehe das alles herum. Tippen Sie auf die C-Taste, ich verspreche, das war das Schlimmste. Und wir geben Run the Timer ein und spielen angemessen. Musik Je nach Situation werden wir die Farbe des Kometen ändern Es ist sofort schwarz. Okay, und wenn ich mir meine Notizen hier ansehe, sehe ich tatsächlich, dass mir hier unten ein bisschen Drehbuch fehlt , aber dieses Video wird ein bisschen lang. Lassen Sie mich einfach weitermachen und das zusammenstellen und sagen. Wir nennen das ein Video und nehmen es auf und beenden es im nächsten , siehe da. 89. Level-Settings-Skript #3: Willkommen zurück. Lassen Sie uns weitermachen und unser Skript zur Einstellung des Blutdruckpegels fertigstellen. Und ich habe am Ende des letzten Videos erwähnt , dass ich meine Notizen verpasst Ich hatte noch ein Drehbuch , das aus unseren damaligen drei Drehbüchern hier runter musste . Lassen Sie uns also weitermachen und das angehen. Was wir tun wollten, ist unser derzeitiges Niveau anzuhalten Musik Wir werden unsere Time Running Out Warning spielen. Musik Aber was wir tun müssen, ist sicherzustellen, dass wir unser Musiklevel tatsächlich so einstellen , dass wir nach diesem Spiel wieder ansteigen. Was wir also tun werden, ist eine Verzögerung einzuleiten. Halten Sie die Taste D gedrückt und klicken Sie mit der linken Maustaste. Ich werde diese Verzögerung auf 2,8 Sekunden einstellen. Nun, warum 2,8 Sekunden? Nun, weil es ungefähr so lange dauert, bis uns die Zeit ausgeht. Warne das Liedchen, es zu spielen, nachdem wir 2,8 Sekunden gewartet haben. Was ich dann tun werde , ist unsere Musikkomponente noch einmal einzubringen unsere Musikkomponente noch einmal Dann müssen wir uns einfach noch einmal von hier wegziehen , Set eingeben, nur dass wir dieses Mal unmarkiert lassen und sagen, ja, wir wollen nicht wirklich pausieren Dann legen wir unseren Pitch fest. Multiplikator, der aus unserer Level-Musikkomponente herauszieht. Multiplikator setzen, wir werden ihn auf 1,05 setzen . Dadurch klingt es so, als ob unsere Musik ein bisschen überstürzt wird, also hey, die Zeit läuft ab und dann, oh ja, übrigens, wenn wir das Level Musik wieder hochfahren klingt es so, als ob unsere Musik ein bisschen überstürzt wird , also hey, Zeit läuft ab und dann, oh ja, übrigens, wenn wir das , lassen wir es auf einer höheren, schnelleren Tonhöhe abspielen Das ist auch der Grund, warum das genau hier eingerichtet wurde, dass wir, wenn wir am Anfang sterben , dieses Drehbuch ganz am Anfang gemacht haben . Wir haben unsere Level-Musikkomponente auf diesen Tonhöhenmultiplikator von eins gesetzt, also im Grunde genommen auf eins zurückgesetzt unabhängig davon, wie die Musik war, als sie starben In Ordnung, der letzte Teil des Drehbuchs , den wir hier reinstellen müssen. Ganz weit unten unter unseren damals vier Sequenz-Pins. Was wir tun werden, ist Click ins Leerzeichen zu schreiben. Wir werden uns den Spielercharakter besorgen und wie ihr vielleicht schon vermutet habt, werden wir uns hier rausziehen und für unseren Charakter aus der dritten Person casten Wir werden das so einbinden. Und der Grund, warum wir das tun, ist, dass wir unseren Charakter aus der dritten Person in die Länge ziehen werden. Wir werden unsere Todessequenz nennen. Wir haben unseren Spielern die Todessequenz zugewiesen. Es werden zwei Knoten hinzugefügt, also startet dieser Spieler erneut die Todessequenz. Wenn ich zu meinem Charakter aus der dritten Person wechseln würde , für den ich ganz oben einen Tab habe, haben wir einen Event-Dispatcher namens Player Starts Death Sequence erstellt einen Event-Dispatcher namens Player Starts Death Sequence Wenn ich mit der rechten Maustaste darauf klicke und Referenzen finde, kann ich herausfinden, wo das hier innerhalb unseres Third-Person-Charakters heißt innerhalb unseres Third-Person-Charakters Und da ist es in unserem Drehbuch für Spielersterbe. Es wird sofort aufgerufen, wenn das aufgerufen wird, alle anderen Pläne, die darauf lauschen Und genau das macht diese ganze Einrichtung hier in unseren P-Level-Einstellungen Das ist im Grunde das Abhören darauf, dass diese Sequenz aufgerufen wird. Wenn das ruft, werden wir das dann rauswerfen. Das ist im Grunde unsere Art, den Charakter aus der dritten Person zu abonnieren . Der Spieler startet die Todessequenz, nennen wir das Wenn das passiert, wissen wir innerhalb unserer BP-Level-Einstellungen Bescheid, also hey, das ist passiert, lass uns weitermachen und von hier aus feuern Nun, was wollen wir tun? Nun, wir werden unsere Level-Musik-Komponente einbringen. Holen wir uns das. Wir werden auch unsere Zeit davonlaufen lassen, Warnung, das werden wir verstehen. Wir wollen sichergehen, dass sich keiner von beiden in die Länge zieht. Und tippe Stopp, Stopp all music hier ein, verkabeln Sie das, so. Dann auch unseren Level-Timer genau hier. Ziehen wir das rein. Wir werden herausfinden, dass wir sofort die Todeszeit eines Spielers löschen und für ungültig erklären wollen . Wir wollen immer sichergehen , dass wir den Timer löschen. Ordnung, mit dem ganzen Skript hier drin, wir weiter mit der linken Maustaste und ziehen die C-Taste um das Tippen herum. Das wird Stop sein. Any Music Music Falls der Spieler gestorben ist, dann nur um zu beachten, dass dieser Event-Dispatcher in unserem Third-Person-Charakter BP aufgerufen wird in unserem Third-Person-Charakter BP aufgerufen unserem Third-Person-Charakter BP Es ist immer gut, Notizen für sich selbst zu hinterlassen. einer Entfernung von 10.000 Fuß können Sie sehen, was ist. Lassen Sie uns weitermachen und das in Save kompilieren. Lassen Sie uns einen Blick auf das werfen, was hier vor sich geht. Das war unser damaliges Vier-Skript, falls Sie das Video genau dort unterbrechen wollen, aber aus einer Entfernung von 10.000 Fuß haben wir das alle zusammengestellt. Und aus diesem Grund hätte ich wieder gerne einen Sequenzknoten. Weil wir hier auf einen Blick sehen können , wenn ich ihn so zurückziehe, wie wir verschiedene Skriptsegmente machen. Es passiert im Grunde alles sehr schnell hintereinander, eins nach dem anderen. Aber ich möchte es aus Gründen der Lesbarkeit so segmentieren Gründen der Lesbarkeit so Okay, lassen Sie uns weitermachen und das testen zu erleichtern, werde ich jetzt das Spielen zu erleichtern, werde ich jetzt, wenn die Zeit abläuft, jetzt wieder in unser Level springen, wobei mein Leveleinstellungen-Blueprint ausgewählt ist wieder in unser Level springen wobei mein Leveleinstellungen-Blueprint Drüben im Detailbereich. Ich werde mein Zeitlimit auf sagen wir mal 55 Sekunden setzen. Damit wir diese Zeitablaufwarnung ziemlich schnell erreichen werden. Und dann werde ich das testen, indem ich sterbe und reagiere und sehe, wie alles funktioniert. Ich drücke die Daumen. Los geht's. Der Timer ist bei 55 Sekunden. Es schmückt wie beabsichtigt. Die Zeit läuft ab. Unsere Musik spielt ein bisschen mehr. Rush ist Mach weiter und stirb. Hier stoßen wir auf meine Flammenarme. Da haben wir's. Oh, hey, die Zeit blieb bei 36 Sekunden stehen. Und wenn wir antworten, sind wir in 55 Sekunden zurück und der Timer läuft sofort wieder. Hey, nicht zu schäbige Leute. Wir haben ein Level-Einstellsystem eingerichtet. Und noch einmal, was das Ganze so magisch macht, ist, dass du es in jedes Level einordnen kannst , das du erschaffst. Und dann können Sie die Einstellungen hier im Detailbereich anpassen . In Ordnung Leute, das wird alles für diesen machen. Wir sehen uns im nächsten. 90. Leveleinstellungen und der P-Block: Willkommen. In diesem Fall werden wir uns damit befassen, unsere Leveleinstellungen mit unserem Block in Konflikt Lassen Sie mich jetzt loslegen und spielen und Ihnen genau zeigen, was gerade passiert Derzeit bestimmen unsere Level-Einstellungen Dinge wie unser Level. Musik Wenn ich jedoch auf dem Block anhalte, siehst du jetzt, dass wir eine ganze Gruppe von Do vor uns haben . Und das wollen wir nicht. Wir müssen uns mit der Situation auseinandersetzen, hey, wenn unser Spieler auf dem Block stehen bleibt, wir nur den Block spielen. Musik Wir werden das Level Musik vorübergehend unterbrechen. Und wenn dann die Blockzeit endet, werden wir den Block beenden. Musik und einfach unser Level verbessern. Musik Noch einmal, wie gehen wir mit diesem Problem um? Nun, wie Sie vielleicht erwartet haben, werden wir uns mit unserem BPP-Block befassen Da ist es, da ist der Ort, an dem wir es derzeit in unserem Projekt haben . Hier drin. Als Erstes erstellen wir unten im Bereich „Mein Blueprint“ eine brandneue Variable Klicken Sie auf diese Plus-Schaltfläche und ich nenne das Level Settings Und dann klicken wir für den Typ auf die Stelle, an der derzeit Goldbarren steht Klicken Sie auf das kleine Drop-down-Menü. Wir werden nach unseren Blutdruckwerten suchen. Denken Sie daran, dass wir einen Plan für Schauspielerklassen namens BP-Level-Einstellung erstellt namens BP-Level-Einstellung Stellen wir also diesen Objekttyp ein. Die Bp-Ebene stellt die Objektreferenz ein. Wenn ich jetzt hier kompiliere, werden Sie feststellen, dass unser Standardwert hier Null ist. Da ist nichts drin, obwohl das ein Typ ist. So werden wir also mit dem Auffüllen dieser speziellen Variablen umgehen Auffüllen dieser speziellen Variablen Markieren Sie dieses Kästchen, zum Beispiel editierbar, dann fahren Sie fort und kompilieren Sie es erneut und speichern Sie es erneut jetzt wieder in unserem Level-Editor Ihr Block ausgewählt ist, kreuzen Sie gleich hier im Detailbereich Wir können einen Akteur für die Leveleinstellungen hinzufügen Jetzt haben wir nur noch einen Plan für Level-Einstellungen in unserem Level , weil wir nur einen benötigen Aber wenn ich dieses Drop-down-Menü auswähle, kann ich damit den Akteur mit den Einstellungen für die Kreditstufe in unserer Ebene auswählen Akteur mit den Einstellungen für die Kreditstufe , was wir tun möchten Stellen Sie also sicher, dass Sie das getan haben . Nun, es ist sehr wichtig, hier zu erwähnen, ob es in Ihrem Level noch andere Instanzen eines Blocks gibt, also lassen Sie mich einfach weitermachen und eine weitere davon hineinziehen. Es ist nicht wirklich wichtig, wo ich ihn platziere , weil ich ihn löschen werde. Aber für jeden P-Block in deinem Level musst du das tun, okay, damit wir den gesamten Musik-Switcher O richtig machen den gesamten Musik-Switcher O richtig Stellen Sie also für jede Instanz des Blocks in Ihrem Level sicher , dass Sie diese Level-Einstellungen variabel einstellen Lass mich einfach weitermachen und diesen löschen. In Ordnung. Lass mich jetzt zurück in meinen Block springen. Wenn wir die Ansicht vergrößern, bauen wir darauf auf , dann gibt es momentan kein Bit Skript. Das sind unsere Blockeffekte. Lassen Sie uns einfach auf dem Ende aufbauen. Das wäre ein netter, praktischer Ort dafür. Wir haben gerade Musik gespielt, als wir auf den Block, das ist unser Block , herumtrampeln Musik, wenn wir unseren Block spielen. Musik Hier wollen wir unsere Level-Einstellungen einfügen. Wir verstehen das, dann können wir es hier rausziehen und wir können die Level-Musikkomponente bekommen. Wir werden also die Level-Musik-Komponente bekommen, das ist diese Komponente, die in unseren BP-Level-Einstellungen enthalten ist. Wir holen uns das und dann ziehen wir es raus und geben Set paused Stellen Sie sicher, dass Sie das so verkabeln. Und wenn du dieses Kästchen ankreuzt, sagen wir im Grunde, hey Level-Musik, die in unseren Level-Einstellungen abgespielt wird. Lass uns eine Pause einlegen, wenn wir auf dem Block anhalten. Wenn wir nun die Musik pausieren , nachdem wir auf dem Block angehalten haben, müssen wir sie natürlich Musik pausieren , nachdem wir auf dem Block angehalten haben, auch wieder unterbrechen Ich werde diese drei Knoten hier hervorheben. Ich werde einfach Control C ausführen, um sie zu kopieren. Dann gehe ich runter zu meinem Block-Timer-Skript hier drinnen. Ganz am Ende, wenn die Blockzeit vorbei ist und wir alle Blöcke wieder auf den Normalzustand setzen und unseren Block stoppen. Musik Wir werden auf dem Ende dieses Steuerelements V aufbauen , um die Knoten einzufügen, die wir gerade so kopiert haben. Und das Einzige, was wir hier tun müssen, ist das Häkchen zu entfernen, im Grunde, hey, weiter auf der Ebene Musik Alles klar, also wenn das erledigt ist, lass uns weitermachen und kompilieren und speichern und dann einsteigen und spielen Okay, wir hören unsere Level-Musik. Sobald ich bei diesem Block anhalte, sollte unsere Level-Musik pausieren. Und das tut es. Und wenn dann unsere Blockzeit hier vorbei ist, glaube ich, habe ich den 8-Sekunden-Block eingestellt, Musik endet und unsere Level-Musik wird sofort wieder aufgenommen. Und so haben wir jetzt dafür gesorgt, unsere BP-Level-Einstellungen gut zu unserem BP-Block passen. Das ist auch einer der Gründe, wir einen Plan für die Schauspielerklasse erstellt haben , den wir für unsere Level-Einstellungen in unserem Level platzieren konnten , sodass er gut mit unserem BPP-Block Hier haben wir eine Methode verwendet als direkte Blueprint-Kommunikation bezeichnet wird In diesem Teil meines BP-Blocks P habe ich eine Variable vom Typ Level-Einstellungen erstellt und dann eine Instanz editierbar gemacht Und dann verknüpfe ich in meinem Level-Editor meine BP-Level-Einstellungen direkt mit diesem speziellen Blockjob Gut gemacht, in Ordnung. Das reicht für dieses C aus, wenn das nächste 91. Leveleinstellungen und der Flaggenpol: Willkommen zurück alle. Jetzt, da unsere Level-Einstellungen und unsere Block-Blueprints in diesem Spiel gut funktionieren, müssen wir sicherstellen , dass unsere Leveleinstellungen und unsere Flaggenpläne am Ende des Levels Denn was momentan passiert, ist sobald ich das Level beendet habe, indem ich auf unsere Flaggenausrüstung springe Musik einfach weitergeht Unser Timer läuft weiter, es ist einfach ein großes Durcheinander. Also werden wir uns in diesem Fall damit befassen. Dafür werden wir mit unserer Einstellung für den Blutdruckwert beginnen . Stellen wir sicher, dass du das öffnest. Wir beginnen damit, hier eine Variable zu erstellen . Klicken Sie auf diese Plus-Schaltfläche und wir nennen sie unsere Level-Beinvariable. Für den Typ. Wir setzen das auf unser Levelende, unseren Blutdruck, das Levelende-Flag , die Objektreferenz, die Blaupause Okay, genau wie du mich im letzten Video gesehen hast, in dem ich diese Variableninstanz essbar gemacht habe, werde ich auch diese eine Instanz essbar machen könnten wir also tun, indem wir auf dieses Kästchen drüben im Bereich „Details“ klicken. jedoch auch auf diesen Augapfel klicken, machen wir diese Instanz auch bearbeitbar Lassen Sie mich weitermachen und das kompilieren. Sie können also derzeit sehen, dass der Standardwert dieses End-of-Level-Flags leer ist. Wenn ich jedoch in meinen Level-Editor gehe und meine Level-Einstellungen auswähle, kann ich einfach direkt dorthin springen, indem ich hier in meinem Outliner nach Level-Einstellungen suche hier in meinem Outliner nach Level-Einstellungen suche Und wenn ich darauf doppelklicke, werde ich einfach zu dem Punkt weitergeleitet, an dem sich das auf meinem Level befindet, bei dem diese Einstellung für die Blutdruckstufe in meinem Level ausgewählt Schauen Sie im Detailbereich nach unten. Wir haben jetzt diese Kennzeichnungsvariable für das Ende der Stufe verfügbar gemacht. Sie ist derzeit auf „Keine“ gesetzt. Jetzt könnte ich das auswählen und dann meine Endmarkierung wählen, weil ich hier nur eine habe. Aber nur um eine andere Methode vorzuführen, werde ich zu meiner Flagge am Ende des Levels rüberfliegen. Und ich könnte auch, wenn meine Einstellung für den Blutdruckwert ausgewählt ist, auf dieses kleine Pfeifensymbol klicken Also werde ich das tun. Und dann bewege meinen Mauszeiger in das Viewport Und jetzt kann ich meine Flagge für das Ende des Levels auch manuell auswählen In beiden Fällen können Sie diese Variable auffüllen. Im Wesentlichen wollen wir, dass unsere Einstellungen für den Blutdruckwert auf unsere Level-Kennzeichnung reagieren und sie darüber informieren, dass der Vorgang abgeschlossen ist Dafür werden wir unseren Plan für die Endstufenmarkierung öffnen unseren Plan für die Endstufenmarkierung öffnen Lassen Sie mich einfach weitermachen und das auswählen. Ich lösche meine Levelsuche im Outliner. Ich werde diesen Bauplan öffnen. Und wenn Sie sich erinnern, haben wir in unserer Level-End-Flagge diesen Level-Complete-Event-Dispatcher Was wir in unseren Level-Einstellungen tun werden ist darauf zu achten, wann immer dieser aufgerufen wird Wenn du vergessen hast , wo das in unserer Levelende-Flag aufgerufen wird, schreibe ich einfach, klicke darauf. Wir werden eine Referenz dafür finden, wann das aufgerufen wird. Und wenn ich in den Suchergebnissen darauf doppelklicke, kannst du sehen, dass wir dieses Level schon ziemlich am Anfang dieses Skripts als komplett bezeichnen . Also ja, wir haben diesen Event-Dispatcher zu einem bestimmten Zweck hinzugefügt , und das ist dieser Zweck, damit unsere Level-Einstellungen darauf achten und dann entsprechend reagieren können darauf achten und dann entsprechend reagieren Ordnung, um das alles in unseren BP-Level-Einstellungen einzurichten In Ordnung, um das alles in unseren BP-Level-Einstellungen einzurichten, gehen wir da drüben weiter Fügen wir hier unten eine weitere Stecknadel hinzu. Lassen Sie mich einfach weitermachen und diese Sequenznotiz hier ganz nach unten ziehen . Okay? Und was wir tun werden , ist unsere Flagge für das Ende des Levels einzublenden und wir werden die Strg-Taste gedrückt halten , um dort einen Getter einzublenden Und dann werde ich diesen Typ in Level Complete durchziehen diesen Typ in Level Complete Da ist unser Event-Dispatcher, lassen Sie uns das Assign Level Complete Es wird zwei Knoten einbinden. Lass uns das in den fünfpoligen Stecker einhängen. Im Grunde sorgt das ganze Setup dafür, dass wir darauf warten, dass dieses komplette Event von unserer Level-Endflagge aus aufgerufen wird. Wenn das als unsere BP-Level-Einstellungen bezeichnet wird, was jetzt „Zuhören“ heißt, dann ist das ganze Setup dafür da. Sobald das passiert, wird es von diesem benutzerdefinierten Event ausgelöst. Okay, was wollen wir also tun, wenn wir hier in unseren Level-Einstellungen darüber informiert wurden, dass, hey, wir mit dem Fahnenmast am Ende des Levels interagiert haben und das Level abgeschlossen betrachten Nun, wir wollen unsere Level-Musik-Komponente einbauen , also lasst uns auch unsere Warnung einbauen, dass die Zeit knapp wird, falls diese auch abgespielt wird, weil sie es sein könnte Dann ziehen wir eine von beiden in die Länge und sagen Stopp. Wir werden diese beiden Musikstücke beenden, falls eine von ihnen läuft Als Nächstes werden wir hier unseren Level-Timer einbauen werden wir uns holen. Und dann ziehen wir das in die Länge und geben Pause Timer per Griff ein. Wir werden es einfach sofort pausieren. Machen Sie eine Pause in diesem Timer und gehen Sie dann ein bisschen nach rechts. Ich werde einen Delay-Knoten einschalten, indem die Taste D gedrückt halte und mit der linken Maustaste klicke. Wir werden es für sagen wir 3 Sekunden verzögern. Das klingt ungefähr richtig. Dann werde ich meine Level-Complete-Komponente einbringen. Dies wird unser Typ mit Level-Cleared sein. Musik Das werden wir mit reinziehen. Wir werden dem sagen, dass es aktiviert werden soll wie. Also. Dann machen wir uns an die Dekoration, die verbleibende Zeit, bis unser Level abgeschlossen ist Um das zu tun, werde ich einen weiteren Verspätungsschein einreichen. Also werde ich die Taste D gedrückt halten und mit der linken Maustaste klicken. Und ich werde hier eine kleine Schleife bauen, eine kreisförmige Code-Schleife. Ich werde diese Zeitdauer für unsere Verzögerung festlegen , etwas wirklich Kleines, wie 0,05. Dann füge ich unsere Player-Controller-Referenz hinzu. Wir werden das erreichen, indem wir die Steuerung gedrückt halten und mit der linken Maustaste klicken Das kriegen wir da raus. Ich will unsere Levelzeit haben. Holen Sie sich unsere Levelzeit. Dann ziehen wir das raus und tippen Dekrement Wir werden das so einstecken , wir werden es sehr kurz verzögern, dann werden wir herausfinden, wie viel Zeit wir haben Wir werden es um eins dekrementieren und dann wird es wieder hier reingesetzt Das ist es, was dieses Dekrement im Knoten bewirkt. Es subtrahiert eins und setzt es dann im Grunde wieder hier rein Jetzt werden wir diesen Wert dann auch mit einem größeren Knoten vergleichen diesen Wert dann auch mit einem größeren Knoten Fügen Sie einen Zweig hinzu, indem Sie die Taste B gedrückt halten und mit der linken Maustaste klicken, wenn dieser Wert Null ist, oder ich sollte sagen, ob dieser Wert größer als Null ist. Was wir tun wollen, ist, unsere Player-Controller-Referenz genau hier abzuziehen . Wir nennen das Hinzufügen von Punkten. Wir haben diese Aufruffunktion Punkte hinzufügen, und ich werde gleich darauf doppelklicken. Wenn unsere Levelzeit größer als Null ist, werden wir einige Punkte hinzufügen. Wie viele Punkte möchtest du hinzufügen? Nun, lasst uns für jede Sekunde 50 Punkte hinzufügen, im Wesentlichen auf unserem Timer verbleiben wenn wir das Level abgeschlossen haben. Lassen Sie uns dann zusätzlich noch einen kleinen Sound spielen. Also, wenn wir das in die Länge ziehen, spielen wir zwei D für den Sound, hier werde ich die Kamera machen, das sind die VR-Sounds der Engine Ich versuche nur, bei jeder Erhöhung der Punkte ein kleines Geräusch zu hören Dann werde ich das ganze nochmal umkreisen Ich zoome hier nur ein bisschen raus. Linksklick und Ziehen. Loop das zurück zu meinem Delay. Und wenn ich ein paar Mal auf diesen Draht doppelklicke, kann ich einige Knoten neu abrunden nur damit es ein bisschen sauberer aussieht , wie dieses ganze Skript hier, ich werde mit der linken Maustaste klicken und herumziehen, auf die Taste tippen. Das ist meine verbleibende Dekramentenzeit, wenn das Level abgeschlossen ist, und ich vergebe wenn das Level abgeschlossen ist, und Lassen Sie uns auch dieses Schwarz sofort füllen. Wenn Sie das Video hier pausieren möchten, können Sie im Wesentlichen sehen, wofür das alles eingerichtet ist. Wenn Sie dann ein wenig nach links gehen, können Sie den Teil des Skripts sehen, das alles kommt von den fünf Pins hier, in unseren Blutdruck-Level-Einstellungen. Ordnung, damit können wir weitermachen und kompilieren, um sicherzustellen, dass unser Skript gut aussieht. Und jetzt beim Spielen testen. Wir wollen sicherstellen, dass unsere Level-Musik aufhört, wenn wir das Level abgeschlossen haben. Und wir wollen auch sicherstellen, dass unser Level-Timer herunterzählt und wir Punkte für die verbleibende Zeit erhalten. Einfach reinspringen und hier spielen, hey, wir haben unser Level. Es wird Musik gespielt. Lass uns weitermachen und das Level beenden. Das Level Die Musik sollte aufhören und wir sollten anfangen zu hören, dass das Level abgeschlossen ist. Musik einschalten. Und wir sollten auch sehen, dass unser Timer stoppt und dann irgendwann anfangen, herunterzuzählen. Los geht's. Timer stoppt, Level abgeschlossen. Musik Wir zählen runter, wir bekommen 50 Punkte für jede Zeit oder jede Sekunde, die wir noch auf der Uhr hatten. Und das ist in der Tat ein netter kleiner Bonus. Wir haben es jetzt so gemacht, dass unser Levelende-Flag gut mit unseren BP-Level-Einstellungen funktioniert . Gut gemacht, Leute. Stellen Sie sicher, dass Sie alles ablegen und speichern. Gelegentlich, nur um sicherzugehen, dass Sie all Ihre harte Arbeit gespeichert haben , reicht das aus. Für dieses eine C, gewinne das nächste. 92. Flag Pole und der P-Block: Ordnung, bevor wir weitermachen, werden wir noch ein Problem lösen, das damit zusammenhängt, dass unser Block und unsere Endlevel-Flagge nicht gut zusammenpassen. Das hat nicht unbedingt mit den Level-Einstellungen zu tun, aber es hat mit den anderen Blueprints zu tun, mit denen wir uns hier in letzter Zeit befasst haben mit denen wir uns hier in letzter Zeit befasst Ich werde das Problem vorführen und dann werden wir weitermachen und es beheben Das Problem ist, wenn ich an einem Block anhalten würde und wir uns dem Ende des Levels nähern, würdest du feststellen, dass sich die Münzen ändern. Sobald ich jedoch mit dem Fahnenmast am Ende des Levels interagiere, die Münzen einfach weiter Wir müssen unseren Flaggenmast am Ende der Ebene bei unserem Block um diesen Block zu stoppen Musik und den Blockeffekt in dem Moment rückgängig machen , in dem wir mit dem Fahnenmast interagieren Lass uns weitermachen und damit weitermachen. Wir werden innerhalb unseres Blockblocks beginnen , anstatt eine neue Variable zu erstellen. Dieser wird Level genannt werden. Dieses Mal werde ich den Variablentyp auf Levelendekennzeichnung, Objekttyp BP, Ebenenendekennzeichnung, Objektreferenz setzen auf Levelendekennzeichnung, Objekttyp BP, Ebenenendekennzeichnung . Und genau wie zuvor werden wir diese Instanz editierbar machen, indem wir entweder auf dieses Kästchen hier klicken oder indem wir auf dieses geöffnete Augapfelsymbol klicken Lassen Sie uns weitermachen und das kompilieren und speichern. Und wenn ich jetzt zu meinem Level zurückkehre und meinen Block ausgewählt habe, kann ich unser Levelende-Flag diesem Block zuordnen. Großartig. Nun, noch einmal, du wirst das für jede Instanz deines Blocks tun wollen , die du vielleicht in deinem Level hast. Okay. Nun, was wir hier tun können, ist in unseren BP-Block zu gehen und wir können diesen Blueprint auf unseren Level-Complete-Event-Dispatcher warten , den wir in unserem Level-End-Flag eingerichtet Jetzt hat unser Levelende-Flag wieder einmal Event-Dispatcher-Stufe abgeschlossen, die aufgerufen wird Wir müssen also nur sicherstellen, dass unser Block auf das Innere unseres Blocks wartet, das herauszoomt auf das Innere unseres Blocks wartet, das herauszoomt Ich werde unseren Sequenzknoten weit nach unten bringen. Vergiss diese Querdrähte. Wir werden hier unten noch eine Stecknadel hinzufügen. Dafür werden wir unsere End-of-Level-Flaggenreferenz hier unten einfügen. Halten wir die Steuertaste gedrückt und klicken Sie mit der linken Maustaste. Das wird unsere Flagge für das Ende des Levels einblenden. Wir werden diesen Typ in Level abgeschlossen wegziehen . Um unseren Level als abgeschlossen zuzuweisen, werden die beiden Knoten hinzugefügt. Lassen Sie uns das sofort verkabeln. Also, wieder einmal, bei dieser Einrichtung haben wir unseren BP-Block P hier. Halten Sie Ausschau nach diesem Level-Complete-Event-Dispatcher der in unserer Flagge am Ende des Levels läuft Sobald das passiert, werden wir das damit verbundene benutzerdefinierte Ereignis auslösen damit verbundene benutzerdefinierte Ereignis Die gute Nachricht ist, dass wir das eigentlich nur in den Code stecken wollen , der von unserem damaligen Vierpin kommt. Lassen Sie mich nur anmerken , dass das alles von dem damals sechspoligen Anschluss genau hier kommt. Ich werde unseren Sequenzknoten wieder an seinen Platz bringen , damit nicht zu viele Kabel sich kreuzen Okay, und wir wollen das im Grunde anschließen und es nicht vermasseln Viele Leute vermasseln das , indem sie dieses Kabel anschließen. Wir wollen, dass dieses Level-Complete-Event direkt in diese Vierschleife eingeht, unseren Block-Timer Beachten Sie also, dass wir an dieser Stelle des Kurses drei Dinge haben , die in jede Schleife einfließen . Dieser Block-Timer, er wird die Blöcke wieder in den Normalzustand versetzen und den Block ausschalten Musik, wann immer die Blockzeit vorbei ist. Also, was wir hier tun, ist, auf den Event-Dispatcher für Level Complete innerhalb des Level-Ende-of-Level-Flags Und sobald das passiert, verbinden wir uns einfach mit dieser Blockzeit über ein bisschen Skript, um alle Blöcke wieder auf den Normalzustand zu setzen Stoppen Sie die Musik. Noch einmal, genau hier, dieser Draht ist der, der sich für jede Schleife einhakt Mach weiter und kompiliere das. Lass uns weitermachen und speichern. Und als gute Designer werden wir das natürlich testen. Okay, wir werden bei diesem Block anhalten, wir werden sehen, wie sich diese Steine in den Münzen verändern, und wir werden diesen Block hören. Musik Okay, und sobald wir den Fahnenmast am Ende des Levels berühren , schalten sie alle zurück Diese Blöcke wurden wieder zu Blöcken, die diesen Block blockieren. Die Musik endet sofort. Gut gemacht, Leute. Das wird alles für diesen tun. Wir sehen uns im nächsten. 93. Stufenübergang: Willkommen zurück. In diesem Video zeigen wir, wie Sie von einem Level zum nächsten wechseln können, sobald wir das Level abgeschlossen haben. Damit wir nicht einfach auf unseren Bildschirm starren. Sobald alle Punkte tabellarisch aufgeführt sind, können wir tatsächlich unsere gesammelten Punkte, unsere Anzahl an können wir tatsächlich unsere gesammelten Punkte, unsere Anzahl an Leben, die wir derzeit haben, und unsere Anzahl an Münzen auf das zweite, dritte, vierte Level übertragen Leben, die wir derzeit haben, und unsere Anzahl an Münzen auf das , unabhängig davon, auf welches Level nun zu überprüfen, wo wir derzeit mit den Dingen stehen, Beginn des Kurses einen Spieler-Controller-Blueprint erstellt einen Spieler-Controller-Blueprint Und innerhalb unseres Spieler-Controller-Entwurfs , den ihr hier auf dieser Seite finden könnt, haben wir einige Münzen hinzugefügt, einige Punkte hinzugefügt, andere Leben hinzugefügt oder abgezogen Das ist genau hier unten und das wird in diesen Variablen wiederhergestellt Was wir nun tun müssen, ist, wenn wir von einer Ebene zur anderen wechseln, wir müssen diese Informationen an eine andere Art von Plan weitergeben , den wir hier in Kürze erstellen werden. Und dann werden wir diese Informationen zurück an unseren Spieler-Controller geben , sodass wir unsere Werte tatsächlich haben beibehalten und von der vorherigen Stufe auf unsere neue Ebene übertragen Um das zu tun, gehen wir jetzt in unsere Projekteinstellungen. Sie können hier in den Einstellungen oben rechts unter Projekteinstellungen darauf zugreifen . Hier gehen wir zu Karten und Modi. Und wir haben unsere verschiedenen Framework-Blueprints hier oben. Aber wir haben auch diesen speziellen, einen Spielinstanz-Blueprint hier unten Nun, das ist eine spezielle Art von Blueprint, der seine Werte nicht erhält, seine Variablenwerte werden zurückgesetzt solange dein Spiel weiterläuft Sie können also von Stufe eins, Stufe zwei, Stufe drei usw. wechseln , und alle darin enthaltenen variablen Daten können von einer Ebene zur anderen übertragen Ich werde hier eine neue Spielinstanzklasse erstellen , indem ich einfach auf diese Plus-Schaltfläche hier Und es wird mich fragen, wo ich es speichern möchte. Schauen wir uns unsere Plattform-Blueprints an. Ich lege das in meinen Ordner Framework of Blueprint und gehe als Namen zu BP Underscore Game Instance Und ich werde das speichern. Und jetzt sehen Sie wieder in meinen Projekteinstellungen, dass es eingefügt wurde Dies wird der Bauplan für die Spielinstanz , den wir hier verwenden werden Ich habe es geöffnet und was Sie hier sehen können, ist dass ich mein Blueprint-Panel habe, in dem ich einige Variablen erstellen kann, um die Informationen von unserem BP-Player-Controller zu speichern die Informationen von unserem BP-Player-Controller Wir werden hier im Wesentlichen die variablen Daten in unserem Player-Controller weitergeben hier im Wesentlichen die variablen Daten in unserem Player-Controller Wenn wir das Level beenden, werden wir diese Daten — Münzen, Leben und Punkte — an unsere Spielinstanz weitergeben . Dann werden wir es hier in unserer BP-Spielinstanz wieder zurückgeben . Lassen Sie uns diese drei Variablen erstellen. Die erste werden Münzen sein. Ich werde dies auf eine Ganzzahl setzen diese ausgewählt ist. Ich werde die Taste D zum Duplizieren ausführen. Ich nenne den nächsten Punkt ebenfalls ein Integer-Steuerelement D. Auch dieser Punkt wird Leben sein. Und wenn ich das kompiliere, können wir sehen, dass wir 00.0 als Standardwerte haben Eigentlich werde ich unsere Leben so ändern, dass sie standardmäßig drei sind, um dem zu entsprechen, was wir derzeit standardmäßig in unserem Player-Controller haben Und du wirst dich gleich hier sehen. Okay, das nächste, was ich tun werde, ist zu unserem Level hier zurückzukehren. Und ich möchte in unsere Blutdruckwerte gehen. Und das finde ich in meinem Blueprints-Ordner. Meine Blutdruckwerte, wo ist das? Hier ist es. Einstellungen für den Blutdruckpegel. Ich werde in diesen Entwurf springen und eine brandneue Variable erstellen Also werde ich auf diese Plus-Schaltfläche klicken. Und ich werde dieses Level zwei nennen. Und ich werde das in einen Namen ändern und du wirst dich gleich hier sehen. Ich werde diese Instanz auch editierbar machen. Wenn du auf das kleine Augapfelsymbol klickst, wird das Kästchen genau dort aktiviert. Ich kompiliere das Derzeit ist dies auf „Keine“ gesetzt, aber wir werden das gleich auffüllen. Ordnung, lassen Sie uns weitermachen und das sagen und zu unserem Level zurückkehren Jetzt habe ich meine Level-Einstellung irgendwo hier in meinem Level. Ich kann es tatsächlich sehen, ich habe es genau hier in meinem Viewport Aber wenn ich einfach Level in meinen Outliner eingeben würde, würde mir das helfen, es zu reduzieren . Da sind meine Einstellungen für den Blutdruckwert und jetzt können wir sehen, dass wir dieses Niveau noch vor uns haben. Die Variablenanzeige ist derzeit auf „Keine Jetzt wollen wir eigentlich ein anderes Level einbauen, zu dem wir gehen können. Dafür gehe ich in meinen Levels-Ordner und möchte eine zweite Ebene erstellen, eine weitere Ebene, zu der ich wechseln kann. Also werde ich einfach mit der rechten Maustaste darauf klicken. Ich werde das duplizieren und lassen Sie mich einfach weitermachen und es sofort speichern. Irgendwann werde ich wahrscheinlich in Level zwei springen und einige Änderungen daran vornehmen wollen , aber ich werde das als LV in meinen Detailfenstern eintragen Mein Level, das ich erreichen muss, ist LV-Unterstrich 02. Ja, ich muss das optisch ein bisschen anders aussehen lassen optisch ein bisschen anders aussehen Sonst wird es so aussehen, hätten wir das Level überhaupt nicht verändert. Okay, das nächste, was wir hier tun müssen, ist in unsere BP-Level-Einstellungen zu springen . Und wir werden ein Drehbuch ganz am Ende dieses Drehbuchs erstellen. also aus den fünf Teilen Ihres Sequenzknotens herauskommen , haben wir ein vollständiges Typskript für dieses Level. Wir haben diese Reduzierung der Zeit , wenn das Level abgeschlossen ist Wir werden genau hier auf diesem falschen Ast aufbauen genau hier auf diesem falschen Ast Hier werden wir nun einige variable Daten von einem Blueprint, unserem Player-Controller, an unseren Spielinstanz-Blueprint weitergeben variable Daten von einem Blueprint, unserem Player-Controller, an unseren Spielinstanz-Blueprint Also fange ich an, indem ich mit der rechten Maustaste in eine leere Stelle klicke Wir werden den Player-Controller davon abschalten. Ich werde das Ganze auf unseren BP-Player-Controller ziehen und streamen. Das ist der Player-Controller, den wir in diesem Projekt verwenden , der in unseren Projekteinstellungen eingerichtet ist. Bp Player-Controller genau dort. Also, ich will nicht, ich will da nicht wirklich einen Hinrichtungs-Pin verdrahten. Ich weiß, dass das der Player-Controller ist. Mein Projekt nutzt das, was ich hier tun kann , um zu verhindern, dass ich mich hier verkabeln muss. Ich klicke einfach mit der rechten Maustaste darauf und konvertiere einen reinen Cast, bei dem das Ein- und Ausziehen der Ausführungs-Pins entfällt. Damit kann ich mich dann hier rausziehen und meine Münzen holen. Hol dir Münzen. Wir werden diese variablen Daten aus unserem Player-Controller extrahieren. Wenn wir die Münzen holen, werden wir Punkte bekommen. Wir werden Leben bekommen. Wir werden diese Daten an unsere Spielinstanz Blueprint weitergeben unsere Spielinstanz Blueprint Wie machen wir das? Klicken Sie hier mit der rechten Maustaste in eine leere Stelle. Ich werde sagen, Spielinstanz abrufen. Wir werden das in die Länge ziehen. Und wir haben eine namens BP-Spielinstanz erstellt. Auch hier. Ich kann mit der rechten Maustaste auf diesen Knoten klicken. Lassen Sie mich hier ein bisschen nach oben zoomen. Klicken Sie mit der rechten Maustaste. Wir werden das in eine reine Besetzung umwandeln. Anstatt diese Daten zu erhalten, werden wir diese Daten festlegen. Zieh die eingestellten Münzen heraus. Lass mich das ein bisschen nach unten verschieben. Alle drei. Da haben wir's. Und wir werden Punkte setzen und wir werden Leben festlegen. Worauf wollen wir diese Werte also festlegen? Worauf wollen wir sie setzen? Was auch immer gerade in unserem Player-Controller vorhanden ist. Also werden wir unsere Münzen hier einstecken, unsere Punkte hierher und unser Leben hierher. Wir geben diese Daten von einem Plan zum anderen weiter. Jetzt müssen wir eine Ausführungsleitung durch diese verschiedenen Setter-Knoten Also können wir das von diesem falschen Zweig aus machen. Also werden wir so vorgehen, genau hier, hier und hier. Und wir sind noch nicht ganz fertig. Wir werden von hier aus aufbauen. Wir werden unserem Spiel tatsächlich vorschreiben , welches Level wir als Nächstes erreichen wollen. Tun Sie das, wir werden hier eine kleine Verzögerung hinzufügen. Also werde ich die Taste D gedrückt halten und mit der linken Maustaste klicken, wir fügen eine Verzögerung hinzu und ich werde eine Verzögerung von sagen wir 2 Sekunden fest codieren . Dann bauen wir hier einfach nach rechts auf, da ist ein Knoten, der nach seinem Namen Open Level heißt. Und hier können wir den Levelnamen eingeben, wie er in dieser Variablen angegeben ist. Also ziehe ich das einfach per Drag & Drop direkt oben drauf. Und Sie können sehen, dass der Standardwert hier im Detailbereich keiner ist. Ich werde weitermachen und das sofort kompilieren. Aber denken Sie daran, dass wir dies so eingestellt haben , dass es von der Instanz bearbeitet werden kann. Also hier in unseren Level-Editor-Level-Einstellungen haben wir das genau hier ausgewählt Wir spezifizieren, dass diese Variable mit dem LV-Unterstrich zwei aufgefüllt werden soll, genau diese Ebene Okay, aber wir sind noch nicht fertig. Wir müssen uns tatsächlich an unseren Spielmodus-Blueprint halten, um unser Setup hier fertig zu stellen Also gehe ich zu unserem Ordner mit den Blueprints für Dritte. Wir verwenden unseren BP-Third-Person-Spielmodus BP-Third-Person-Spielmodus Also werde ich weitermachen und das öffnen. Hier haben wir ein Antwortskript im Gange. Ich werde ein leeres Feld finden, vielleicht ein bisschen unten. Lassen Sie mich nach oben zoomen und ich werde ein brandneues benutzerdefiniertes Ereignis erstellen. Klicken Sie mit der rechten Maustaste auf eine benutzerdefinierte Ereignissuche. Und wir werden dieses benutzerdefinierte Ereignis als Übertragung von Spielstatistiken bezeichnen . Okay, was wir hier tun werden , ist in diesem speziellen Blueprint, wir werden unsere Daten von unserer Spielinstanz zurück an unseren Spieler-Controller übergeben Spielinstanz zurück an unseren Spieler-Controller Im Grunde wird unser Spielmodus-Blueprint jedes Mal, wenn wir ein brandneues Level zwei öffnen , wenn wir ein brandneues Level zwei , von vorne beginnen Unser Begin-Spiel wird stattfinden. Und was wir von E Begin Play hier oben aus machen werden , ist, dass wir irgendwann dazu aufrufen werden dieses benutzerdefinierte Event gestartet wird. Und dabei werden wir allen Variablen innerhalb unserer Spielinstanz mitteilen, dass allen Variablen innerhalb unserer Spielinstanz mitteilen sie dann zurück auf unseren Player-Controller übertragen werden. Lass uns weitermachen und das einrichten. Ich werde rechten Maustaste in eine leere Stelle klicken hier mit der rechten Maustaste in eine leere Stelle klicken, um die Spielinstanz abzurufen. Wir ziehen uns hier hin und casten auf unsere BP-Spielinstanz. Ich werde noch einmal mit der rechten Maustaste darauf klicken und eine reine Besetzung umwandeln. Eigentlich nein, ich werde das nicht eine reine Besetzung umwandeln. Ich werde es als unreinen Guss belassen, diese Ausführungsdrähte durchzuverkabeln , nur um zu zeigen , dass Sie das hier so oder so machen könnten Und dann werde ich weiterziehen und wir werden Münzen bekommen, wir werden Leben bekommen, wir werden Punkte bekommen Wir müssen das alles auf unseren Player-Controller übertragen . Rechtsklick, Player-Controller holen. Wir ziehen das in die Länge, wir werden zwei BP-Player-Controller einsetzen. Ich wandle diesen in einen reinen Cast um, indem ich mit der rechten Maustaste klicke. Konvertiere auf diese Weise in eine reine Besetzung. Dann ziehen wir das und wir setzen Münzen, bewegen das nach oben, legen Leben fest, du hast es erraten Wir werden solche Punkte setzen und dafür sorgen, dass all diese Kabel von dort nach dort nach dort verlaufen Und vergiss nicht, diese Daten von deiner Spielinstanz zurück auf deinen Player-Controller zu übertragen . Noch einmal, dein Spielmodus-Blueprint. Wenn ich auf Klassenstandards klicke, bestimmt dein Spielplan welchen Spielercontroller du verwenden wirst, unseren BP-Spielercontroller Also geben wir all diese Daten zurück an unseren BP-Player-Controller Okay, ich klicke mit der linken Maustaste und ziehe das alles, tippe auf die C-Taste und mein Kommentar lautet: Trends, Spielstatistiken von der Spielinstanz BP zurück zum Spielercontroller BP. Großartig, ausgezeichnet. Ich ändere hier auch meine Comic-Farbe auf Schwarz. Jetzt müssen wir dieses benutzerdefinierte Ereignis tatsächlich einberufen , da es nicht aufgerufen wird und keine dieser Datenübertragungen stattfinden, es sei denn, wir rufen das Kundenereignis ein. Ordnung, um das zu tun, müssen wir nur dorthin gehen , wo unser Event gerade beginnt. Wir haben unsere verschiedenen Antwortskripte. Ich werde das nur ein bisschen untermauern. Ich werde also eine Sequenznote hinzufügen, indem ich die S-Taste gedrückt halte und mit der linken Maustaste klicke. Ich werde so verkabeln. Und ich werde so verkabeln. Und alles, was ich mit diesem Null-Pin machen werde, ist , das benutzerdefinierte Ereignis als Übertragung der Spielstatistiken zu bezeichnen. Also das wird diesen Anruf tätigen. Wenn ich darauf doppelklicke, wird es das hier aufrufen. Ich hätte, wenn ich ein wirklich hässliches Kabel haben wollte, statt diesen ganzen Aufbau zu haben, unser maßgeschneidertes Event so auszurufen, ich hätte einfach ein Kabel bis ganz unten drüben können, und das würde genauso funktionieren. Aber ich möchte, dass mein Code ein bisschen sauberer aussieht. Etwas anderes möchte ich hier erwähnen , bevor wir das testen Lassen Sie uns weitermachen und kompilieren und speichern. Wisst noch einmal, dass unser Spielmodus-Blueprint immer dann ausgelöst wird, wenn wir unser Level beginnen Was ich jetzt getan habe, oder ich habe mich bei der Erstellung unserer Spielinstanz selbst ertappt, ist, dass oder ich habe mich bei der Erstellung unserer Spielinstanz selbst ertappt, ist, ich meine Leben standardmäßig auf drei gesetzt habe Und der Grund, warum ich das getan habe, ist , dass dieses Event in unserem Spielmodus beginnt. Das Spiel wird sogar für Level Nummer eins aufgerufen. Das wird also als Übertragung des Spielstatus bezeichnet werden . Ich möchte also sicherstellen, dass unsere drei Leben, die von unserer Spielinstanz kommen von unserer Spielinstanz auch an unseren Spieler-Controller weitergegeben werden. Ordnung, eine Sache möchte ich noch tun, bevor ich das teste. Ich muss hier aus Stufe eins springen und tatsächlich zu Stufe zwei gehen, damit es visuell etwas anders aussieht, sodass Sie sehen können , dass die Dinge tatsächlich passieren. Also werde ich hier einfach auf Stufe zwei doppelklicken. Es wird sagen, hey, willst du alles speichern, was du bisher geändert hast? Lassen Sie uns Ausgewählte speichern. Und das ist nur ein zusätzlicher Speichervorgang , da er aus irgendeinem Grund erscheinen wird. Da haben wir's. Und ich werde mein Level zwei auch hier speichern. Spar dir das. Okay, lass uns zu Level zwei gehen. Ich werde darauf doppelklicken, um es zu öffnen. Ich werde diese automatischen Einstellungen gleich hier deaktivieren. Lass uns weitermachen und das speichern. Und hier sind wir in Level zwei. Es wird einen Start für meine Spieler geben , den ich gleich gegen Ende setze. Lassen Sie mich hier einfach einige Assets löschen . Wir werden löschen. Löschen. Löschen. Löschen, löschen. Also werden wir hier eine sehr karge Stelle haben wir für Level zwei spawnen Das wird unser visueller Unterschied zwischen Level eins und Level zwei Lassen Sie uns weitermachen und Stufe zwei speichern, dann gehe ich zurück zu Stufe eins, indem ich unter Datei, Letzte Ebenen, Stufe eins gehe. Ich werde diese temporären Objekte nicht speichern. Los geht's. Hier sind wir, wieder in Level eins. Lass uns weitermachen und es versuchen. Okay, und bevor ich das Level tatsächlich abschließe, sollte ich ein paar Punkte sammeln. Ich habe hier ein paar Münzen. Okay, da habe ich drei Leben, vier Münzen. Und mal sehen, wie viele Punkte wir am Ende haben. Drei Leben, vier Münzen und ein paar tausend Punkte hier, 4.500 Punkte Schauen wir uns also an, ob diese Daten auf Stufe zwei übertragen werden. Hier sind wir auf Level zwei und Sie können sehen, dass wir drei Leben, vier Münzen und 4.500 Punkte haben vier Münzen und 4.500 Punkte Dieses System funktioniert in der Tat. Ordnung, Leute. Das wird alles für diesen tun. Wir sehen uns im nächsten. 94. Wolken: Willkommen zurück. Nun, bis zu diesem Punkt des Kurses haben wir uns hier so ziemlich ausschließlich auf das Kern-Gameplay unseres Mario-Levels konzentriert , das muss zuerst geklärt werden. Aber irgendwann, wenn du genug Gameplay-Elemente an Ort und Stelle hast , kannst du deine Aufmerksamkeit darauf richten , dein Level zu verbessern. Darauf werden wir uns in diesem Abschnitt konzentrieren. Und wir werden damit beginnen, unserem Hintergrund hier einige zufällige Wolken hinzuzufügen . Und ich spreche nicht von diesen wunderschönen, unwirklichen Wolken am Himmel Ich spreche von diesen Wolken, die eher Mario-zentriert sind. Wenn ich jetzt einfach auf die G-Taste tippe, zeige ich Ihnen im Wesentlichen was wir hier bauen werden. Was ich habe, ist eine Kiste, ein Volumen, wenn Sie so wollen, in dem wir nach dem Zufallsprinzip diese verschiedenen Wolken Und das sind alles zufällige Größen und wir können wählen, wie viele wir in dem Raum haben möchten Es wird ein sehr flexibler Plan sein , der es uns ermöglicht , Wolken in jeder Region unseres Himmels hinzuzufügen , die wir möchten Das ist es also, was für diesen Fall auf uns zukommt. Okay, zurück in unserer Arbeitsversion des Projekts werde ich ein paar Texturen importieren, die nicht im ursprünglichen Texturpaket enthalten waren, obwohl ich zurückgehen und diese im ursprünglichen Texturpaket verfügbar machen werde. Diejenigen, die sich diesen Kurs zu einem späteren Zeitpunkt ansehen , sollten sie bereits hier finden. Aber ursprünglich hatte ich sie nicht hier, also werde ich weitermachen und sie in meinen Inhaltsbrowser bringen . Je nachdem, wo Sie sich diesen Kurs ansehen, kann ich auch diese speziellen Texturen, die ich gleich hier erwähnen werde, diesem Video beifügen . Um es kurz zu machen, Sie müssen sicherstellen, dass Sie diese beiden Texturen importieren. Ich habe eine Wolke eins und eine Wolke zwei. Ich werde nur eines davon verwenden, aber ich werde dir zwei geben, damit du auswählen kannst , welches davon du hinzufügen möchtest. Ich ziehe sie in meinen Texturen-Ordner und los geht's. Ich habe quasi diese NES-Version der Cloud. Ich werde diese Version der Cloud verwenden. Zuallererst muss ich die Textur, die ich hier verwenden möchte, in ein Material umwandeln Textur, die ich hier verwenden möchte, in ein Material Tatsächlich verwandle ich beide in Material also beide auswähle und die Strg-Taste gedrückt halte, kann ich schreiben, darauf klicken und Materialien aus diesen Texturen erstellen Lassen Sie uns also weitermachen und das tun. Hier sind meine beiden Materialien, die es gerade erstellt hat. Ich ziehe diese Material-Assets, die Sie dort sehen können — Materialien, weil sie unten beschriftet sind — per Drag-and-Drop diese Material-Assets, die Sie dort sehen können — Materialien, weil sie unten beschriftet sind in meinen Materialordner. Ich verschiebe sie hierher und suche dann nach meinem One-Cloud-Material, meinem T-Cloud-Material. Mit dem möchte ich in meinem Projekt arbeiten. Aber auch hier gilt: Wenn Sie diese NES-Cloud der alten Schule wollen, können Sie auch diese verwenden. Wir müssen nur darauf doppelklicken, um es zu öffnen und hier ein paar Änderungen vorzunehmen. Für den Anfang werde ich diese Wolke hier in meiner Vorschau nicht auf einer Kugel platzieren Sie haben diese kleinen Symbole in dieser Vorschau hier. Wenn Sie sich also dafür entscheiden würden, es in ein Flugzeug zu bringen, können Sie im Wesentlichen sehen, wie das aussehen wird. Jetzt siehst du diese komische Streifenbildung im Hintergrund. Mach dir darüber keine Sorgen Wir werden das hier ein wenig korrigieren, weil wir unseren Master-Material-Node im Bereich Blend Mode auswählen werden. Wir werden das von undurchsichtig auf Masken umstellen. Auf diese Weise können wir dann unseren Wert hier, den Alphawert dieses Abschnitts, in die Eingabe der Opazitätsmaske Und das wird die seltsamen Streifeneffekte im Hintergrund beseitigen die seltsamen Streifeneffekte im Hintergrund Jetzt beabsichtige ich, diese Wolken nur aus einem bestimmten Winkel sichtbar zu machen Aber wenn ich nach hinten fliege, merke ich, dass du es nicht sehen kannst. Das wird also völlig optional sein. Wenn Sie hier ein zweiseitiges Material mit ausgewählten Master-Materialknoten erstellen möchten, können Sie dieses Kästchen für zweiseitig markieren. Dadurch können Sie sie von beiden Seiten sehen. Nur zu Ihrer Information, in Ordnung, damit werde ich weitermachen und das speichern und es dann wieder hier in meinem Level-Editor schließen wieder hier in meinem Level-Editor Ich gehe zum Ordner Blueprints und erstelle eine neue Schauspielerklasse, Blueprint, indem ich mit der rechten Maustaste auf Blueprint-Klasse indem ich mit der rechten Maustaste auf Blueprint-Klasse Es wird eine Schauspielerklasse sein weil wir diese Klasse in unserem Level platzieren werden , und ich werde sie einfach BP Underscore Clouds nennen das ausgewählt ist, tippe ich auf die Leertaste, um es zu öffnen Und ich werde hier einfach zwei Komponenten hinzufügen. Die erste Komponente , die ich hinzufügen werde , wird ein Box Collider sein, der bei der Boxkollision nach unten scrollt Und ich werde das mein Spawngebiet nennen. Dies wird im Wesentlichen den Bereich definieren , in dem ich einige Wolken spawnen möchte Jetzt, wo dies ausgewählt ist, werde ich die Größe der Box noch nicht wirklich bestimmen. Ich werde sie in unserem Konstruktionsskript festlegen. Aber ich werde unsere Linienstärke etwas dicker einstellen , sodass dieser Bereich leichter zu erkennen ist , sobald wir diese Stelle in unserem Level haben. Also die Linienstärke hier, ich werde sie auf 20 ändern, was vorerst sehr sperrig aussehen wird Aber sobald wir unser Spawngebiet hier erweitert haben, wird es viel einfacher sein, es zu sehen, wenn es riesig ist Als Nächstes wähle ich unsere Standard-Szenen-Root-Komponente Das ist diese Komponente genau hier. Noch einmal dieses kleine Symbol, weil ich eine weitere Komponente hinzufügen möchte, der eine weitere Komponente angehängt habe. Und das wird zum Beispiel das Tippen sein, zum Beispiel statisches Mesh. Wenn das ausgewählt ist, nenne ich es Clouds. Und dann drüben im Bereich „Details“ füge ich es als unser statisches Mesh ein. Ein Flugzeug. Ich werde dieses Flugzeug wählen. Das wird aus dem Ordner Engine Basic Shapes stammen. Und dann für das Material, das das Material sein wird, an dem ich gerade hier gearbeitet habe , Wolke eins. Jetzt sehen wir hier noch nichts, weil wir Instanzen davon über unser Konstruktionsskript erzeugen werden, das nur ein bisschen reinkommen wird Aber ich muss das mit Blick auf unser Kamera-Setup machen. Und um das zu tun, und das habe ich durch Versuch und Irrtum hier festgestellt, unsere Rotation hier im X auf 90 ändern, müssen wir unsere Rotation hier im X auf 90 ändern, sodass die Flugzeuge mit dem Wolkenbild darauf unserer Kamera zugewandt sind . Etwas anderes, das ich hier gleich tun werde , befindet sich im Detailbereich. Ich tippe einfach Schatten ein und schalte die Option „Schatten werfen“ aus. Das schont unsere Leistung ein wenig und verhindert, dass seltsame Schatten aus unserer Cloud geworfen werden. Das ist also optional, aber ich würde das gerne tun. Okay, als Nächstes werden wir einige Variablen hinzufügen, die erneut in unserem Konstruktionsskript verwendet werden . Das alles wird im Konstruktionsskript erledigt, Skript, das während der Entwurfszeit ausgeführt wird , nicht während der Laufzeit. Klicken Sie auf unsere Variablen. Die erste, die wir hier hinzufügen werden, heißt Instances to Spawn So viele Cloud-Instanzen wollen wir haben. Dies wird eine Ganzzahl sein. Die nächste Datei, die ich hinzufügen werde, indem ich auf diese Schaltfläche mit dem Plus der Variablen klicke, wird Spawn Extent X heißen. Das wird ein Float sein Dies wird zusammen mit den beiden anderen Variablen, die hier folgen werden , die Größe unseres Spawnbereichs bestimmen zusammen mit den beiden anderen Variablen, die hier folgen werden , die Größe unseres Spawnbereichs Das wirst du gleich hier sehen. Wenn das ausgewählt ist, mache ich einfach Steuerung D, um es ein paar Mal zu duplizieren. Ich gehe zurück und benenne das um. Dieser wird Spawn Extent Y heißen und dieser wird Spawn Extent Z heißen. Alles klar, den nächsten werden wir hier hinzufügen, indem wir Control D drücken, um das zu duplizieren, heißt Scale Min und dann Control D. Dieser wird Scale Max heißen und er wird nur eine Mindest- und Maximalgröße bestimmen Und wir werden zwischen diesen Optionen nach dem Zufallsprinzip wählen, um das in unseren Cloud-Instanzen In Ordnung, lassen Sie uns weitermachen und kompilieren, sodass wir hier einige Standardwerte für die Instanzen festlegen können , die erzeugt werden sollen Ich werde das auf 25 setzen, das wird ein ziemlich guter Startwert sein Kreuzen Sie dieses Kästchen an, zum Beispiel essbar. Das macht es so, dass wir diese Eigenschaft, diese Variable, im Leveleditor Spawn-Ausdehnung x bearbeiten können diese Variable, im Leveleditor Spawn-Ausdehnung . Ich setze das einfach auf, wir sagen gleich von Anfang an 5.000. Ich werde diese Instanz auch editierbar machen, Spawn-Ausdehnung Y, also auch Lass uns das auf, ich weiß nicht, 1.000 setzen und dann Spawn-Ausdehnung z. Wie hoch soll das in die Luft reichen Wir sagen 2000, wodurch diese Instanz auch editierbar ist. Skalieren Ich werde diese Instanz auch editierbar machen. Und wir sagen, der Maßstab wird dreimal so groß sein wie der Flugzeugmaßstab X wird das hier auf das Zehnfache der Größe unseres normalen Flugzeugs einstellen . Und wir werden es auch so einstellen , dass es für die Instanz essbar ist. Beachten Sie, dass all diese Augäpfel angekreuzt sind, was bedeutet, dass sie als Instanz essbar sind, was bedeutet, dass wir sie im Level-Editor bearbeiten können, was wir gleich tun werden. Lassen Sie uns weitermachen und zu unserem Konstruktionsskript übergehen. Hier werden wir das gesamte Skript ablegen, um zu bestimmen, in wie vielen Wolken wir spawnen wollen, die Größe unseres Spawnbereichs und auch die Größe unserer Wolken Lassen Sie uns also zunächst die Größe unseres Spawnbereichs bestimmen. Wir haben also diesen Spawnbereich, ziehen wir ihn in unser Diagramm Lassen Sie mich einen hier ein bisschen vergrößern. Wir ziehen das in die Länge und geben dann int ein. Lassen Sie uns jetzt den Umfang der Box festlegen, nur um im Wesentlichen das zu verdeutlichen, was wir hier tun, wir haben diese Spawn-Bereichs-Komponente hinzugefügt Das ist ein Box-Trigger, wir wollen im Grunde die Ausdehnungen festlegen, diese X-, Y- und Z-Ausdehnungen, die standardmäßig auf 32 gesetzt sind Das können wir jetzt tun, indem von hier rückwärts ziehen und Make Vector eingeben wir von hier rückwärts ziehen und Make Vector eingeben, der es in seine X-, Y - und Z-Komponenten aufteilt Y Und wir haben Variablen , die die X-, Y- und Z-Werte bestimmen werden die X-, Y- und Z-Werte bestimmen Lassen Sie uns diese also entsprechend auf die richtigen Pins ziehen und dort ablegen die richtigen Pins Jetzt sind unsere Spawnbereiche und die Größe der Boxen hier nicht 302-30-2302, sondern im Jahr 2000 eher 5.000 mal 1.000 Aber auch hier werden wir sie im Level-Editor bearbeiten können , sodass wir sie im Level-Editor ändern können Als Nächstes wollen wir darauf hinarbeiten , hier Instanzen unserer Wolken zu erzeugen, also ziehen wir unsere Wolken rein Und wir werden das in die Länge ziehen und eine Instanz hinzufügen wollen und eine Instanz hinzufügen Nun stellt sich die Frage, wie vielen dieser Instanzen wir spawnen wollen Und wo wollen wir diese dann spawnen? Dafür werden wir eine Viererschleife verwenden, genau dazwischen klicken, mit der rechten Maustaste klicken und eine Viererschleife einfügen Eine einfache Viererschleife reicht aus. Also werden wir so und so fließen. So wird das funktionieren. Wir werden hier unseren ersten Index auf Eins setzen, sodass wir mit der Nummer eins anfangen werden zu zählen. Und unser letzter Index wird durch die Anzahl der Instanzen bestimmt, die erzeugt werden sollen. Also werden wir das auf den letzten Index setzen. Das funktioniert also während der Entwurfszeit hier, wann immer wir das in unser Level bringen, wird es die Größe der Box festlegen und dann werden wir diese vier Schleifen treffen. Im Grunde machen wir das also, den Loop-Körper hier 25 Mal, angefangen bei der Zahl eins, dann gehen wir über 234 bis hin zu unserem letzten Index, 25. Wir werden hinzufügen , eine Instanz hinzufügen, eine Instanz hinzufügen, beginnend bei der Nummer eins bis zur Zahl 25. Wir führen das immer wieder aus und wieder und wieder. Also müssen wir das jetzt sagen , wo wir spawnen wollen? Dafür ziehen wir also von unserer Instanztransformation nach hinten Wir werden hier make transform für den Standort unserer Wolken eingeben hier make transform für den Standort unserer Wolken Was wir tun werden , ist unseren Spawnbereich so einzufügen unseren Spawnbereich so Dann ziehen wir das raus und ermitteln die Größe der Box. Dann ziehe ich davon ab und tippe einen zufälligen Punkt in das Begrenzungsfeld ein Standardmäßig wird es in unseren eingesteckt, das ist nicht der Mittelpunkt, den wir hier haben wollen. Wir wollen, dass unsere Box-Größe hier in den unteren Pin gesteckt wird, also die halbe Größe für die Mitte unserer Bounding-Box Wir können hier einfach von unserem Spawnbereich wegziehen und get relative location wie folgt eingeben relative location heißt im Grunde, wir wollen hier einen Punkt innerhalb unseres Spawn-Bereichs, einen Punkt innerhalb unseres Spawnbereichs, einen Punkt dort, wo wir lokal spawnen sollten, eine Instanz eine Nun zur Waage, wir haben Ich halte die Taste gedrückt und ziehe sie auf eine maximale Skala. Halten Sie die Taste gedrückt und stellen fest, dass wir einen zufälligen Wert zwischen unserem Mindest- und unserem Maximalwert haben wollen . Und dafür klicke ich mit der rechten Maustaste auf Float in Range ist das, wonach wir jedes Mal suchen wir in einer Instanz unserer Cloud spawnen Wir werden es auch in einem zufälligen Maßstab spawnen. Hier, ich werde das einfach hier einstecken. Es wird unseren Float-Wert in einen Vektor umwandeln , wenn es beispielsweise den Wert Vier wählt , weil dieser zwischen dem Minimum und dem Maximum liegt. Dadurch wird die Skala von vier so eingestellt, dass sie für die X-, Y- und Z-Werte, aus denen der Skalenvektor besteht, einheitlich ist. Das wird unser letztes Drehbuch hier sein. Lass uns weitermachen und diesen Spielstand kompilieren, dann gehen wir zu unserem Level-Editor und bringen einen davon in unser Level. In Ordnung, wir ziehen unsere Wolken hier raus. Bevor ich das mache, möchte ich das eigentlich einstellen. Ich habe derzeit meine beiden D-Snap-Einstellungen aktiviert. Das bedeutet das Blau da drüben. Ich lege es in meine äußerste Rückenschicht, und vielleicht möchte ich es sogar dort drüben platzieren. Aber ich fange dort an. Also meine extreme hintere Ebene, wenn ich noch einmal darauf klicke, kann ich zu Ebenen bearbeiten gehen. Ich kann sehen, dass die extreme Hintergrundebene auf der Y-Achse auf minus 1.000 gesetzt wird . Also lass uns weitermachen und das hineinziehen. Und während ich es verschiebe, können Sie sehen, dass jedes Mal, wenn Sie an diesem Plan etwas ändern, das Konstruktionsskript ausgeführt wird Deshalb sehe ich immer wieder dieses unterschiedliche Zufallsmuster. Denn jedes Mal, wenn ich es ein bisschen verschiebe, wird das Konstruktionsskript erneut ausgeführt. Okay. Und da habe ich es innerhalb meines Levels platziert, offensichtlich keine gute Platzierung für den Gecko Sie können sehen, wo das Cloud-Instanzen innerhalb dieses Bounding-Box-Bereichs erzeugt Cloud-Instanzen innerhalb dieses Bounding-Box-Bereichs Lassen Sie mich das ein bisschen zurückziehen , weil ich damit nicht wirklich zufrieden war Okay, jetzt können Sie sehen, wie ich, wenn dies im Detailbereich ausgewählt ist, eine Reihe von Instanzen angeben kann. Ich kann jede dieser verschiedenen Eigenschaften ändern. Also setze ich die Anzahl der Instanzen auf 100, was wahrscheinlich verrückt sein wird. Ich kann die X-Ausdehnung des Spawns ändern, breiter machen, also kann ich die Y-Ausdehnung ändern, ein bisschen höher machen, also die Z-Ausdehnung, ich kann das auch ändern und sie ein bisschen größer machen ein bisschen Entschuldigung, Y macht es, weißt du, breiter, in unserem Fall macht Z es größer. Und da hast du's. Sie können das einfach entsprechend positionieren damit Sie einige Wolken am Himmel haben können. Fummeln Sie damit nach Ihren Wünschen. Aber jetzt haben wir einen zufälligen Wolkengenerator. In der Tat ziemlich süß. Ordnung , Leute, das reicht für diesen. Hier ist das Drehbuch. Nochmals, wenn du das Video hier pausieren willst , sehen wir uns im nächsten. 95. Levelstücke: Willkommen. In diesem Video werden wir hier lernen, wie man diese größeren Ziegelsteine erstellt, da sie den Großteil unseres Levels und wahrscheinlich viele Level ausmachen . Der Grund, warum ich das hier angeben werde ist, dass sie so konstruiert sein müssen , dass, wenn man eines dieser Materialien so drauflegt, Schmutz, es nicht gestreckt aussieht. Und nur um diesen Punkt zu verdeutlichen, wenn ich es so gestalten sollte, wie die Leute es wahrscheinlich denken , lassen Sie mich das ein wenig vergrößern. Ich werde hier draußen einen einfachen statischen Mesh-Würfel platzieren. Und ich werde es einfach auf eine riesige Größe skalieren . diese Weise denken viele Leute, dass dies geschaffen werden könnte. Einer dieser riesigen Steine. Ich werde nur ein schmutziges Material darauf legen. Wir haben unser schmutziges Material aus unseren Ordnern hier. Jetzt können Sie sehen, dass es hier sehr gestreckt aussieht. Während es hier nicht gestreckt aussieht, sieht es gefliest aus. Also das werden wir in diesem Video lernen , wie man es kreiert. Wie man ein größeres Blockstück wie dieses macht, über dem sich kein gedehntes Material befindet. Dies wird im Wesentlichen dazu führen, dass wir unsere eigenen statischen Netze erstellen Wir werden also in unserer Arbeitsversion des Kurses zeigen, wie das geht in unserer Arbeitsversion des Kurses zeigen, wie das Bei meinem Work-in-Progress-Level können Sie also sehen, dass ich diese riesige Plattform hier in meinem Viewport ausgewählt habe. Drüben im Outliner Bei diesem Bodenstück handelt es sich um einen statischen Netzschauspieler. Wenn ich also unseren Schmutz auf dieses Schmutzmaterial auftragen würde, würde es sehr gestreckt aussehen. Und wieder einmal, das ist nicht das, was wir wollen. Ich werde das löschen, tschüss. Und das werden wir durch einen Geometriepinsel hier oben im Schauspielerpanel des Ortes ersetzen . Und falls Sie das Panel mit den Schauspielern des Ortes nicht sehen , klicken Sie hier. Platzieren Sie das Schauspielerpanel. Wir werden zu Geometriepinseln übergehen. Wir werden einen Kastenpinsel hinzufügen. Ich werde das einfach reinziehen. Lassen Sie mich das hier auf meiner Hauptebene machen, und ich werde vorerst nicht zu genau angeben, wo das platziert wird. Dann drüben im Detailbereich, anstatt dies mit meinem Skalierungswerkzeug wie diesem zu skalieren, werde ich stattdessen die Pinselgröße im Detailbereich einstellen . Wie lange möchte ich das machen? Nun, ich schätze, ich werde den X-Wert auf etwa 20.000 setzen den X-Wert auf , etwas sehr langes wie das, Y. Ich setze das auf etwa 2000. Das Z, ich werde es auf etwas wie, ich weiß nicht, 5.000 oder 500 setzen ich weiß nicht, 5.000 . Lass uns gehen. So etwas in der Art. Noch einmal, ich werde das hier ein bisschen herunterschrauben, versuchen, unsere Spielbasis so zu gestalten, wie wir sie vorher hatten Ich werde das noch ein bisschen verfeinern. Okay, was ich jetzt tun muss, ist diesen Box-Pinsel, den man als Brush Actor bezeichnet, in ein statisches Mesh umzuwandeln als Brush Actor bezeichnet, in ein . Die Art und Weise, wie das gemacht werden kann, befindet sich den erweiterten Pinseleinstellungen. Wir haben die Möglichkeit, daraus ein statisches Mesh zu machen. Auch das war die Verbesserung der Pinseleinstellungen, um ein statisches Mesh zu erstellen. Also werde ich das tun. Dabei wird es mich fragen, in welchem Ordner ich das sagen möchte. Lass mich also in meinen Platformer-Ordner gehen. Ich werde mit der rechten Maustaste darauf klicken und einen neuen Ordner erstellen Und ich werde dieses Level einfach Pieces Level Underscore nennen. Ich nenne es Level Underscore Meshes. Und ich nenne das einfach meinen Beitrag Underscore One. Das wird gut genug für mich sein, um das statische Netz zu erstellen Jetzt wird daraus ein statischer Mesh-Akteur. Nun, wenn ich mein Material darauf auftragen würde, lass uns weitermachen und nach Schmutz suchen. Es wird es auf eine geflieste, gut aussehende Weise darauf auftragen . wird es derzeit ein weiteres Problem geben Damit wird es derzeit ein weiteres Problem geben, nämlich das zu demonstrieren. Ich werde das nur ein bisschen nach unten verschieben , um sicherzustellen, dass ich meinen Startdarsteller habe Startdarsteller , der ungefähr das richtige Level hat. Okay. Meine Spieler fangen an, Schauspieler zu werden, okay? Und das Problem wird sein , dass das Hineinspringen und Spielen darin besteht, dass mein Charakter durch die ganze Welt fällt. Und der Grund dafür ist, dass, wenn wir einmal ein statisches Netz aus einem Kastenpinsel erstellt haben, es nicht zu Kollisionen kommt. Um das zu beheben, gehe ich zu der Stelle, an der sich dieses statische Mesh jetzt in meinem Inhaltsbrowser befindet Und das kann ich machen, wenn es ausgewählt ist. hier auf diesen Ordner klicke, wird mir angezeigt, wo in meinem Inhaltsbrowser existiert. Ich werde darauf doppelklicken, um ihn zu öffnen. Aber bevor ich das mache, stelle ich fest, dass in diesem Tooltip in Orange Kollision Primsero steht , was bedeutet, dass darauf keine Kollision angewendet wurde Wir werden eine Kollision manuell anwenden. Ich werde darauf doppelklicken, um es zu öffnen. Und wenn wir hier unter dem Kollisionsbereich wieder hineinzoomen , können wir verschiedene Kollisionsarten hinzufügen Da es sich um eine einfache Kastenform handelt, muss ich bei Kollision nur noch eine einfache Box-Kollision hinzufügen Dabei werde ich es hinzufügen. Sie werden jetzt diesen grünen Umriss sehen dieses Netz umgibt. Darauf wird jetzt die Kollision angewendet. Das ist der grüne Umriss. Nun noch etwas, das ich hier beachten sollte, ist, mit diesem statischen Netz, das jetzt zu meinem Inhaltsbrowser hinzugefügt wurde, ich mit diesem statischen Netz, das jetzt zu meinem Inhaltsbrowser hinzugefügt wurde, eine zweite Version davon hinzufügen könnte. Lassen Sie mich einfach weitermachen und einen hier platzieren. Beachten Sie nun, dass auf diese Version mein Material nicht automatisch angewendet wird. Und vielleicht möchte ich das an anderen Stellen in meinem Level wiederverwenden . Also, was ich hier tun kann, ist zurück in meinem statischen Mesh-Editor , den ich geöffnet habe. Genau hier ist ein Slot in einem Standardmaterial im Detailbereich. Und das können Sie tun, indem Sie genau hier klicken , einfach auf Dirt klicken. Wenn ich dieses Asset jetzt speichere, wird es als Standardmaterial für dieses statische Netz gespeichert. Außerdem wurde eine Kollision darauf angewendet. Es zeigt nur, dass, wenn ich eine zweite Version davon einbringe , das Material automatisch darauf angewendet wird. Und wenn ich jetzt reinspringe und spiele, mein Charakter kollidiert mein Charakter wie immer mit dem Boden Auf diese Weise können Sie also einige maßgeschneiderte, statische Bodenelemente aus Netzmaterial erstellen statische Bodenelemente aus Netzmaterial erstellen Damit ist alles für diesen erledigt. Wir sehen uns im nächsten. 96. Level-Requisiten und Kameratuning: Ordnung. Also, obwohl wir paar riesige Maschen haben, auf denen sich ein paar riesige Maschen haben, auf denen sich gut aussehendes Material befindet, sieht es hier draußen immer noch ziemlich langweilig Lassen Sie uns also weitermachen und Level hier mit etwas Laub bevölkern, und ich werde Ihnen eine wirklich schnelle und einfache Methode zeigen, wie Sie schnelle und einfache Methode Und dann können Sie dieses Konzept nehmen und von dort aus weitermachen Aber um hier anzufangen, gehe ich zum Epic Games Launcher und zeige dir hier ein nettes Paket, das du deinem Projekt hinzufügen kannst und das helfen kann, das Aussehen schnell und einfach zu verbessern. Also hier im Epic Games Launcher habe ich Unreal Engine auf der linken Seite im Marketplace ausgewählt der linken Seite im Marketplace Wenn Sie nach dem Advanced Village-Paket suchen, ist dies das Paket, das ich zu meinem Unreal Engine-Projekt hinzufügen werde zu meinem Unreal Engine-Projekt hinzufügen Jetzt werden die aktuell unterstützten Engine-Versionen angezeigt die aktuell unterstützten Engine-Versionen Beachten Sie, dass Sie diese trotzdem hinzufügen können, wenn Ihre Engine-Version hier nicht unterstützt wird. Gehen wir hier zu Zum Projekt hinzufügen. Wenn du dein Projekt nicht siehst, kannst du hier auf dieses kleine Kästchen klicken , um alle vorhandenen Projekte anzuzeigen. Und dann musst du nach unten scrollen und das Projekt finden , das du hinzufügen möchtest Dieses Inhaltspaket zwei für mich, das wird diese Plattform eins sein Jetzt heißt es, hey, Assets sind mit dieser Version nicht kompatibel, also wähle einfach die neueste Version aus. Das sollten Sie tun, wenn sich herausstellt, dass das Asset Pack nicht mit Ihrer neuesten Version kompatibel ist nicht mit Ihrer neuesten Version kompatibel Sie können es trotzdem hinzufügen. Wählen Sie einfach die neueste Version aus. Für mich wird es 5.3 sein und dann werde ich auf Zum Projekt hinzufügen klicken. Wenn Sie das tun, werden Sie diesen kleinen Fortschrittsbalken sehen da all dieser Inhalt zu Ihrem Projekt hinzugefügt wird. Also werde ich das Video hier pausieren und wenn wir fertig sind, zeige ich Ihnen, wo sich dieser Inhalt jetzt in Ihrem Inhaltsbrowser befindet. Okay, das Inhaltspaket ist also fertig installiert. Und hier in meinem Inhaltsbrowser kann ich sehen, dass ich diesen neuen Ordner namens Advance Village Pack habe . Und was ich hier tun werde, ist, nach statischen Meshes zu sortieren Wenn Sie hier also keinen statischen Netzfilter haben , können Sie ihn umschalten oder ihn verfügbar machen, indem Sie direkt hier für statische Meshes klicken , weil ich diese Requisiten finden möchte Also werde ich diesen Filter einschalten. Und jetzt kannst du all diese verschiedenen, diese Requisiten sehen , die du in deinem Level platzieren kannst Jetzt möchte ich hier ein paar Grashalme quasi auf meiner Oberfläche platzieren Grashalme quasi auf meiner Oberfläche Die Art und Weise, wie ich das tun kann, ist, in dieser Suchleiste genau hier auszuwählen Ich werde nach Gras suchen , um einige Grasflächen zu finden. Ich mag diesen Grasfleck v One. Und dann werde ich hier den Editor-Modus vom Auswahlmodus ganz oben links in den Laubmodus ändern . Shift plus drei Hotkeys, um dich hierher zu bringen. Okay, im Laubmodus können Sie beliebige statische Netze schnell und einfach platzieren Es muss nicht nur Gras oder Bäume oder Felsen oder ähnliches sein Also genau hier heißt es , Laub fallen lassen. Im Grunde können Sie jedes statische Netz in diesen Bereich legen. Ich lasse diesen Linksklick fallen und ziehen. Wir werden es gleich hier drin ablegen. Also, was ich gerne mache, ist, diese Ansicht von der Miniaturansicht zur Listenansicht zu ändern diese Ansicht von der Miniaturansicht zur Listenansicht zu Wir könnten hier auch ein paar andere spielen. Lassen Sie mich tatsächlich suchen und sehen, ob es Bäume in diesem Rudel gibt. Ich möchte etwas, das relativ gut aussieht. Ich schätze, wir nehmen vielleicht einen dieser Bäume genau hier. Gibt es eine Pinie? Mal sehen, ob es bei Kiefern eine Kiefernart gibt. Jetzt nehmen wir einfach den normalen Baum, okay? Dieser Typ wird das prima per Drag-and-Drop hier reinziehen. Das funktioniert mit allem, was hier in Ihrer Laubliste angekreuzt ist . Solange du dein Malwerkzeug ausgewählt hast, kannst du mit der linken Maustaste klicken und Instanzen zu deinem Level hinzufügen. Offensichtlich sieht das furchtbar aus, wenn ich das mache , was ich gerade getan habe. Das ist viel zu dicht. Das gefällt mir nicht. Ich könnte Strg Z verwenden, um das rückgängig zu machen, aber ich werde stattdessen Umschalttaste gedrückt halten, wenn Sie linken Maustaste klicken, und ich werde zu diesem Löschwerkzeug wechseln ich werde zu und es löscht alles, was ich hier ausgewählt habe also die Umschalttaste gedrückt halten, können Sie sehen, dass mein Löschwerkzeug jetzt ausgewählt ist Jetzt klicke ich mit der linken Maustaste und werde das Laub löschen. Jetzt hast du wieder gesehen, dass es viel zu dicht war und ich möchte nicht gleichzeitig Bäume und Gras hinzufügen, also werde ich einfach Gras anmachen. Und jetzt kann ich mein Gras auswählen. Und indem ich unten mein Gras auswähle, kann ich alle Arten von Eigenschaften festlegen wie dieses Gras in meinem Level erscheinen soll, einschließlich seiner Dichte. Lassen Sie mich diese Dichte einfach genau hier festlegen. Ich werde zu so etwas wie einem Punkt übergehen. Lassen Sie mich es eigentlich einfach auf eins setzen. Im Moment war es auf 100 gesetzt, also wenn ich jetzt mit der linken Maustaste klicken würde, kannst du sehen, wie spärlich das sein wird Das ist zu dicht. Also versuchen wir es nochmal bei 100. Und versuchen Sie es erneut, klicken Sie mit der linken Maustaste, damit Sie sehen können, wie dicht es dort ist. Ich glaube, ich werde das auf 200 einstellen. Jetzt kann ich hier auch alle möglichen anderen Eigenschaften einstellen , einschließlich einer Skala. Dies ist eine weitere gängige Methode, mit der Sie vielleicht herumspielen möchten. Wenn ich jetzt mit der linken Maustaste klicken würde, hätten alle Exemplare meines Grases exakt die gleiche Höhe, was Sie vielleicht wollen, vielleicht auch nicht Ich möchte hier ein bisschen Abwechslung haben. Also werde ich einfach die Taste Z drücken , um das rückgängig zu machen. Und ich stelle meine Mint-Skala auf 0,5 und meine Mac-Skala auf zwei ein. Ich habe also ein bisschen Abwechslung bei den Grasflächen und jetzt können Sie sehen, was das bewirkt. In Ordnung, einige andere Dinge, die Sie vielleicht hier anpassen möchten. Mit zufälligem Neigungswinkel nach unten scrollen. Dieser zeigt sich wirklich bei Bäumen. Lassen Sie mich sogar einen Baum einschalten. Jetzt habe ich gerade meine Bäume ausgewählt. Wenn diese Option ausgewählt ist, kann ich die Eigenschaften meiner Bäume ändern. Lassen Sie mich einfach meine Dichte auf etwa eins reduzieren. Der zufällige Neigungswinkel ist der zufällige Winkel , in dem der Baum wächst. Im Moment wächst er gerade nach oben. Kontrolliere Z. Wenn ich einen zufälligen Neigungswinkel von sagen wir bis zu 20 Grad auswähle , dann können meine Bäume leicht geneigt werden Es wird nach dem Zufallsprinzip ausgewählt, also klicke ich einfach herum, damit Sie sehen können, dass der eine ziemlich gerade nach oben ist, der andere zur Seite geneigt ist usw. Es gibt dir nur ein bisschen Abwechslung. Okay, also ich fange mit Gras an und lasse mein Gras hier auswählen. Meine Eigenschaften in Bezug auf mein Gras, die ich anpassen kann. Ich mache weiter und klicke und ziehe mit der linken Maustaste. Jetzt könnte ich so vorgehen, um mein ganzes Level mit Gras zu bemalen. Allerdings könnte ich hier auch meine Pinselgröße erhöhen , um einen größeren Blasenpinsel zu haben, mit dem ich überall in meinem Level malen kann. Also lass mich das einfach schnell machen. Ich halte nur die linke Maustaste gedrückt. Nun, das ist vielleicht das, was Sie wollen, vielleicht auch nicht, aber ich hätte gerne ein bisschen Gras oder besser gesagt Dreck diesem Hauptweg, damit ich meinen linearen Reiseweg leichter erkennen kann. Also werde ich meine Pinselgröße auf etwa 300 einstellen . Und wenn ich jetzt, sagen wir, in diese Ansicht gehen und bei einem Linksklick die Umschalttaste gedrückt halten würde, könnte ich etwas Laub entlang meines Hauptreiseweges löschen. Sie können sich also vorstellen, wie Sie das bis zum Ende des Pfades so ausdehnen könnten . Einfach so die Shift-Taste gedrückt halten. Okay, sagen wir einfach, ich möchte ein paar Bäume zu meinem Level hinzufügen. Jetzt könnte ich mit dem Seifenblasenpinsel ein paar Bäume hinzufügen. Ich werde jedoch meinen Baum auswählen, sodass ich nur Bäume haben möchte. Du wirst mein Gras abwählen. Ich werde hier auch die Skala ändern, sodass sie 0,2 und 0,8 liegt, etwas Abwechslung Ich werde einen zufälligen Neigungswinkel von bis zu 20 Grad haben. Jetzt könnte ich wieder mit der Seifenblase bürsten und ein Vielfaches davon hinzufügen Sie können jedoch auch diesen Einzelmodus verwenden. Wenn Sie diesen Einzelmodus wählen, befinden Sie sich im Einzelinstanzmodus. Jetzt hast du diesen winzigen, winzigen Seifenblasenpinsel genau da. Wo auch immer du klickst, du wirst einen Baum spawnen. Das ist eine sehr schnelle und einfache Möglichkeit, dein Level mit etwas Laub oder einem anderen Netz zu füllen dein Level mit etwas Laub oder einem anderen Es müssen keine Bäume sein, es muss kein Gras sein Es gibt also eine schnelle Technik, wie du dein Level dekorieren kannst. Jetzt findest du vielleicht Fälle wie diesen, in denen du kein Gras in meinem Block haben willst. Der Grund, warum es auf diesen Block angewendet wurde, ist, dass ich genau hier meine verschiedenen Filter habe , um herauszufinden, was als gültiger Tar angesehen wird. Statische Netze auf Pon zu platzieren ist eines davon. Wenn ich das hier aus meinem statischen Netz löschen möchte, muss ich mein Gras auswählen In diesem Fall verlasse ich den Einzelinstanzmodus. Und jetzt, wenn ich nur die Umschalttaste gedrückt halte , kann ich mit der linken Maustaste klicken und das habe ich gelöscht Wenn ich jetzt nicht möchte, dass es auch nur über dieses statische Netz geht , würde ich einfach das Häkchen bei statischem Netz entfernen, um das zu verbieten Dieser Boden wird derzeit als statisches Netzelement betrachtet, aber auf diese Weise können Sie bestimmen, was zulässig ist , um Landschaftsakteure zu übermalen, worüber wir in diesem Kurs noch nicht gesprochen haben Statische Netze? Ja. Sogar anderes Laub. Ordnung, es gibt also eine kurze Einführung , wie du deinem Level ein paar Blätter oder Requisiten hinzufügen kannst deinem Level ein paar Blätter oder Requisiten hinzufügen Ich möchte das Laubwerkzeug verwenden, um schnell und einfach Meshes jeglicher Art hinzuzufügen Es muss kein Gras sein, es müssen keine Bäume sein. Es könnten Zäune, Häuser, Kisten, Fässer, was auch immer sein. Ich möchte diesem Video einen kurzen Nachtrag hinzufügen. Denn nachdem wir diese Levelteile hier drin haben und du dein Level gespielt hast, hast du vielleicht etwas, das jetzt so aussieht Wo deine Kamera vielleicht weit unten steht. Du willst dein Level nicht noch einmal verlassen, hier kannst du zu deinem Charakter aus der dritten Person zurückkehren und die Kamera anpassen. Wenn du dich an einen früheren Kurs erinnerst, haben wir tatsächlich die Möglichkeit, einige temporäre Kameraeinstellungen direkt hier in unserem Level vorzunehmen. Ich möchte nur auf ein paar Dinge hinweisen. Ich spiele gerade im ausgewählten Viewport, während ich im ausgewählten Viewport spiele, kann ich unter meinen Outliner gehen und meinen Spawn in der Third-Person-Figur wählen Da diese Option in der Kategorie „Allgemein“ ausgewählt ist, haben wir diese Variablen von früher Um die Kamera in Echtzeit einzustellen, gehe ich vor und aktiviere das, dann werden all diese Einstellungen aktiviert. Jetzt kann ich also versuchen, meinen Kameraversatz so anzupassen , dass ich das will. Vielleicht ist so etwas wie 300 in der Z das, was du willst. Vielleicht 400. Ich werde es einfach weiter nach oben verschieben. Ich mag 400. Sobald ich hier raus bin, werde ich auf Flucht klicken. Das ist nur eine vorübergehende Einstellung, die ich genau dort hatte. Nochmals, das alles basiert auf diesem Drehbuch in meinem Charakter aus der dritten Person. Wir haben den Z-Offset unserer Kamera angepasst , als dieser Wert auf „true“ eingestellt war. Wenn ich wieder reingehen und spielen würde, würde es auf die alten Kameraeinstellungen zurückgesetzt Wie gehen wir mit dieser Kameraeinstellung um? Nun, nochmal, ich mag die Z 400. Das wirkt sich auf meine Kamera aus. Bum. Wenn ich also meine Kamera-Boom-Komponente insektieren will, lass mich einfach zu meinem Viewport gehen und zeigen, wo sich meine Kamera-Boom-Komponente befindet. Es ist diese rote Linie Ordnung, wenn ich meine Kamerabomponente an der Z-Position auf 400 einstellen In Ordnung, wenn ich meine Kamerabomponente an der Z-Position auf 400 einstellen würde, würde es das so einrichten, wie ich es gespeichert habe , und wenn ich jetzt wieder ins Spiel springe, wird diese Änderung beibehalten. So soll das also funktionieren. Ich wollte nur diesen Nachtrag hier zu diesem Video hinzufügen. Bitte haben Sie ein schönes Sichtfeld beim Spielen Wasser. Sehen Sie im nächsten. 97. Hauptmenüebene: Willkommen. Im Laufe der nächsten Videos werden wir dieses Hauptmenü für unser Spiel erstellen, Hauptmenü für unser Spiel das über eine einzige Schaltfläche verfügt. Wenn wir darauf klicken, wird das Level einfach wieder hier gestartet. In unserer Arbeitsversion des Projekts werden wir damit beginnen, ein brandneues Level zu erstellen. Wir werden tatsächlich in diesem brandneuen Level beginnen . Und in diesem brandneuen Level werden wir ein Widget generieren, unser Hauptmenü entwerfen Und dann von diesem Hauptmenü aus, indem Sie auf die Schaltfläche „Los geht's“ Wir werden von unserer Hauptmenüebene zu dieser Ebene übergehen . Lassen Sie uns also weitermachen und dieses brandneue Level erstellen. Wird ganz oben unter Datei angezeigt. neue Levelsteuerung ist der Hotkey zum Erstellen eines neuen Levels. Sie werden diesen kleinen neuen Levelwähler aufrufen Wir werden ein leeres Level erstellen, also fahren Sie fort, wählen Sie es aus und klicken Sie dann auf Erstellen Wir befinden uns in unserer neuen leeren Ebene, sie hat derzeit keinen Titel. Lass uns weitermachen und das speichern. Wir können hier klicken, um es zu speichern. Es zeigt uns, wo wir das speichern möchten. Gehen wir zu unserem Ordner mit den Plattformebenen. Und ich nenne das einfach LV Underscore Main Menu. Und dann lass uns weitermachen und das sofort speichern. Jetzt haben wir also unsere Hauptmenüebene. Die einzige andere Sache, die ich in diesem Video erreichen möchte , ist, unter unseren Einstellungen zu erscheinen. Gehen wir zu unseren Projekteinstellungen und hier drin, lassen Sie mich das einfach oben andocken , ich komme zu Maps und Modi und genau hier für unsere Editor-Startmap werden wir das von Stufe eins auf unsere Hauptmenüebene ändern eins auf unsere Hauptmenüebene Lassen Sie mich dort einfach main eingeben. Das bedeutet, wenn wir Unreal das nächste Mal öffnen, öffnet es sich automatisch auf dieser Ebene des Hauptmenüs Also fügen wir hier ein wenig Reibung hinzu und springen in unser Spiel, indem in unserer Hauptmenüebene beginnen Und von dort aus werden wir wieder zu unserer LV-Version übergehen Okay, das ist alles, was ich mit diesem erreichen möchte. Sie müssen hier in Ihren Projekteinstellungen nichts speichern . Es wird sich nur daran erinnern, wenn Sie den Editor das nächste Mal öffnen. Das wird es für diesen machen. Sieh dir an, wie du den nächsten gewinnst. 98. Hauptmenü-Layout: Ordnung, jetzt, wo wir unsere Hauptmenüebene in dieser Version haben , ist es unser Ziel, einen Widget-Blueprint zu erstellen, der als Benutzeroberfläche für das Hauptmenü unseres Spiels dienen soll , also im Grunde unser Hauptmenü-Layout im Grunde unser Hauptmenü-Layout Bevor wir uns wirklich damit befassen, stellen Sie sicher, dass Sie all die Schriften von früher im Kurs importiert haben , die alle importiert werden sollten, weil wir sie verwenden werden Stellen Sie außerdem sicher, dass Sie alle Texturen importiert haben , die zu diesem Kurs gehören da wir einige davon verwenden werden. In Ordnung, damit gehen wir in unseren U-I-Ordner. Wir klicken mit der rechten Maustaste in eine leere Stelle. Wir wählen Benutzeroberflächen-Widget, Blueprint. Und wir werden dieses Benutzer-Widget hier als übergeordnete Klasse ganz oben auswählen dieses Benutzer-Widget hier als übergeordnete Klasse ganz oben Lass uns weitermachen und uns einen Namen geben. Ich nenne das BP Underscore Main Menu. Und wenn das ausgewählt ist, können wir einfach auf die Leertaste tippen, um es zu öffnen Okay, auf der linken Seite haben wir verschiedene Widgets, die wir hinzufügen können, um unser Hauptmenü zu bilden Das ist der Designer-Bereich, genau hier. Hier unten wird die Hierarchie gezeigt, die Beziehung mehrerer Widgets zueinander. Und dann können wir im Detailbereich verschiedene Eigenschaften für jedes der Widgets festlegen , die wir hinzufügen. Die Widgets, mit denen ich hier beginnen möchte , sind ein Canvas-Panel. Also werde ich einfach das Canvas-Panel eingeben, ich werde es hineinziehen. Das wird im Grunde als eine Art Korkbrett dienen, wenn Sie so wollen, das Heftbrett, an das wir andere Widgets anheften Das ist also der erste. Das zweite wird ein Bild sein. Also werde ich das einfach hier reinschreiben, damit du es hier unten in der Hierarchie sehen kannst Es ist an unserer Leinwand befestigt. Ich werde dieses Bild sofort umbenennen , damit ich mit meinem nächsten Bild nicht verwirrt werde. Wenn ich also die beiden auswähle, wird dies der Hintergrund mit dem Unterstrich des Bilds sein und ich werde die Details für diese hinterher festlegen Aber der nächste, den ich hinzufügen werde, wird ebenfalls an mein Canvas-Panel angehängt Ziehen wir einfach ein anderes Bild wie folgt hinein und benennen es um, indem wir F zwei darauf drücken Das wird mein Bild sein, unterstreiche den Titel. Übrigens, wenn Sie eines dieser Widgets ausgewählt haben, können Sie es umbenennen, indem F zwei oder im Detailbereich ganz oben drücken Sie können es dort auch umbenennen. Als Nächstes werde ich hier ein Button-Widget einfügen. Mein Button wird irgendwo in dieser Gegend erscheinen. Also lass es uns einfach dorthin ziehen und dort ablegen. Ich benenne diese Schaltfläche um und unterstreiche Play. Und dann ziehe ich etwas Text auf meine Schaltfläche Ich könnte es also direkt hier oben auf meine Schaltfläche „ Abspielen“ in der Hierarchie ziehen , oder ich könnte es direkt über die Schaltfläche hier legen hier oben auf meine Schaltfläche „ Abspielen“ in der Hierarchie ziehen , oder ich könnte es direkt über die Schaltfläche hier In der Designer-Ansicht zeigt dieser Einzug die Beziehung zwischen dem Hinzufügen und ich werde diesen Unterstrich einfach umbenennen Ordnung, lassen Sie uns als Nächstes die Details für jedes dieser Elemente festlegen Zuerst wähle ich meinen aktuellen Bildhintergrund genau dort im Detailbereich aus. Ich werde den Anker dafür setzen, im Vollbildmodus zu arbeiten. Das wird meinen Ankerpunkt rundum so setzen . Damit das wirklich im Vollbildmodus angezeigt wird, muss ich meine Offsets hier rückgängig machen Lassen Sie mich einfach auf diese Zurück-Schaltflächen klicken, genau rechts, genau dort und genau dort Wir haben diesen Offset hier immer noch auf 100 gesetzt. Lass uns weitermachen und das auf Null setzen. Im unteren Bereich des Offsets wird es ebenfalls Null sein. Unser Hauptdarsteller wird dieser im Vollbildmodus sein. Und dann werden unsere Offsets auf der ganzen Linie Null sein , und das macht es wirklich im Vollbildmodus Jetzt möchte ich hier tatsächlich wieder ein Bild platzieren, also suche ich im Bereich Aussehungspinsel unter Bild nach dem Hauptmenü und ich habe diese Textur, die wir in den Hintergrund stellen können . Das ist ziemlich nett Als nächstes unser Bildtitel, derzeit dieses weiße Feld. Lassen Sie uns weitermachen und den Anker dafür setzen, dass dies der obere rechte Teil ist, der versuchen wird diesen Titel in der oberen rechten Ecke unseres Wiedergabefensters zu belassen. Sollten wir versuchen, die Größe unseres Spielfensters für die Position x zu ändern, setze ich den Wert auf minus 700, die Position Y. Ich setze den Wert auf Null Und du kannst sehen, wie sich das bewegt. Wenn ich diese Größe aktualisiere, werde ich sie auf 700 und die Größe auf 400 einstellen. Warum habe ich genau diese Größe gewählt? Nun, das liegt daran, dass mein Pinselbild genau hier ist, ich werde mich dafür entscheiden, mein Super Mario-Text zu sein. Das hier. Und das passt einfach gut dazu. Beachten Sie noch einmal, dass diese Positionen relativ zum Ankerpunkt sind, weil die Ankerpunkte hier oben rechts, diese Position x, das ist relativ zu diesem Ankerpunkt. Ordnung, als Nächstes wählen wir unseren Button, spielen und einige Parameter dazu einstellen. Ich werde es mit einem Anker versuchen, der sich genau hier neben dem Anker auf der rechten Seite befindet. Ich werde es mit dieser Kiste hier versuchen, irgendwie so, oder? Feld für die Position x. Ich werde minus 115 wählen. Ich habe all diese Werte im Voraus bestimmt, die Position y. Ich werde sie auf 256 setzen. Ich werde das auf 450 setzen, die Größe Y. Ich werde das auf 130 setzen. Jetzt sieht es so aus, als würde es hier vom Bildschirmrand überlaufen . Aber sieh dir das an. Ich werde die Ausrichtung dafür so einstellen , dass sie eins in X eins in y ist. Auch hier gilt: Wenn Sie jeweils 0,5 eingeben , wird der Unterschied relativ zu Ihrem Ankerpunkt und Ihren Offsets aufgeteilt Unterschied relativ zu Ihrem Ankerpunkt und Ihren Offsets Wenn Sie dies auf 1,1 setzen, wird es für diese Positionierung auf die Extreme gesetzt In Ordnung, für den Stil, unter den ich fallen werde. Eigentlich kommen wir gleich wieder auf den Stil zurück. Lass uns das machen. Farb-Endopazität, Aussehen, Farb-EndopazitätIch bin. Stellen Sie dafür die Hintergrundfarbe und die Hintergrundfarbe ein. Ich werde einen Rotwert von 0,2, einen Wert von Null, einen B-Wert von Null und den Wert festlegen , der der Alphawert von Eins ist Also ja, ich werde das mit meinem Farbschema beibehalten. Für den Stil des Aussehens. Wir können jetzt den Stil dieser Schaltfläche für verschiedene Status festlegen . Der normale Zustand, der Hover-Status , wenn Sie den Mauszeiger darüber bewegen Der Pressestatus, wenn Sie darauf klicken, solche Dinge. Fangen wir also mit unserem normalen Stil an. Wie wird dieser Button normal aussehen? Nun, ich möchte als abgerundetes Feld zeichnen. Das wird alles schön und gut sein. Die Gliederungseinstellungen, die ich dafür festlegen möchte, werden durchweg 444,4 sein. Allerdings wird meine Breite hier auf sieben gesetzt, dann auf den Rundungstyp, und hier wird es wirklich stilisiert Ich werde den Radius auf halber Höhe einstellen, das gibt ihm genau dort dieses abgerundete Aussehen , was mir gefällt So wird der Button normalerweise aussehen. Stellen wir nun ein, wie es aussehen soll, wenn der Mauszeiger darüber bewegt wird wenn der Mauszeiger darüber bewegt komme wieder zu den Gliederungseinstellungen denn wenn wir diese Kontureinstellungen nicht entsprechend ändern , denn wenn wir diese Kontureinstellungen nicht entsprechend ändern, wird es passieren, dass es anfänglich so aussieht , aber dann wird es wieder zu seinem kastenförmigen Aussehen zurückkehren, wenn wir mit der Maus darüber fahren , was wir nicht wollen, die Breite hier wird auf sieben gesetzt. Auch hier wird der Rundungstyp auf Halbhöhenradius, den Umriss, gesetzt Ich werde jedoch eine gelbliche Farbe wählen, also nehmen wir Gelb, etwas Ähnliches Ich stelle es auf halbtransparent ein. Vielleicht ein Wert von 0,5 für die. Lass uns auf „Okay“ klicken. Da hat der Händler die Wahl, was Sie das einstellen möchten, wenn Sie mit der Maus darüber fahren Ordnung, und dann für unseren Pressestatus, das ist, wenn wir darauf klicken, kommen wir wieder zu den Gliederungseinstellungen Ich setze die Breite auf sieben. Der Rundungstyp wird der Radius auf halber Höhe sein, der Umriss, ich schätze, ich werde es bei dieser Art von weißlicher Farbe belassen Das wird in Ordnung sein. Und, weißt du, nur um das ein bisschen zu unterscheiden, ich schätze, ich werde meine Breite hier auf zehn einstellen , um sie nur ein bisschen dicker zu machen. Und dann haben wir hier unten diesen Sound gedrückt und wir haben diesen Hover-Sound Schön, dass sie diese Felder hier haben. So können wir automatisch einige Soundeffekte einblenden , sowohl wenn wir den Mauszeiger über diese Taste bewegen, als auch wenn wir auf diese Taste drücken Lassen Sie uns also zuerst den Hover machen. Ich stelle das auf Grab, V, R, Grab ein. Und für den Ton drücken, wenn wir darauf klicken, werde ich das als meine Münze einstellen. Sound In Ordnung, als Nächstes stellen wir unseren Text ein. Lassen Sie uns hier den Textstil ändern. Zuallererst werden wir uns dem Abschnitt „Polsterung“ befassen diesen etwas erweitern Und ich werde die Polsterung dafür festlegen. Weißt du was, ich werde hier noch ein bisschen auf die Polsterung zurückkommen hier noch ein bisschen auf die Polsterung Lassen Sie uns zuerst den Schriftstil festlegen. Aber bevor wir das tun, lassen Sie uns weitermachen und den eigentlichen Text festlegen. Und ich ändere das in ein Ausrufezeichen. Lassen Sie uns die Stelle loswerden, an der genau dort Textblock steht . Lösch das raus. Gehen wir zur Schriftfamilie. Ich werde das als meine Super Mario-Schrift festlegen. Ich stelle es auf die Wahl meines Super Mario- oder 256-Schriftartenhändlers was Sie dafür einstellen möchten. Die Größe hier, lassen Sie uns die Größe erhöhen. Ich gehe zu, versuchen wir es mit 45, so etwas. Und die Umrissgröße. Lassen Sie uns unsere Umrissgröße ändern. Deshalb skizzieren wir unseren Text hier ein wenig. Ich ändere das auf sechs. Damit können Sie genau dort eine Konturfarbe festlegen. Ich lasse es bei Schwarz. Das sieht nicht sehr mittig in meiner Schaltfläche Deshalb gehe ich zurück und repariere es, damit wir das über diese Polsteroptionen ganz oben hier tun können diese Polsteroptionen ganz oben hier Ich habe das noch einmal erweitert. Ich werde meine linke Polsterung auf Null setzen. Und beobachten Sie, wie sich dieser Text irgendwie bewegt, wenn wir diese Werte aktualisieren Die obere Polsterung hat das auf zehn gesetzt, die rechte Polsterung, ich werde das auf Null setzen Unten werde ich das auch auf Null setzen , und das sieht gut und das sieht Okay, damit haben wir ein ordentliches Layout des Hauptmenüs. Lass uns weitermachen und das kompilieren und Leute retten. Das ist alles, was wir in diesem Fall erreichen wollten. Wir sehen uns im nächsten. 99. Hauptmenü-Skript: Ordnung, in diesem werden wir ein Skript hinzufügen , damit unser Hauptmenü angezeigt wird. Und auch, um unser Hauptmenü interaktiv zu gestalten , damit wir unser allererstes Level starten können. Also hier bin ich in meinem LV-Hauptmenü. Diese leere leere Ebene. Wir kommen zu unserem Level-Blueprint. Und ich habe da oben auf Level-Blueprint öffnen geklickt. Und wir werden auf der Grundlage dieser bestehenden Veranstaltung arbeiten . Fangen Sie an zu spielen. Also werde ich das Event-Häkchen gleich hier loswerden . Wenn Sie hier nicht die Wiedergabe von Event Begin sehen, können Sie einfach mit der rechten Maustaste klicken und Event Begin suchen. Spielen Sie das ab, ich füge einen Sequenzknoten hinzu, halten Sie die Taste S gedrückt und klicken Sie mit der linken Maustaste. Wenn wir hier mit dem Spielen beginnen, werden wir drei verschiedene Dinge tun . Also klicke ich auf die Schaltfläche PIN hinzufügen, um eine weitere hinzuzufügen. Das erste, was ich tun möchte, ist, diesen Punkt zu entfernen und den Namen des Knotens in Create widget, Create widgets einzugeben. Hier können wir das Widget einfügen , das wir erstellen möchten Das wird unser BP-Hauptmenü sein. Jetzt reicht es nicht mehr, das Widget einfach zu erstellen, wir müssen es tatsächlich anweisen , es zu unserem Viewport hinzuzufügen Um das zu tun, können wir von hier wegziehen und „Zum Viewport hinzufügen“ sagen Wenn ich Add to Viewport tatsächlich richtig buchstabieren kann , dann ist es da Viewport hinzufügen. Dieses Widget erstellt das Hauptmenü-Widget Und dieser sagt , dass das Widget zu unserem Viewport hinzugefügt werden Als Nächstes klicke ich mit der rechten Maustaste und tippe get player controller ein Und damit ziehe ich es weg und sage Mauszeiger anzeigen. Wir werden Mauszeiger anzeigen einstellen. Wir werden das überprüfen, um das wahr zu machen Dadurch wird unser Mauszeiger angezeigt, sodass wir auf die Schaltfläche Lass uns gehen klicken können. Nun etwas, worauf ich hier hinweisen sollte Woher wusste ich überhaupt, dass diese Immobilie existiert? Nun, lassen Sie mich zu meinem Framework-Blueprint, meinem BP Player-Controller und hier zu meinem BP Player-Controller gehen. Wenn ich zu den Klassenstandardwerten auf der rechten Seite gehe, kann ich Maus mit der obersten Maus eingeben und da ist es, Mauszeiger anzeigen Das ist eine der Standardeigenschaften eines Player-Controllers Standardmäßig zeigen wir den Mauszeiger nicht an, aber was wir dort in unserem Hauptmenü-Skript sagen , ist, dass, hey, egal welchen Player-Controller wir verwenden, wir sicherstellen wollen, dass wir den Mauszeiger zeigen , damit wir hier mit unserem Hauptmenü interagieren können. Okay, das Letzte, was ich tun möchte, ist, dass ich einfach ein bisschen Musik spielen möchte. Also ziehe ich das in die Länge und sage Sound to D. Sound ist an keiner bestimmten Stelle in deinem Level lokalisiert. Es hat keine X-, Y - und Z-Position, von der aus es abgespielt wird. Und dafür können Sie jede Musik einspielen, die Sie mögen. Ich werde einfach Starter Music eingeben . Dies ist Musik, die sich im Ordner Starter Content befindet. Auch hier kannst du alles hineinlegen, aber ich lasse nur ein bisschen Musik spielen. Das wird also unser letztes Drehbuch sein wenn wir dieses Level spielen. Lass uns weitermachen und hier kompilieren, sicherstellen, dass unser Skript gut aussieht, und speichern. Wenn ich jetzt spielen würde, erscheint mein Hauptmenü auf dem Bildschirm. Aber Sie werden ein paar Dinge sehen , die problematisch sind. Zum einen sehen wir unseren Hud auf dem Bildschirm, was wir nicht sehen wollen Nummer zwei ist, dass ich damit nicht wirklich interagieren kann. Sie können sehen, dass dieser Button-Hover-Effekt wirksam wird Und tatsächlich kann ich darauf klicken, aber es passiert wirklich nichts Ich werde nicht auf ein anderes Level gebracht. Lassen Sie uns also beide Probleme beheben, indem wir damit beginnen, dass unser HUD angezeigt wird Nun der Grund, warum unser Hud angezeigt wird, wenn ich hier zu meinem Haupteditor zurückkehre Gehen wir zu unseren Einstellungen Und in unseren Projekteinstellungen, wenn wir zu Karten und Modi gehen, können Sie sehen, dass unser Standardspielmodus für dieses Projekt unser Third-Person-Spielmodus ist Wenn ich jetzt zu diesem bestimmten Asset gehe, befindet es sich dort in meinem Ordner „ Gestartete Inhalte “ oder „ Blueprints für Dritte Und ich öffne das, das ist der Bauplan, der bestimmt, welche anderen Baupläne unser Projekt verwendet, wie zum Beispiel unseren Spielercontroller und unsere Standardbauernklasse Jetzt befinde ich mich wieder in den Klassenstandards unseres Third-Person-Spielmodus unseres Third-Person-Spielmodus Unser Spielmodus bestimmt also die anderen Baupläne, die unser Projekt am häufigsten verwendet, die Spielerklasse und unsere Standardbauernklasse Beachten Sie, dass dies genau dieselben sind, die wir hier in unseren Projekteinstellungen im Third-Person-Spielmodus finden können , der unsere Bauernklasse bestimmt Und unser Spieler-Controller. Jetzt fügt unser Player-Controller , den ich hier geöffnet habe, das Hud zum Viewport hinzu Also gerade, wenn wir unser Spiel spielen und unsere Hauptmenüebene aufrufen, wendet unser Projekt diesen Third-Person-Spielmodus auf dieses Level an Und das wiederum bestimmt, dass unser Spieler-Controller als auch diese Standard-Bauernklasse verwendet werden als auch diese Standard-Bauernklasse Weil unser Spieler-Controller benutzt wird, zeigt das unsere Spielerhaube Wir wollen einfach nicht, dass sich das zeigt. Was können wir also tun? Nun, hier gibt es eine sehr einfache Lösung und die besteht darin, einfach einen brandneuen Spielmodus zu erstellen nur für dieses spezielle Level verwendet werden kann. Im Grunde kann ich den Spielmodus in unseren Projekteinstellungen hier in diesem speziellen Level überschreiben . Unser Level-Hauptmenü. Und das kann ich über die World Settings machen. Wenn Sie diese Registerkarte mit den Welteinstellungen nicht sehen, können Sie unter Einstellungen alternativ zu den Welteinstellungen wechseln. Window World Settings , mit denen Sie dieses Panel auch mit unseren Welteinstellungen hier einschalten können . Wir können unseren Spielmodus überschreiben nur für diese Welt verwendet wird. Nur dieses Level, diese Welt und dieses Level werden hier synonym verwendet Also werde ich weitermachen und einen brandneuen Spielmodus erstellen. Und das kann ich tun, ich könnte hier im Inhaltsbrowser klicken in eine leere Stelle schreiben . Aber ich kann es auch direkt von dieser Registerkarte „ Welteinstellungen“ aus tun . Also gehe ich in den Spielmodus. Klicken Sie hier auf diese Plus-Schaltfläche, um einen brandneuen Spielmodus-Blueprint zu erstellen einen brandneuen Spielmodus-Blueprint Und ich wähle einfach einen Ort aus, an dem ich das sagen möchte. Lass mich gehen und das in meinen Blueprints Frameworks-Ordner schreiben Und ich werde das mein BP-Spielmodus-Hauptmenü nennen. Dann klicke ich auf Speichern. Wieder einmal ist es der Gamo-Blueprint, der all die anderen verschiedenen Blueprints bestimmen wird , die wir hier verwenden Jetzt war unsere Player-Controller-Klasse standardmäßig einfach auf Player-Controller eingestellt Dies unterscheidet sich von unseren Projekteinstellungen, denen unser benutzerdefinierter Player-Controller verwendet wird Dieser verwendet also nicht unseren BP-Player-Controller. Wie Sie sehen können, ist es nur der Standard-Player-Controller. Wir haben hier keinen Code drin. Wenn ich jetzt einfach unser Spiel spielen würde, sehen wir das Hud nicht mehr auf dem Bildschirm, weil wir einen brandneuen Spielmodus erstellt haben , unseren maßgeschneiderten Player-Controller nicht verwendet Das bedeutet, dass unser Hud auf dem Bildschirm erscheinen soll. Wir überschreiben den Spielmodus unseren Projekteinstellungen , sodass Probleme behoben Als Nächstes machen wir weiter und machen es so, dass unsere Hauptmenüoberfläche tatsächlich funktioniert. Dazu gehen wir in unseren Plattform-UI-Ordner. Suchen Sie unser Hauptmenü und doppelklicken Sie darauf, um es zu öffnen , falls Sie es noch nicht geöffnet haben. Und hier gehen wir zur Registerkarte Grafik auf der rechten Seite. der Registerkarte „Grafik“ können Sie ein Skript schreiben , das für dieses spezielle Widget, den Blueprint, spezifisch ist dieses spezielle Widget, den Blueprint, Jetzt gibt es hier einige Event-Nodes, auf denen wir aufbauen könnten. Aber ich will eigentlich keine davon, also werde ich sie einfach löschen. Beachten Sie jetzt, dass wir im Bedienfeld „Mein Blueprint“ die Play-Taste haben Dies bezieht sich auf das Button-Widget in unserem Designer-Tab, unser Button-Play genau hier Beachten Sie, dass bei der Auswahl dieses Widgets im Detailbereich automatisch aktiviert wurde, ob dieses Kontrollkästchen variabel ist Dadurch kann es unter dem Variablenbereich im Bereich „Mein Blueprint“ angezeigt Variablenbereich im Bereich „Mein Blueprint“ dies nun ausgewählt ist, können wir ein Ereignis für dieses spezielle Widget hinzufügen ein Ereignis für dieses spezielle Widget Und wir möchten eines für einen Klick hinzufügen. Also haben wir diese Plus-Schaltfläche genau hier. Wenn Sie darauf klicken, wird ein Ereignis hinzugefügt , wenn wir auf diese Schaltfläche klicken. Das heißt, wir wählen es hier mit unserem Mauszeiger aus. Also, was wollen wir tun? Nun, ich werde eine kleine Verzögerung hinzufügen, weil ich nicht sofort in unser Level springen möchte, nachdem ich darauf geklickt habe. Also werde ich die Taste D gedrückt halten und mit der linken Maustaste klicken. Ich werde es einfach um, sagen wir, eine halbe Sekunde hinauszögern . Und dann werde ich diesen Typ im offenen Level nach Namen herausziehen . Und welches Level möchte ich öffnen? Nun, wenn ich hier zu meinen Levels zurückkehre, ist das die Ebene, die ich öffnen möchte. Lv, unterstreiche eins. Wenn ich mit der rechten Maustaste darauf klicke und es umbenenne, drücke ich Strg C, um es zu kopieren Dann gehe in mein Hauptmenü-Widget. Geh hier rein, drücke V, um das einzufügen. Das ist das ganze Skript, das wir brauchen, um es tatsächlich funktionsfähig zu machen. Lass mich einfach hier auf Speichern klicken. Wenn ich jetzt reinspringen und spielen würde. Also gut, unser ganzes Drehbuch ist da drin abgearbeitet. Sogar wenig Hintergrundmusik. Wenn ich auf meine Lets-Schaltfläche klicke, kommt es zu einer kleinen Verzögerung. Und dann gehen wir in unser Spiel. In Ordnung, jetzt haben wir ein funktionierendes Hauptmenü. Wir haben wieder ein leeres Level innerhalb unseres leeren Levels eingerichtet . Wir gingen in den Level-Blueprint und richteten ein Skript ein, um unser Hauptmenü anzuzeigen , in dem der Mauszeiger Wir spielen auch ein bisschen Hintergrundmusik. Und dann haben wir es auch so eingerichtet, dass wir unseren Spielmodus-Blueprint hier in der Weltumgebung überschreiben unseren Spielmodus-Blueprint hier in der Weltumgebung , sodass unser Spielemodus nicht angezeigt wird Und zu guter Letzt haben wir in unserem Hauptmenü-Widget einfach ein kleines Skript für unsere Schaltfläche hinzugefügt , weil unsere Schaltfläche als Variable eingestellt ist Damit fügen wir einfach ein Ereignis hinzu, wenn wir darauf klicken. Wir werden es verzögern und dann werden wir den Job auf der entsprechenden Ebene eröffnen . Gut gemacht, Leute. Machen wir weiter und speichern alles, was wir tun, machen wir es für dieses Mal aus. Wir sehen uns im nächsten. 100. Anims des Hauptmenü-Widgets: Willkommen zurück. In diesem Video werden wir unserem Hauptmenü ein bisschen Jazz hinzufügen, indem wir zeigen, wie man verschiedene Widgets animiert Jetzt könnte das für unser Hauptmenü gezeigte Konzept auch auf Ihre Hütte angewendet werden Lass uns gleich zur Sache kommen. Also, um hier eines der Elemente in Ihrem Hauptmenü zu animieren, das heißt, es zu skalieren, es zu drehen, es einzublenden All diese Dinge müssen wir in unser Animationsfenster bringen, das hier in unserem WBP-Hauptmenü gemacht werden kann hier in unserem WBP-Hauptmenü gemacht werden Fahren Sie fort und klicken Sie oben auf das Fenster. Und genau hier haben wir dieses Animationsfenster , das nicht aktiviert ist. Lass es uns einschalten. Dadurch wird ein Animationsfenster ganz unten angezeigt. Okay. Das wird so funktionieren, dass wir eine benannte Animation erstellen werden. Wir werden hier verschiedene Elemente unseres Bildschirms anweisen , animiert zu werden, und dann werden wir über ein Skript sagen, dass diese Animation abgespielt werden soll Lassen Sie uns also unsere benannte Animation erstellen, indem wir auf diese grüne Plus-Animationsschaltfläche Ich werde dieses Intro einfach aufrufen, drücken Sie die Eingabetaste. Jetzt, wo diese Animation ausgewählt ist, möchte ich im Wesentlichen, dass unsere Play-Taste hier am Bildschirmrand beginnt Und dann animieren, heißt reinrutschen. Stellen Sie also sicher, dass Sie das ausgewählt haben, denn ich möchte, dass es vom Bildschirm aus startet Ich werde hier eine neue relative Position x festlegen Also setze ich diesen Wert von minus 115 auf 600 und drücke Enter. Wie bin ich zu dieser Zahl gekommen? Nun, das war nur durch eine Menge Versuch und Irrtum, bevor dieses Video gedreht wurde. Also 600, es wird hier am Rand meines Bildschirms beginnen. Notieren Sie sich nun alle Eigenschaften dieses Button-Widgets, die wir im Laufe der Zeit mithilfe unserer Animation ändern möchten. Hier können Sie sehen, dass das im Detailbereich mit diesem kleinen Diamanten mit der Plus-Schaltfläche gekennzeichnet So können wir Keyframes für diese verschiedenen Eigenschaften hinzufügen. Und hier unten gibt es noch mehr , das Sie ändern können. Sie können diese zu Ihrer Zeitleiste hinzufügen indem Sie einfach darauf klicken. Deshalb möchte ich die Position x hier meines Buttons im Laufe der Zeit ändern . Also werde ich weitermachen und genau hier klicken. Füge meiner Animation ein Schlüsselbild für diese Eigenschaft hinzu. Da ist es also. Ich habe gerade darauf geklickt Und jetzt können wir unsere Schaltfläche, unseren Canvas-Panel-Slot und unsere Offsets sehen Canvas-Panel-Slot und unsere Offsets Jetzt wird es ein bisschen knifflig. Tastenwiedergabe, Tastenwiedergabe, Canvas-Panel-Slot, Offsets des Canvas-Panel-Slots Okay, das werden alle als Offsets betrachtet, aber wir haben nicht auf etwas geklickt, das Position X genannt wird, sondern hier unten ist das technisch gesehen unser Es gibt also eine kleine Diskrepanz zwischen den , die viele Schüler verwirren können Beachten Sie also, dass dies die Eigenschaft ist , die ich hier ändern möchte Sie hat derzeit einen Wert von 600. Das wird mit unserem linken Offset hier in Verbindung gebracht . Okay, also an der Null-Sekunden-Marke in unserer Timeline wollen wir hier mit der Position unserer Buttons beginnen. Wenn ich hier unten mit der Maus fahre, kann ich sehen, wie ich mit der Maus hier nach unten fahre Ich habe diese zwei Arten von Schindeln , die den Anfang und das Ende meiner Animation kennzeichnen und das Ende Ich möchte das Richtige auf die richtige Summe übertragen Okay. Und wie Sie sehen können, wird diese rote Linie auch mitgenommen. Das wird das Ende meiner Animation bedeuten. Sie können das also einfach hin und her ziehen , um die Dauer Ihrer Animation zu verlängern oder zu verkürzen Übrigens, Scrollrad, wenn Sie die Steuerung im Scrollrad gedrückt halten, die Steuerung im Scrollrad gedrückt halten wird Ihre Zeitleiste verkleinert oder erweitert Wenn Sie die rechte Maustaste gedrückt halten, können Sie nach links und rechts schwenken Nur ein kleiner Hinweis zur Navigation: Sobald wir das Feld zurückgezogen hatten, konnten wir dort unseren einzigen Keyframe an der Null-Sekunden-Marke für unseren linken Offset sehen . Auch das ist unsere Position x. Jetzt möchte ich, dass diese Animation ziemlich schnell ist. Also werde ich das Ende dieser Zeitleiste auf die 0,25-Sekunden-Marke ziehen die 0,25-Sekunden-Marke Dann werde ich die Strg- und Scrollrad gedrückt halten , um das Ganze etwas weiter auszudehnen Im Grunde möchte ich, dass sich diese Taste im Laufe einer Viertelsekunde in diese Richtung bewegt . Also werde ich meinen Zeitleisten-Schieberegler bis zur 0,25-Sekunden-Marke Und dann muss ich entscheiden , wohin ich das verschieben möchte Nun, ich habe festgestellt, dass ein Wert , den ich dafür haben möchte, negativ 115 ist. Ich kann also buchstäblich genau hier klicken, wo links steht. Ich habe dort geklickt, wo die Zahl 600 angezeigt wurde. Ich gebe minus 115 ein und drücke die Eingabetaste. Das wird also im Wesentlichen das Ende meiner Animation bedeuten Wenn ich das jetzt hin und her schrubben würde, können Sie sehen, wie es sich im Laufe einer Viertelsekunde bewegen im Laufe einer Viertelsekunde Wenn ich meinen Zeitleisten-Schieberegler hier wieder ganz an den Anfang setze und dann auf Abspielen klicke, können Sie sehen, wie das weitergeht Beachten Sie nun, dass dies die einzige Eigenschaft sein wird , die ich hier mit meiner Schaltfläche im Laufe von 0,25 Sekunden ändern möchte hier mit meiner Schaltfläche im Laufe von 0,25 Sekunden ändern im Laufe von 0,25 Sekunden Aber Sie könnten hier auch andere Eigenschaften mit Ihrer Schaltfläche anpassen hier auch andere Eigenschaften mit Ihrer Schaltfläche Die Farbe und Opazität, die Hintergrundfarbe, all diese Dinge Für einige dieser anderen Eigenschaften, die Sie möglicherweise erweitern könnten, müssen Sie möglicherweise auf einige dieser Dropdown-Dreiecke klicken dieser Dropdown-Dreiecke Also könnten wir den Drehpunkt, den Scherwinkel, die Skala und all diese Dinge ändern den Scherwinkel, die Skala und all diese Dinge ändern Könnte in derselben Intro-Animation gemacht werden. In Ordnung, wir haben also eine benannte Animation. Und wir sagen unserer Schaltfläche, etwas in dieser benannten Animation tun soll. Nun, wie bekommen wir das eigentlich zum Auslösen? Nun, dafür müssen wir zu unserem Grafik-Tab gehen, genau hier oben. Lass uns hier rüber gehen. Wir haben dieses Skript für Klicken auf Button, Klick auf Button, Starten eines neuen Levels. Jetzt wollen wir ein Skript hinzufügen , das diese Animation abspielen wird. Wir hatten hier schon einmal ein Event-Konstrukt . Event-Konstrukt ist wie der Beginn eines Ereignisses, ein Bauplan Ich werde mit der rechten Maustaste klicken und das zurückholen. Und ich gebe einfach ein, dass es ein Event-Konstrukt gibt. Das ist der, nach dem wir suchen. Davon abgesehen werde ich es für eine kurze Zeit verzögern. Also halte ich die Taste D gedrückt und klicke mit der linken Maustaste, um einen Verzögerungsknoten einzuschalten. Ich werde das für 2 Sekunden verzögern. Dann werde ich diese Animation, die ich gerade abspielen werde, auch mit einem Sound begleiten . Ich mache einen Sound zwei D. Der Sound, den ich abspielen möchte, heißt Drop Drop Item aus dem Inhaltsbrowser, der sich in den VR-Ordnern der Engine befindet. Wenn Sie das nicht sehen, können Sie hier auf dieses Zahnradsymbol klicken. Stellen Sie sicher, dass Sie den Inhalt der Engine anzeigen. Das verschafft dir Zugang zu dem Typen. Dann möchte ich meine Animation einfügen, damit ich mit ihr sprechen und ihr sagen kann, dass sie abgespielt werden soll. Nun, in meinem Designer-Tab habe ich diese Animation namens Intro Aber hier in meiner Grafik sehe ich sie nirgends. Also, wie beziehe ich mich darauf? Direkt unter dem Variablenbereich, wenn ich unter Animationen komme, gibt es den Namen der Animation, die ich gerade erstellt habe. Intro, hier geht es um diese Intro-Animation Lassen Sie uns das in unser Diagramm aufnehmen. Ziehen Sie es per Drag & Drop, wir werden das bekommen. Und wenn wir das dann wegziehen, können wir sagen, Animation abspielen. Und jetzt haben wir viel Kontrolle über diese Animation. Anhand dieser Funktion können wir ihr sagen, zu welcher Uhrzeit in der Animation wir abspielen wollten. Lass es uns von Anfang an spielen. Also belassen wir das bei 0 Sekunden. Anzahl der abzuspielenden Loops. Sie können damit mehrere Loops abspielen lassen. Sie können das vorwärts abspielen, Sie könnten rückwärts spielen oder es mit einem Ping-Pong hin und her Und Sie können die Wiedergabegeschwindigkeit auch direkt von hier aus anpassen die Wiedergabegeschwindigkeit auch direkt von hier aus Wenn Sie also mit dieser Viertelsekunde nicht zufrieden sind, können Sie sie verlängern, indem Sie eine langsamere Wiedergabegeschwindigkeit Oder beschleunigen Sie es. Okay, das wird also unser Skript für das Abspielen dieser Animation 2 Sekunden, nachdem unser Hauptmenü angezeigt wird, sein dieser Animation 2 Sekunden . Also lass uns weitermachen und das kompilieren und speichern. Wenn wir jetzt spielen, schauen wir uns das an, wir sehen unser Hauptmenü. Aber 2 Sekunden später, bumm, gibt es Folien auf unserem Button. Okay, jetzt möchte ich hier tatsächlich eine weitere Animation hinzufügen. Weil ich es so machen möchte, dass, wenn wir den Mauszeiger über unsere Schaltfläche bewegen , die Größe tatsächlich ein wenig vergrößert Lassen Sie uns also weitermachen und eine weitere Animation dafür hinzufügen. Ich könnte noch einmal zum Designer-Tab zurückkehren und eine völlig neue Animation erstellen. Also klicke ich auf diese Plus-Animation und nenne das meine Scale-Play-Button-Animation. Ja, zuerst muss ich sicherstellen, dass ich meine Animation auswähle. Mit welchem Ding möchte ich dann sprechen? Wieder einmal werde ich unsere Play-Taste skalieren, obwohl sie sich hier neben dem Bildschirm befindet. Es spielt keine Rolle, weil es die Intro-Animation ist, auf die es übertragen wird Ich möchte jetzt einfach darüber sprechen , was möchte ich daran ändern Ich möchte die Skala dafür ändern. Ich werde im Detailbereich weiter nach unten scrollen. Ich suche nach der Render-Transformationsskala. Jetzt kann ich das erweitern, um nur den X- oder den Y-Aspekt dieser Schaltfläche zu skalieren , aber ich möchte beide skalieren. Wenn ich einfach unter Transformationsskala gerate, klicken Sie hier darauf. Das wird dem hier unten in meiner Zeitleiste einen Schlüsselrahmen hinzufügen . Lassen Sie uns diese Skala erweitern. Wenn ich jetzt hier in meiner Timeline runterkommen würde, könnte ich diese beiden Schindeln sehen Ich werde das hier einfach auf etwa eine Zehntelsekunde erweitern etwa eine Zehntelsekunde Das ist vielleicht zu kurz. Lass mich die Taste gedrückt halten und nach oben zoomen. Okay, über die Zehntelsekunde, und ich kann die beiden Keyframes für die Skala X und die Skala Y hier sehen . Jetzt werde ich meinen Zeitleisten-Schieberegler auf die Zehntelsekundenmarke bewegen meinen Zeitleisten-Schieberegler auf die Zehntelsekundenmarke Ich werde dafür weitere Keyframes hinzufügen. Ich könnte das für X und Y unabhängig voneinander tun, aber wenn ich auf diese winzige Plus-Schaltfläche mit der Aufschrift „Skalieren“ klicke , werden genau zu diesem Zeitpunkt zwei weitere Keyframes für den X- und den Y-Wert hinzugefügt . Ich werde beide auf 1,11 0,1 setzen . Jetzt, wo ich diese Werte auf 1,1 ändere , können Sie sehen, wie die Schaltfläche vergrößert wird Sie können also sehen, wie sich das im Laufe der Animationswiedergabe vergrößern wird Okay, noch einmal, wie bringe ich das zum Abspielen? Nun, ich gehe zurück zu meinem Grafik-Tab. Lass uns runterkommen. Ich habe meinen Button ausgewählt, also sieh dir das an. Ich habe ein paar Ereignisse. Wenn wir den Mauszeiger über die Schaltfläche bewegen, bedeutet das, dass sich unsere Maus darüber befindet, und wenn wir die Schaltfläche aufdecken , befindet sich unsere Maus nicht darüber Fügen wir also Ereignisse für beide hinzu. Da ist der erste, lassen Sie mich den Mauszeiger hinzufügen. Da sind unsere beiden Veranstaltungen. Ich werde hier unsere neue Animation einbauen, die Skalierung des Play-Buttons. Holen wir uns das. Ich ziehe das raus und tippe Play-Animation ein. Wenn wir den Mauszeiger über die Schaltfläche bewegen, müssen wir hier unten etwas Platz schaffen hier unten etwas Platz Wenn wir den Mauszeiger über die Schaltfläche bewegen, möchten wir diese Animation vorwärts abspielen Lassen Sie mich weitermachen und das auswählen und D drücken, um das zu duplizieren Wenn wir die Schaltfläche aufdecken, stellen Sie sicher, dass Sie sie als Animation einbinden, damit sie auch hier unten abgespielt Wenn wir die Schaltfläche aufdecken , bewegen wir sie also nicht mit der Maus Wir wollen den Wiedergabemodus rückwärts einstellen. Das wird einfach genug sein. Schweben Sie vorwärts, schweben Sie, fahren Sie rückwärts. Lass uns weitermachen und das kompilieren und speichern und spielen. Nach 2 Sekunden werden unsere Knöpfe reinrutschen. Wenn ich jetzt mit der Maus darüber fahre, wird diese Schaltfläche größer. Wenn Sie die Maus nicht bewegen, nimmt sie wieder ihre gewohnte Größe an. Wir können darauf klicken, das Spiel starten und schon haben wir einige Widget-Animationen Gut gemacht, Leute. Das wird für diesen Kerl taugen. Wir sehen uns im nächsten. 101. Interaktion mit dem Hauptmenü-Controller: In Ordnung, willkommen zurück alle. Nun, wir haben jetzt ein funktionierendes Hauptmenü. Und wir können auf diese Schaltfläche „Los geht's“ klicken sobald sie angezeigt wird, um unser Spiel zu starten. Aber wie einige von Ihnen zweifellos bemerkt haben, können wir diese Taste nicht mit einem Controller bedienen. Wenn Sie also einen physischen, Sie wissen schon, Xbox-Controller an Ihren Computer angeschlossen haben , können Sie das Spiel nicht wirklich starten , indem Sie die Taste drücken Also dachte ich, ich füge hier noch ein Video hinzu, um zu zeigen, wie wir mit einem Controller mit unserem Hauptmenü interagieren können also zunächst sicher, dass Sie einen Controller, z. B. einen Xbox-Controller, an Ihren Computer angeschlossen haben z. B. einen Xbox-Controller, , und so können wir das erreichen. Hier bin ich in meinem WBP-Hauptmenü. Ich werde von unserer Designer-Ansicht zu unserer Diagrammansicht wechseln unserer Designer-Ansicht zu unserer Diagrammansicht Was wir am Ende unseres Event-Konstrukts hier tun müssen , ist der Punkt, an dem wir um 2 Sekunden warten Dann spielen wir einen Sound und eine Animation auf unserem Intro-Widget Wir werden hier ganz am Ende zwei Knoten hinzufügen. Der erste, den wir hinzufügen werden, ist ein Verweis auf unseren Play-Button. Machen wir also weiter und ziehen das per Drag-and-Drop hinein. Wir werden uns das holen, dann ziehen wir das in die Länge und fügen eine Funktion hinzu, die als Set Focus bekannt ist. Fokus setzen. Stellen Sie sicher, dass wir das so verkabeln. Wenn ich jetzt die Play-Taste drücke, wirst du etwas bemerken. Wenn nun unsere Taste hineingleitet, sehen wir dieses blaue Kästchen neben unserer Let's Go-Taste , das anzeigt , dass unser Controller jetzt den Fokus auf dieser Taste hat. Und wenn ich die Taste drücken würde, ein Xbox-Controller angeschlossen Dadurch kann ich tatsächlich auf diese Schaltfläche klicken und dann das Spiel starten Offensichtlich willst du den blauen Umriss dort nicht sehen, wenn du dich tatsächlich in einer offiziell ausgelieferten Version des Spiels befindest. Wie werden wir das also los? Nun, um das zu tun, werden wir in unser Projektumfeld springen. ich hier zu meinem Haupteditor zurückkehre, kann ich auf die Projekteinstellungen zugreifen, indem ich hier unter der Option Einstellungen, Projekteinstellungen, oder unter Bearbeiten gehe kann ich auf die Projekteinstellungen zugreifen, indem hier unter der Option Einstellungen, . Die Projekteinstellungen finden Sie hier. Suchen Sie einfach nach Render Focus. Derzeit haben wir diese Renderfokus-Regel, die auf „Immer“ gesetzt ist. Und das ist es, was den blauen Umriss um diese Schaltfläche herum erscheinen lässt, wenn sie animiert wird, um zu zeigen , dass sie den Fokus hat Wenn ich also zu meinen Projekteinstellungen zurückkehren und von „ Immer“ auf „Niemals“ wechseln würde, würde ich wieder hineinspringen und von „ Immer“ auf „Niemals“ wechseln würde, und spielen Schieben Sie jetzt auf meiner Schaltfläche in die Ansicht. Ich sehe den blauen Umriss nicht, obwohl ich immer noch die Taste an meinem verbundenen Xbox-Controller drücken und das Spiel starten kann . Sehr gut damit Lassen Sie uns weitermachen und dieses Asset speichern. Ich werde mit der rechten Maustaste darauf klicken und speichern. Und Leute, das wird es für diesen machen. Wir sehen uns im nächsten. 102. Menülayout pausieren: Nun, da wir ein Hauptmenü für unser Spiel erstellt haben , wäre es nicht schön, wenn wir ein Pausenmenü erstellen würden? Ich denke, das wäre es. Lassen Sie uns gleich zur Sache kommen. Ich fange gleich hier in meinem U-I-Ordner an. Und wieder werde ich rechten Maustaste in eine leere Stelle klicken. Benutzeroberflächen-Widget, Blueprint. Wir werden dieses Widget ganz oben auswählen. Und ich werde dieses neue Widget Blueprint Asset BP Underscore Menu nennen Asset BP Underscore Und dann doppelklicken wir darauf, um es sofort zu öffnen Jetzt hier drinnen werden wir nur ein paar Widgets hinzufügen. Wir werden wieder mit einem Canvas-Panel beginnen . Das Canvas-Panel wird sich wie ein Heftbrett verhalten, ein Korkbrett, an dem auch andere Widgets angeheftet Das Canvas-Panel wird also das erste sein. Die zweite, die wir hier hinzufügen werden, wird als Hintergrundunschärfe bezeichnet Wir werden also quasi unser Spiel verwischen wenn wir unser Spiel mit unserem Paws-Menü überlagern Also könnte ich das so auf mein Leinwand-Panel ziehen . Oder ich könnte es hierher ziehen. Lassen Sie mich es einfach hier oben auf mein Leinwandfenster ziehen , um eine andere Vorgehensweise zu zeigen. Ich werde sofort unsere Hintergrundunschärfe auswählen Und ich mache weiter und setze dafür einen Anker drüben im Detailbereich Das wird dieser Vollbild-Anker sein. Jetzt werden sich diese Offsets alle auf unseren Vollbildmodus beziehen, weil wir wollen, dass es sich um einen Vollbildmodus handelt Wir wollen diesen Offset überhaupt nicht. Wir wollen, dass die Offsets links, rechts, oben und unten alle Null sind Setzen Sie die Offsets also rundum auf Null. Und jetzt haben wir eine Hintergrundunschärfe für unseren gesamten Bildschirm Nun zu der Menge an Unschärfe , die durch diese Unschärfenstärke gesteuert wird. Sie können damit herumspielen, sobald wir das in unserem Spiel sehen Ich habe festgestellt, dass eine Unschärfenstärke von fünf in der Regel genau richtig ist Okay, als Nächstes füge ich hier eine Schaltfläche zu unserem Bildschirm hinzu. also unter das Palettenfenster Gehen wir also unter das Palettenfenster und ziehen wir eine Schaltfläche direkt hierher. Und Sie können sehen, dass es an meine Hintergrundunschärfe angehängt wurde, was ich eigentlich nicht wollte Und deswegen hat es meinen gesamten Bildschirm ausgefüllt. Also werde ich das per Drag & Drop hier per Drag & Drop wieder oben auf mein Leinwand-Panel ziehen. Siehst du das skizziert? Und jetzt habe ich meinen Button quasi wieder angedrückt, er ist nicht mehr mit meiner Hintergrundunschärfe verknüpft Damit werde ich gleich einige Details dafür festlegen gleich einige Details dafür Für den Anfang nenne ich das im Detailbereich meine Schaltfläche „Weiter“ Wir werden nur eine Schaltfläche mit der Aufschrift Weiter in unserem Pausenmenü haben Aufschrift Weiter in unserem Pausenmenü Jetzt haben wir den Namen dieses Widgets geändert, den Anker. Ich werde den Anker so einstellen, dass er dieser mittlere quadratische ist. Und das bedeutet, dass die Positionsversätze relativ zu diesem Anker sein werden Ich werde die Position x auf Null setzen. Die Position y soll Null sein. Und wenn ich das jetzt vergrößere, kannst du sehen, wie es irgendwie an der oberen linken Ecke der Schaltfläche ausgerichtet ist. Schau dir das an. Wenn ich meine X-Ausrichtung hier auf 0,5 setze , geht das im Grunde auf die Hälfte der X-Ausrichtung über. Und das Gleiche gilt für die Y-Ausrichtung hier. Wenn ich das auch auf 0,5 setze, wird das die Y-Ausrichtung haben, die Ausrichtung von oben nach unten. Das wird also ziemlich gut sein. Jetzt stelle ich die Tastengröße genau hier im X auf 450 im Y ein. Ich werde sie auf 130 setzen Wenn ich nach hinten zoome, bekommst du ein Gefühl dafür, wie groß die Taste auf dem Bildschirm sein wird Ordnung, als Nächstes legen wir unseren Stil für unseren Button fest. Dies wird dem, was wir hier für unser Hauptmenü festgelegt haben, sehr ähnlich sein , der normale Stil. Ich werde unsere Breite hier unter „Stil“ auf sieben einstellen. Beim Rundungstyp ändere ich den Radius auf halber Höhe Das wird ihm diese Pillenform geben , die ich irgendwie mag Das wird mein normaler Stil sein. Also der Button, wie er normalerweise aussieht, ohne dass wir Mauszeiger drüber bewegen oder ohne dass wir darauf klicken. Also werde ich das zusammenklappen Lassen Sie uns nun den Hover-Status für diese Schaltfläche festlegen. Dafür werde ich die Breite erneut auf sieben einstellen Breite erneut auf sieben einstellen Der Rundungstyp wird ebenfalls die halbe Höhe, der Radius und der Umriss sein Radius und der Umriss Ich werde genau hier klicken. Wir werden das auf eine Art gelbliche Farbe einstellen. Und ich setze den Wert, den Alphawert, auf 0,5 , so dass das halbwegs durchsichtig ist, also bleibe ich dabei, das sieht ziemlich gut Das wird also unser allerbester Button-Stil sein. Dann lass uns weitermachen und unseren Pressed Style dafür festlegen. Ich werde die Breite auf zehn setzen, diesen Rundungstyp. Ich werde wieder den Radius auf halber Höhe einstellen. Und ich werde diese Farbe belassen. Also werde ich hier wirklich nur die Breite dieser Kontur ändern . Und dann unten haben wir unsere Presse. Sound und unser Schweben. Sound für Hover Sound Lass uns weitermachen und das auf „Grab, Grab, Unterstrich VR, Grab Q“ setzen . das ist wieder im Engine V Sound Wenn Sie also keinen Zugriff auf diesen Pfad haben, sollten Sie durch Klicken auf dieses Zahnradsymbol, durch Klicken auf dieses Zahnradsymbol das den Inhalt der Engine anzeigt, dorthin gelangen Aber da ist es. Mein V R Grab Cue brauche ich für den Hover Sound Der Presssound, den ich will, ist meine Münze. Mario-Münze. Oh, und ich hätte es fast vergessen. Ich möchte dafür eine Hintergrundfarbe festlegen. also hier nach unten scrollen unsere Schaltfläche „Weiter“ ausgewählt haben, unsere Hintergrundfarbe Ich wollte etwas Maroonisches Vielleicht ein bisschen dunkler, so etwas ist ziemlich gut Du darfst vorerst nicht davon besessen sein. Klicken Sie auf Okay, jetzt möchten wir etwas Text über dieser Schaltfläche platzieren Wir können das tun, indem wir unser Text-Widget hierher ziehen. Ich könnte es oben auf diese Schaltfläche oder hier in der Hierarchie nach unten ziehen diese Schaltfläche oder hier in der Hierarchie nach unten Wenn ich in der Hierarchie nach unten ziehe, sobald ich sehe, dass die Schaltfläche „Weiter“ von diesem blauen Umriss umgeben ist , kann ich sie per Drag-and-Drop direkt darüber ziehen. Und ich kann dieses Text-Widget im Bereich „Details“ auswählen Ich nenne es mit dem Unterstrich Weiter Wenn ich im Bereich „Details“ den Text sofort nach oben scrolle, kann ich ihn so einstellen, dass er gelesen Fahren Sie fort. Und was die Schriftfamilie angeht , so mag ich Roboto auch da nicht Das ist ein bisschen langweilig. Hier sind diese importierten Schriften also wirklich nützlich. Ich werde das auf meinen Mario 256-Schriftstil einstellen, irgendwie so. Ich werde die Schriftgröße auf 45 setzen, meine Konturgröße, ich werde sie auf sechs setzen, also habe ich einen kleinen schwarzen Umriss um das herum. Ich habe die rötliche Farbe vielleicht etwas zu dunkel eingestellt Farbe vielleicht etwas zu dunkel Es ist ein bisschen schwierig , diesen Umriss zu erkennen. Und noch einmal, wenn Sie Ihre Konturfarbe anpassen möchten, können Sie genau dort klicken und diese anpassen. Dann möchte ich das in dieser Schaltfläche ein wenig nach unten bewegen, weil es ein bisschen oben ist Ich kann das also ändern, indem ich unter diesen Bereich für die Polsterung komme, ganz oben im Detailbereich Ich werde das erweitern und dafür setze ich links auf , ich werde mit der Tabulatortaste nach unten nach oben klicken Ich werde das auf zehn setzen. Und dann für rechts und für unten. In Ordnung. Und ich denke, das wird ziemlich gut aussehen. Ja, das ist anständig genug für mich. Damit werden wir weitermachen und es speichern. Wir haben jetzt unser Pausenmenü-Layout. Im nächsten Video werden wir die Eingabe und das Skript erstellen, die erforderlich sind , damit es auf dem Bildschirm angezeigt wird und interaktiv ist. Wir sehen uns dort 103. Menüskript pausieren: Willkommen zurück. In diesem Video ist es unser Ziel, es so zu gestalten, dass wir unser Spiel pausieren und mit unserem Pause-Menü interagieren können mit unserem Pause-Menü interagieren , damit wir das Spiel wieder unterbrechen können Um das zu tun, gehen wir zunächst zu unserem Ordner für Dritte Hier gehen wir in den Eingabeordner und erstellen eine Eingabeaktion, die dafür verantwortlich ist , unser Spiel zu pausieren Gehen wir in die Eingabe durch Dritte ein. Gehen wir hier in unseren Aktionsordner. Und ich werde die Steuerung gedrückt halten und scrollen. Scrollen Sie zurück, um die Größe dieser Miniaturbilder zu verringern die Größe dieser Miniaturbilder Das ist ein heißer Tipp für dich. Kann die Steuerung gedrückt halten und scrollen. Scrollen Sie nach oben und unten, um diese Vorschaubilder zu verkleinern und zu vergrößern. Und ich werde mit der rechten Maustaste in eine leere Stelle klicken. Wir werden in unserem Eingabemenü unter Eingabe landen. Wir werden unter Input Action fallen. Jetzt nennen wir das eine Pause mit Unterstrichen. Und dann doppelklicken wir auf diesen Typen, um ihn zu öffnen Ordnung, in diesem Asset definieren wir einige Dinge darüber, wie diese Eingabeaktion ausgelöst werden soll und wann sie ausgelöst werden kann. Lassen Sie uns also zunächst im Triggerbereich festlegen, wie dies ausgelöst werden soll. Lassen Sie uns weitermachen und das ein wenig übergehen , damit Sie sehen können, was mit unserem Wertetyp verbunden ist, digital boole, ist es passiert, nicht wahr? Auslöser genau hier. Klicken wir auf diese Plus-Schaltfläche und in unserem Index Null erweitern wir das nach unten. Und wir wollen etwas auslösen , wenn wir eine bestimmte Taste drücken. Und genau hier steht, dass es Feuer nur einmal auslösen wird Feuer nur einmal auslösen wenn die Eingabe die Auslöseschwelle überschreitet Wollen wir herausfinden, wann eine bestimmte Taste gedrückt wurde Nun, das ist sehr wichtig. Verpasse diesen Schritt nicht. Wir möchten, dass dies auch ausgelöst wird , wenn das Spiel pausiert. Wenn du dieses Kästchen nicht ankreuzt, wird es nicht funktionieren, wenn wir die Pause des Spiels aufheben wird es nicht funktionieren Digital Bull gedrückt für den Trigger und dann Trigger, wenn Pause auf true gesetzt ist. Fahren Sie fort und speichern Sie das Als Nächstes müssen wir zu unserem Charakterentwurf zurückkehren Das ist ein kleiner Rückblick unseren Charakter aus der dritten Person Scrollen Sie zurück und scrollen Sie zurück nach oben, wo unsere Veranstaltung beginnt. Spiel hier. Und im Moment teilen wir den Beginn unserer Veranstaltung Spielen Sie für einen Sequenzknoten. Genau hier haben wir unseren Mapping-Kontext. Und das bestimmt, welche Eingaben in unserem Spiel alle funktionieren und welche nicht. Und derzeit verwenden wir dieses IMC-Standard-Asset in unserem Charakter-Blueprint Jetzt kann ich dorthin navigieren, indem ich auf diese Lupe klicke. Und wieder ist es da. In unseren Ordnern für Dritte. Und wenn ich auf dieses Asset doppelklicke, das vielleicht aus dem vorherigen Kurs bekannt vor. Hier fügen wir im Wesentlichen unsere verschiedenen erstellten Eingabeaktionen Und dann ordnen wir ihnen Schaltflächen zu. Wenn wir also zum Beispiel die Taste auf unserer Tastatur oder die linke Maustaste auf dem Gamepad drücken, wird dadurch unser Shot-Fireball-Event ausgelöst Okay, wir müssen hier ein neues Mapping für unsere IA-Pause hinzufügen hier ein neues Mapping für können wir tun, indem wir hier oben unter Mappings diese winzige Plus-Schaltfläche Aus welchem Grund auch immer, es erweitert all diese noch einmal, was ein bisschen nervig ist, aber es hat gerade diesen Eintrag genau hier erstellt Hier können wir also unsere A-Pause einlegen, da ist sie. Jetzt macht es wieder dieses Ding, bei dem es sie alle ausdehnt. Auch hier können wir einige Tasten damit verknüpfen , um das Spiel zu unterbrechen. Ich möchte es so einrichten, dass sowohl die Taste auf unserer Tastatur als auch Starttaste auf einem Gamepad das Spiel pausieren, um Tasten festzulegen, mit denen dieses Ereignis ausgelöst werden kann. Ich werde auf diese Tastatur klicken , dann färbt sie sich orange. Jetzt kann ich einfach auf eine Taste auf meiner Tastatur tippen. Also werde ich die Taste drücken und da ist die Taste. Und dann füge ich noch einen für meine Controller-Eingabe hinzu , um das Spiel anzuhalten. Also werde ich noch einmal darauf klicken. Und natürlich macht es diese nervige Sache, bei es all diese Kategorien erweitert. Und jetzt kann ich eine zweite Eingabe eingeben, um das Spiel zu pausieren. Also werde ich darauf klicken, jetzt habe ich einen Xbox-Controller daran angeschlossen Ich werde die Taste drücken, die sich direkt neben der X-Taste auf meinem Xbox-Controller befindet Es wird also als Gamepad Special bekannt sein. Stimmt. Das war ursprünglich auf traditionelleren Gamepads als Starttaste bekannt. Okay, da diese nun verknüpft sind, können wir weitermachen und das Ganze speichern und schließen. Wir können auch unseren Charakter aus der dritten Person schließen . Und auch unser Input Action Pause-Asset. Okay, um jetzt unser Spiel zu pausieren, möchte ich dieses Skript tatsächlich in unseren Player-Controller-Blueprint einfügen unseren Player-Controller-Blueprint , weil unser Charakter sterben kann Wir wollen das einfach in einen Plan aufnehmen, der fortbesteht, unabhängig davon, ob unser Spieler tot ist Lasst uns also weitermachen und unseren Spieler-Controller-Blueprint finden unseren Spieler-Controller-Blueprint Und noch einmal: Wenn du dir nicht sicher bist, welchen Player-Controller-Blueprint du verwendest, kannst du ihn in deinen Projekteinstellungen finden, indem du unter Einstellungen > Projekteinstellungen unter Karten und Wir haben genau dort unseren Standard-Spielmodus. Und das ist unsere Player Controller-Klasse BP Player Controller. Wir können direkt dort im Inhaltsbrowser dorthin navigieren. Dort befindet es sich in unserem Plattform-Blueprint-Framework-Ordner. Doppelklicken wir auf diesen Typen , um ihn zu öffnen. Ich scrolle mit dem Rad auf der Rückseite und finde hier eine leere Stelle. Und ich komme gleich hierher. Also müssen wir das Eingabe-Aktionsereignis oder diese Pause finden . Also werde ich mit der rechten Maustaste in eine leere Stelle klicken und eine Unterstrichpause eingeben eine Unterstrichpause eingeben Und das ist das, nach dem ich suche, ein erweitertes Aktionsereignis, Eine Pause Es hat das Pfeilsymbol direkt daneben. Und da haben wir's. Dies spricht mit unserem Pause-Event , das wir gerade in unserem Input-Mapping-Kontext eingerichtet haben. Also, was wollen wir , dass passiert? Also, wenn wir damit beginnen , die Taste zu drücken, schießen wir aus dieser Stecknadel heraus. Ich werde das über einen Zweigknoten laufen lassen. Du wirst Y gleich hier sehen. Wir werden das durch eine Filiale laufen lassen. Und die Bedingung, die wir hier überprüfen werden, ist , ob wir den Mauszeiger zeigen oder nicht. Also klicke ich mit der rechten Maustaste in eine leere Stelle und tippe Mauszeiger anzeigen ein. Wir werden jetzt das Anzeigen des Mauszeigers bekommen . Ich werde das einfach sofort in die Filiale stecken. Das ist ein boolescher Wert, hier in unserer Player-Controller-Elternklasse existiert Wenn ich zu den Klassenstandardwerten gehe und im Detailbereich den Mauszeiger eintippe, erscheint dort mein Boolescher Mauszeiger erscheint dort mein Boolescher Mauszeiger Also werde ich überprüfen, ob wir das zeigen oder wir jetzt zum ersten Mal die Taste drücken , wird der Mauszeiger nicht angezeigt. Es ist standardmäßig falsch. Also, was wollen wir tun? Also, aufbauend auf diesem falschen Zweig werden wir ein Widget erstellen. Nun, welches Widget würden wir gerne erstellen? Unser Pausenmenü. Offensichtlich das WBP-Pausenmenü Jetzt reicht es nicht mehr aus , es zu erstellen. Wir müssen es auch anweisen , es zum Viewport hinzuzufügen. Aber bevor ich das mache, klicke ich mit der rechten Maustaste auf diesen Pin hier. Und ich werde unser Pausenmenü auf eine Variable hochstufen . Es hat gerade diesen Setter erstellt Und hier in unserem Abschnitt mit meinen Blueprint-Variablen werden wir aufgefordert , unserer Variablen einen Namen zu geben Also nenne ich das mein Pausenmenü. Und dann nehme ich die Ausgabe und sage „Zum Viewport hinzufügen Das ist es, was tatsächlich das Pausenmenü zum Viewport hinzufügen wird Und dann, ganz am Ende, ziehe ich die Maus ab und tippe den Mauszeiger anzeigen Und dieses Mal möchte ich Mauszeiger anzeigen einstellen. Und hier werde ich es auf wahr setzen. Also hier ist die Idee. wir unser Spiel zum ersten Mal pausieren, sagen wir, indem wir die Taste auf unserer Tastatur drücken, wird es standardmäßig falsch sein. Also gehen wir das hier durch, wir zeigen unser Pausenmenü an. Und dann werden wir sagen, ja, wir zeigen jetzt das Pausenmenü an. Wenn wir also erneut versuchen, die Taste zu drücken, werden wir aus dem richtigen Zweig heraus feuern. Somit werden wir am Ende nur eines dieser Pausenmenüs erstellen. Wir werden nicht versehentlich eine zweite Instanz davon erstellen. In Ordnung, aber wir sind noch nicht fertig. Nachdem wir dieses Set aktiviert haben, zeigen wir den Mauszeiger auf true Was ich tun möchte, ist, einen Sound abzuspielen. Also spiele einen Sound ab, zwei D, wenn ich auf dieses Drop-down-Menü klicke, gebe ich Pause ein. Ich habe diesen Mario-Pausen-Soundeffekt. Und dann ist das der wahre Clou. Ich ziehe das in die Länge und tippe Spielpause ein. Es gibt eine Funktion zum Einstellen der Spielpause und das ist es, was das Spiel tatsächlich unterbrechen wird. Sobald Sie dieses Kästchen angekreuzt haben, ist es sehr wichtig, dass Sie dieses Kästchen ankreuzen. Okay, großartig. Also das wird das Spiel tatsächlich unterbrechen. Wie pausieren wir es mit derselben Eingabe? Nun, denken Sie daran, dass dies beim ersten Drücken der Taste oder der Starttaste auf unserem Controller das erste Mal wahr wird beim ersten Drücken der Taste oder der Starttaste auf unserem Controller das erste Mal . wir also das zweite Mal versuchen, das zu drücken , werden wir den wahren Zweig durchgehen. Was wir hier also tun können, ist einen Verweis auf unser Pausenmenü einzufügen. Das werden wir uns holen. Denken Sie daran, dass wir das Pausenmenü genau hier erstellt haben. Und dann ziehen wir das in die Länge und sagen „Eltern entfernen“. Aus dem Elternteil entfernen. Dadurch wird das Pausenmenü im Wesentlichen vom Bildschirm entfernt. So entfernen Sie ein bestimmtes Widget vom Bildschirm. Sie erhalten einen Verweis darauf und sagen, dass es aus dem übergeordneten Bereich entfernt werden soll. Sobald es entfernt ist, was ich tun möchte, tippe ich noch einmal Mauszeiger anzeigen ein und wir sagen nein, wir zeigen unseren Mauszeiger nicht mehr. wir also das nächste Mal die Taste erneut drücken, wird die Standardeinstellung ausgewertet, sodass wir sie erneut erstellen können Lassen Sie uns auch Sound für D abspielen. Sound Tot abspielen. Wir spielen den gleichen Pause-Sound , weil wir unser Spiel genau hier Und dann ziehen wir die festgelegte Spielpause heraus und stellen dieses Mal sicher, dass sie Das wird also unser letztes Skript zum Pausieren und Aufheben der Pause sein . Wenn du das Video hier pausieren willst , um das auszuwerten, versuche ich, das so gut wie möglich einzurahmen Ordnung, lassen Sie uns das sofort kompilieren und speichern. Und gib uns einfach einen kurzen Test. Also rein springen und spielen. Also gut, hier bin ich. Ich tippe einfach auf die Taste auf meiner Tastatur. Ich sehe, dass das Pausenmenü angezeigt wird. Ich tippe erneut auf die Taste. Pause. Großartig. Ich werde es hier auf meinem Controller ausprobieren. Also werde ich die sogenannte Start-Taste auf dem klassischen Controller drücken sogenannte Start-Taste auf dem , der den Controller pausiert Unterbrechen Sie es übrigens, Sie können diese Zeit sogar mischen und anpassen Ich pausiere auf meinem Controller und drücke die Taste auf meiner Tastatur , um das Spiel anzuhalten. Nun, das ist alles schön und gut. Derzeit ist diese Schaltfläche jedoch nicht interaktiv. Lassen Sie uns das auch interaktiv machen. Damit wir das Spiel auch beenden können, indem wir auf Continuum klicken Ordnung, um das zu tun, werden wir unseren BP-Player-Controller verlassen Wir kehren zu unserem BP-Pausenmenü zurück. Wir gehen zur Registerkarte „Grafik“ auf der rechten Seite, direkt drüben im Abschnitt „Meine Blueprint-Variable Dort befindet sich ein Verweis auf unsere Schaltfläche „Weiter“ Alles, was wir tun müssen, ist unter dem Detailbereich nach unten zu gehen , wo „Klicken“ steht Fügen wir dafür ein Ereignis hinzu. Also werde ich auf diese Plus-Schaltfläche klicken und sie einfach wegziehen, wir sagen „Aus Eltern entfernen“. Dadurch werden wir quasi vom Bildschirm entfernt , wenn wir uns auf dem Bildschirm befinden. Und dann klicken wir mit der rechten Maustaste holen uns den Player-Controller. Ich ziehe das in die Länge und sage Mauszeiger. Ich werde Mauszeiger anzeigen einstellen. Wir werden sicherstellen, dass unser Mauszeiger nicht mehr sichtbar ist. Wir werden dann Sound zwei D abspielen . Ich bin sicher, Sie können sich vorstellen, welchen Sound wir dieser Pause abspielen möchten. Sound Und dann, um diese Offset-Spielpause zu beenden. Wir werden das so setzen, dass ich sagen wollte, dass es falsch ist, was auch falsch ist Stellen Sie also sicher, dass das falsch ist. Lassen Sie uns das kompilieren und speichern. Und dann reinspringen und spielen. Ich tippe auf diese Taste auf meiner Tastatur. Mein Mauszeiger ist oben. Ich kann jetzt auf diese Schaltfläche „Weiter“ klicken. Fahren Sie fort. Und es unterbricht das Spiel und los geht's. Pause einlegen. Arbeit. Gut gemacht, Leute. Wir haben ein funktionierendes Pausenmenü, Leute, das reicht für diesen. Wir sehen uns im nächsten. 104. BONUS - Spieler-Sprint: Ordnung, willkommen zurück. Ein Bonus-Video für euch alle. Ich werde euch zeigen, wie ihr eurem Spiel eine Sprint-Mechanik hinzufügen könnt eurem Spiel eine Sprint-Mechanik Und zu Beginn befinde ich mich in meinem Ordner für Eingabeaktionen für Dritte Dieses Verzeichnis genau hier, und wir werden eine neue Eingabeaktion erstellen. Lassen Sie uns weitermachen und mit der rechten Maustaste in eine leere Stelle klicken. Wir werden unter Eingabe-Eingabe-Aktion fallen. Das ist das Asset, das wir schaffen wollen. Einen Underscore-Sprint nenne ich diesen Typen. Und da ist nichts drin , was ich einstellen muss, also werde ich darauf klicken und speichern. Jetzt muss ich dieses Ereignis in meinen Eingabe-Mapping-Kontext einfügen meinen Eingabe-Mapping-Kontext Und noch einmal, um zu verstehen welchen Eingabe-Mapping-Kontext wir verwenden, können wir in unseren Charakter-Blueprint gehen Da ist mein BP, ein Charakter aus der dritten Person. Das ist der, den ich für diesen Kurs verwende Hier, wo dein Event beginnt, zu spielen. Und ich muss mir da oben eine Sequenz notieren. Wir haben unseren Mapping-Kontext. Dies ist die Liste der Eingabeereignisse, die unser Spiel derzeit verwendet. Und wenn ich auf diesen Browser und Inhaltsbrowser klicke, kann ich sehen, dass es dieser hier ist, mein IMC-Standard Also werde ich darauf doppelklicken, um es zu öffnen. Und jetzt muss ich hier ein Sprint-Event hinzufügen. Um das zu tun, muss ich unter dieser Plus-Schaltfläche für Mappings klicken dieser Plus-Schaltfläche für Mappings Das wird diesen Eintrag genau hier unten erstellen. Und jetzt muss ich nur noch meinen Sprint einbauen, die Eingabeaktion, die ich gerade erstellt habe. Jetzt muss ich nur noch etwas tun, und aus welchem Grund auch immer wieder diese Art von seltsamen Effekten, ich muss dem ein paar Knöpfe zuordnen. Also, wie möchte ich meinen Charakter zum Sprinten bringen? Nun, ich werde auf diese Tastatur klicken und sagen, dass das mit der linken Shift-Taste erledigt wird. Ich werde noch einmal darauf klicken. Es wird diese seltsame Sache machen, und ich werde auf diese Tastatur klicken. Und ich sage, die rechte Umschalttaste kann das auch tun. Und dann werde ich für Controller-Benutzer da draußen noch einmal auf diese Plus-Schaltfläche klicken. Und ich werde auch sagen , wenn ich die Taste gedrückt halte, sage ich, dass es die X-Taste auf meinem Xbox-Controller ist, die als Gamepad-Gesichtstaste links bekannt ist Dass das auch das auslösen wird. Okay, da das hier zu meinem Input-Mapping-Kontext-Asset hinzugefügt wurde , lassen Sie uns weitermachen und das speichern. Und jetzt können wir wieder in unseren Charakter aus der dritten Person zurückkehren. Und ich werde hier wieder reinzoomen. Und ich glaube, ich werde dieses kleine Drehbuch, das ich gleich schreiben werde, einbauen. Es wird ziemlich kurz sein. Ich lege es hier direkt neben meinen Sprungeingang. Also werde ich hier nur ein bisschen herumschwenken . Ich werde in eine leere Stelle klicken und nach einem Sprint suchen. Es ist der mit dem Pfeil direkt daneben. Da ist mein Action-Event, das ein bisschen vergrößert wird Ich möchte mit der Bewegungskomponente meines Charakters sprechen Bewegungskomponente meines Charakters Weil unsere Bewegungskomponente hier unsere maximale Gehgeschwindigkeit ist , die derzeit auf 1.000 eingestellt ist. Das bestimmt, wie schnell unser Charakter gehen kann. Ich ziehe das rein, dann ziehe ich es weg und sage „Gehgeschwindigkeit festlegen“. Ich werde das auch auf eine neue Geschwindigkeit einstellen wollen, wenn wir anfangen, diese Aktion zu Lassen Sie mich einfach Control plus D drücken, um diesen Knoten zu duplizieren, sowie wenn wir diese Aktion abgeschlossen haben Das ist in unserem Fall, indem Sie eine der Umschalttasten oder die X-Taste auf unserem Xbox-Controller gedrückt halten. Was soll die neue maximale Gehgeschwindigkeit sein , wenn ich dieses Ereignis initiiere? Nun, ich denke, ich werde es einstellen und dazu muss ich tatsächlich meine Standard-Bewegungsgeschwindigkeit zurücksetzen Derzeit ist meine standardmäßige maximale Gehgeschwindigkeit auf 1.000 eingestellt . Ich werde sie auf etwa 650 einstellen, wenn ich nicht Und dann sage ich, wenn ich sprinte, ich das auf 1.200 ein. Dann, weil ich das für meine Charakterbewegungskomponente standardmäßig auf 650 zurückgesetzt habe, sage ich, dass, wenn wir nicht sprinten, wenn wir die Sprint-Taste gedrückt gehalten haben, das die X-Taste auf einem Xbox-Controller oder die linke oder rechte Umschalttaste ist . Ich setze das wieder auf den Wert von 650 zurück. Das sollte reichen. Lassen Sie uns also weitermachen und hier kompilieren, um sicherzustellen, dass unser Skript gut aussieht. Und speichern Sie dann, springen Sie rein und spielen. Lass uns das mal spielen. Und wenn ich mich einfach hin und her bewege, fahre ich jetzt langsamer. Wenn ich jetzt die Shift-Taste gedrückt halte, können Sie sehen, dass ich mitfahre Und wenn ich die Shift-Taste loslasse, gehe ich zu einer langsameren Geschwindigkeit zurück So können wir unserem Spiel eine Sprint-Mechanik hinzufügen. Hoffe ihr mögt das, Leute. Das reicht für diesen aus. Wir sehen uns, ob du den nächsten gewinnst. 105. BONUS - Erweiterung der Feuerblumenzeit: In Ordnung, noch ein Bonus-Video für alle hier. Ich möchte es so machen, dass, wenn unser Charakter die Feuerblume einsammelt, aber die Zeit etwas langsamer wird, im Gegensatz dazu, dass unser Charakter einfach durch diese Feuerblume läuft und sofort größer wird Ich möchte diesen Effekt ein bisschen besser verkaufen . Also, wie können wir das machen? Nun, dafür können wir etwas verwenden, das als globale Zeitdilatation bezeichnet wird Das ist eine Möglichkeit, die Zeit zu verlangsamen. Das kann in unserem Charakter aus der dritten Person, Blueprint, geschehen Charakter aus der dritten Person, Blueprint, Falls du vergessen hast, wo das ist, Baupläne für die dritte Person, ist da noch unser Charakter aus der dritten Person Lass uns den Kerl hier drinnen öffnen. Ich möchte zu dem Drehbuchabschnitt gehen, in dem unser Charakter die Feuerblume gesammelt hat. Das hat Flower Power. Sobald dieses benutzerdefinierte Ereignis ausgelöst wird , ziehen wir es von hier aus und stellen die globale Zeitdilatation Und wieder kann das die Zeit verlangsamen. Ein Wert von 0,0 würde bedeuten, dass die Zeit gestoppt wird. 1,0 bedeutet 100% unserer gewohnten Zeit. Ein Wert von 0,5 würde bedeuten , unseren Zeitfluss zu halbieren. Ich werde unsere Zeitdilatation hier auf 0,2 einstellen und dann werden wir all diese Dinge genau hier machen Wenn wir mit dem gesamten Charakterwachstumseffekt fertig sind , ist das wichtig Ich möchte unsere globale Zeitdilatation so einstellen, dass sie wieder zum gewohnten Zeitfluss Also, was ich hier tun kann, ist, von diesem Zielstift aus zu ziehen und zu sagen, globale Zeitdilatation einstellen Ja, stellen Sie sicher, dass es vom Ende unserer Zeitleiste kommt und dann in die Richtung unseres Schalters auf Timeline geht in die Richtung unseres Schalters auf Timeline Hier werden wir unsere Zeit auf die übliche Zeit zurücksetzen, die 1,0 sein wird. Das ist alles schön und gut. Es gibt noch eine Sache, die ich tun möchte , ist, dass ich hier innerhalb unserer Zeitleiste auf diesen Knoten doppelklicke. Hier drinnen haben wir diese Knöpfe oben. Und das hier ist Ignoriere die Zeitdilatation. Also wollen wir die Zeitdilatation ignorieren , solange dieser Effekt anhält Also werde ich das einschalten, und wenn es an ist und es hier blau ist, dann können wir den ganzen Effekt testen Lassen Sie mich einfach noch einmal zu unserem Ereignisdiagramm zurückkehren Ganz am Anfang der Flower-Power-Funktion werden wir die Zeit verlangsamen. Wir werden diesen Effekt auf das Wachstum unserer Charaktere ignorieren . Und sobald diese Zeitleiste fertig ist, werden wir diese Zeit wieder auf ihren gewohnten Ablauf umstellen. Lassen Sie uns das kompilieren und speichern und loslegen und spielen. Und los geht's. Ich werde die Shift-Taste gedrückt halten, um meine neuen Sprint-Fähigkeiten zu nutzen. Und lass mich hier einfach auf diesen Mistkerl herumtrampeln. Werde ihn wirklich schnell los. In Ordnung, und jetzt schau was passiert, wenn ich diese Feuerblume einsammle. Ein bisschen langsame Zeit und dann zurück zu unserem gewohnten Zeitfluss. In Ordnung, Leute, das reicht für diesen. Wir sehen uns im nächsten.