So erstellst du ein FPS-Spiel – Unreal Engine 5 Multiplayer (2024) | Pixel Helmet | Skillshare
Suchen

Playback-Geschwindigkeit


1.0x


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

So erstellst du ein FPS-Spiel – Unreal Engine 5 Multiplayer (2024)

teacher avatar Pixel Helmet, Game Developer & Publisher

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.

      1.01 Einführung

      1:21

    • 2.

      1.02 Unreal Engine 5 herunterladen

      1:37

    • 3.

      1.03 Ein neues Projekt erstellen

      2:21

    • 4.

      1.04 Unreal Engine 5 Überblick

      17:54

    • 5.

      2.01 Spieleinführung

      2:21

    • 6.

      2.02 Eine neue Karte erstellen

      1:05

    • 7.

      2.03 Umgebungs-Assets importieren

      4:16

    • 8.

      2.04 Die Umgebung gestalten

      12:05

    • 9.

      2.05 Volumen nach dem Prozess

      6:05

    • 10.

      2.06 Beleuchtung der Umgebung

      23:46

    • 11.

      2.07 Tipps zur Umgebungsoptimierung

      10:52

    • 12.

      3.01 Die Charaktere importieren

      2:56

    • 13.

      3.02 Eltern- und Kind-Blaupausenkurse

      4:53

    • 14.

      3.03 Den Charakter einrichten

      8:31

    • 15.

      3.04 Spielmodus und Spieler-Controller

      4:58

    • 16.

      3.05 Eingabe-Mapping-Kontext

      5:14

    • 17.

      3.06 Den Eingabe-Mapping-Kontext hinzufügen

      5:13

    • 18.

      3.07 Blueprint-Schnittstelle

      6:53

    • 19.

      3.08 Spielerbewegung

      7:07

    • 20.

      3.09 Die Player-Animationen importieren

      3:27

    • 21.

      3.10 Erstellen von IK-Rigs

      6:58

    • 22.

      3.11 Einen IK-Retargeter erstellen

      6:49

    • 23.

      3.12 Die Hände reparieren

      5:40

    • 24.

      3.13 Die Animationen neu ausrichten

      4:37

    • 25.

      3.14 Einführung in das Mischen von Räumen

      3:35

    • 26.

      3.15 Unarmed Blend Spaces

      8:40

    • 27.

      3.16 Einführung in Animations-Blueprints

      3:53

    • 28.

      3.17 Bewegungsgeschwindigkeit und -richtung

      7:47

    • 29.

      3.18 Multiplayer-Crouch-Input

      2:34

    • 30.

      3.19 Multiplayer-Crouch-Funktion

      11:54

    • 31.

      3.20 Bauplan für die Animation im Hocken

      7:30

    • 32.

      3.21 Variable Replikation

      3:08

    • 33.

      3.22 Animationsglättung

      2:46

    • 34.

      3.23 Mehrspieler-Spaziergang

      6:00

    • 35.

      3.24 Blueprint für Walking-Animationen

      4:46

    • 36.

      3.25 Mehrspieler-Sprung

      4:59

    • 37.

      3.26 Bauplan für die Jumping-Animation

      7:37

    • 38.

      3.27 Einführung in die Aufzählungen

      2:47

    • 39.

      3.28 Bewegungsvariablen zu Enums wechseln

      10:46

    • 40.

      3.29 Wechseln der Animationsübergangsregeln

      6:08

    • 41.

      3.30 Die Spielergröße festlegen

      3:54

    • 42.

      3.31 Einstellen der Bewegungsgeschwindigkeit

      8:18

    • 43.

      4.01 Aim Offset Blend Space

      2:04

    • 44.

      4.02 Die Ziel-Offset-Animationen vorbereiten

      4:56

    • 45.

      4.03 Animation zum Ziel-Offset hinzufügen

      2:31

    • 46.

      4.04 Die Zielrichtung berechnen

      5:47

    • 47.

      4.05 Den Ziel-Offset hinzufügen

      2:19

    • 48.

      4.06 Player-Kamera am Kopf hinzufügen

      6:27

    • 49.

      4.07 Den Spielermodellkopf verstecken

      3:10

    • 50.

      4.08 Hinzufügen eines Third Person Mesh

      3:04

    • 51.

      4.09 Kamera und FPS Glättung

      4:04

    • 52.

      5.01 Bewegungsgeschwindigkeit anpassen

      2:38

    • 53.

      5.02 Animationsgeschwindigkeit anpassen

      10:14

    • 54.

      5.03 Den Kamerawand-Clipping reparieren

      5:50

    • 55.

      5.04 Fixiere die Jumping Crouch

      6:01

    • 56.

      5.05 Beheben der verbleibenden Crouch-Fehler

      1:07

    • 57.

      5.06 Die Schritte SFX vorbereiten

      5:27

    • 58.

      5.07 Timer nach Ereignis

      6:51

    • 59.

      5.08 Multicast-Replikation

      9:17

    • 60.

      5.09 Schritte SFX-Bedingungen

      13:03

    • 61.

      6.01 Platzieren der Spawn-Punkte

      5:53

    • 62.

      6.02 Speichern von Spawn-Point-Informationen

      8:07

    • 63.

      6.03 Importieren der UI-Assets

      4:21

    • 64.

      6.04 Eine benutzerdefinierte Schrift importieren

      2:54

    • 65.

      6.05 Einführung in Widget-Blueprints

      5:26

    • 66.

      6.06 Die Teamauswahl-Benutzeroberfläche anzeigen

      12:32

    • 67.

      6.07 Dynamische UI-Größe für alle Bildschirmgrößen

      5:13

    • 68.

      6.08 Entwerfen der Teamauswahl-Benutzeroberfläche

      21:24

    • 69.

      6.09 Button-Soundeffekte

      3:06

    • 70.

      6.10 So spawnen Sie Schauspieler

      7:19

    • 71.

      6.11 Standort des Spieler-Spawns

      5:32

    • 72.

      6.12 Spielmodus-Blueprint-Schnittstelle

      2:15

    • 73.

      6.13 Die Teamauswahllogik abschließen

      5:08

    • 74.

      6.14 Den Spieler spawnen

      4:27

    • 75.

      6.15 Den Eingabemodus einstellen

      3:14

    • 76.

      6.16 Eine Zuschauerkamera aufstellen

      5:41

    • 77.

      7.01 Pistol Blend Spaces

      5:50

    • 78.

      7.02 Gewehre mischen Räume

      3:58

    • 79.

      7.03 Pistolenziel-Offsets

      2:23

    • 80.

      7.04 Ziel-Offsets mit Gewehren

      2:14

    • 81.

      7.05 Posen von Bool mischen

      4:15

    • 82.

      7.06 Posen mischen von Enum

      5:53

    • 83.

      7.07 Pistolen-Animations-Blaupause

      3:05

    • 84.

      7.08 Rifle Animation Blueprint

      2:20

    • 85.

      7.09 Den Animations-Blueprint fertigstellen

      6:38

    • 86.

      8.01 Importieren der Waffen-Assets

      3:16

    • 87.

      8.02 Die Waffe einrichten

      5:50

    • 88.

      8.03 Physik aktivieren

      4:03

    • 89.

      8.04 Schauspieler replizieren

      1:22

    • 90.

      8.05 Waffenüberlapp

      4:34

    • 91.

      8.06 Den Waffentyp einstellen

      2:31

    • 92.

      8.07 Prüfen, ob der Spieler die Waffe hat

      4:09

    • 93.

      8.08 Die Waffe plündern

      11:17

    • 94.

      8.09 Den Waffensocket erstellen

      10:00

    • 95.

      8.10 Erstellen der restlichen Sockets

      5:51

    • 96.

      8.11 Waffe an der Hand befestigen

      14:05

    • 97.

      8.12 Waffen am Rücken anbringen

      10:58

    • 98.

      8.13 Zwei Waffen gleichzeitig überlappen

      13:33

    • 99.

      8.14 Die Waffenstruktur erstellen

      5:08

    • 100.

      8.15 Erstellen der Waffentabelle

      9:10

    • 101.

      8.16 Verwenden der Funktionsbibliothek

      8:03

    • 102.

      8.17 Den Waffennamen hinzufügen

      3:08

    • 103.

      8.18 Ersetzen der Variablen WeaponType

      5:03

    • 104.

      8.19 Waffe ablegen Eingabeaktion

      2:02

    • 105.

      8.20 Waffenlogik fallen lassen

      4:48

    • 106.

      8.21 Waffe fallen lassen Rep Notify

      9:51

    • 107.

      8.22 Den Rep Notify Value zurücksetzen

      6:18

    • 108.

      8.23 Waffeninteraktion Boolean

      5:25

    • 109.

      8.24 Interaktion vom Dropping Player entfernen

      7:07

    • 110.

      8.25 Verbesserung der Spielerinteraktion mit Waffen

      8:03

    • 111.

      8.26 Beute-Waffe mit Tastaturtaste

      16:58

    • 112.

      8.27 Den Typ des ausgerüsteten Gegenstands richtig einstellen

      2:28

    • 113.

      8.28 Beheben des Plünderungsfehlers "Accessed None"

      5:18

    • 114.

      8.29 Den Code aufräumen

      13:04

    • 115.

      8.30 Beheben eines kleinen Replikationsproblems

      7:22

    • 116.

      9.01 Weapon Switching Input Actions

      2:11

    • 117.

      9.02 Waffenwechsellogik

      7:47

    • 118.

      9.03 Waffe ausrüsten und Unequip RepNotify

      4:47

    • 119.

      9.04 Sekundärwaffe ausrüsten

      2:30

    • 120.

      9.05 Animationsmontagen erstellen

      2:04

    • 121.

      9.06 Den Animations-Blueprint anpassen

      4:37

    • 122.

      9.07 Animations-Multicast ausrüsten

      5:59

    • 123.

      9.08 Das Weapon-Anzeige-Widget einrichten

      2:41

    • 124.

      9.09 Die Waffenanzeige entwerfen

      6:09

    • 125.

      9.10 Die Waffenanzeige anzeigen

      4:05

    • 126.

      9.11 Programmieren der Waffenanzeige-Funktionalität

      6:02

    • 127.

      9.12 Waffen-Miniaturansicht zur Struktur hinzufügen

      8:26

    • 128.

      9.13 Unequipped Weapon UI Opacity

      5:21

    • 129.

      9.14 Soundeffekte ausrüsten

      8:15

    • 130.

      10.01 Das Fadenkreuz erstellen

      3:09

    • 131.

      10.02 Das Fadenkreuz anzeigen

      2:52

    • 132.

      10.03 Waffeneigenschaften zur Struktur hinzufügen

      1:11

    • 133.

      10.04 Waffeneingabeaktion und -struktur schießen

      8:41

    • 134.

      10.05 Den Waffenschuss-Timer erstellen

      18:21

    • 135.

      10.06 Linienverfolgung nach Kanal

      13:21

    • 136.

      10.07 Die Kollisionseinstellungen des Spielers anpassen

      8:31

    • 137.

      10.08 Den Mündungsfeuersockel erstellen

      2:35

    • 138.

      10.09 VFX und SFX aufnehmen

      6:26

    • 139.

      10.10 Schießen während Equip Anim verhindern

      5:56

    • 140.

      10.11 Erstellen der Munitions-Benutzeroberfläche

      6:04

    • 141.

      10.12 Den ursprünglichen Waffen-Munitionsbetrag einstellen

      6:37

    • 142.

      10.13 Erstellen der Munitions-UI-Logik

      4:52

    • 143.

      10.14 Update-Munitions-Benutzeroberfläche

      5:02

    • 144.

      10.15 Munitions-UI verbergen

      6:03

    • 145.

      10.16 Munition berechnen

      6:20

    • 146.

      10.17 Waffenanimation nachladen

      5:20

    • 147.

      10.18 Waffen-Funktionalität nachladen

      11:27

    • 148.

      10.19 Aufnahmebedingungen

      7:31

    • 149.

      10.20 Waffe mit Tastaturtaste nachladen

      5:48

    • 150.

      10.21 Waffe beim Waffenwechsel nachladen

      3:31

    • 151.

      10.22 Pistolenschießen hinzufügen

      3:06

    • 152.

      10.23 Stopp der Videoeffekte beim Waffenwechsel

      7:13

    • 153.

      10.24 Shooting-Animation

      13:52

    • 154.

      10.25 Aus der Munition SFX

      7:45

    • 155.

      10.26 Bullet Impact VFX und SFX

      22:02

    • 156.

      10.27 Bullet Spread

      5:39

    • 157.

      10.28 Die Waffen richtig platzieren

      5:14

    • 158.

      11.01 Gestalte die Benutzeroberfläche für Gesundheit und Rüstung

      12:01

    • 159.

      11.02 Schaden anrichten

      9:33

    • 160.

      11.03 Struktur der Spielerinformationen

      1:46

    • 161.

      11.04 Tabelle mit Spielerinformationen

      5:08

    • 162.

      11.05 Festlegen der Basisgesundheit und -rüstung

      4:45

    • 163.

      11.06 Benutzeroberfläche für Gesundheit und Rüstung

      5:08

    • 164.

      11.07 Aktualisieren der Benutzeroberfläche von Health & Armor

      4:09

    • 165.

      11.08 Gesundheitsschäden behandeln

      4:23

    • 166.

      11.09 Schaden an Rüstungen verursachen

      5:13

    • 167.

      11.10 Mehrere Gewehre plündern

      5:43

    • 168.

      12.01 Der Tod

      8:35

    • 169.

      12.02 Waffe abwerfen, wenn tot

      23:20

    • 170.

      12.03 Respawn

      9:03

    • 171.

      12.04 Not Dead RepNotify

      9:06

    • 172.

      12.05 Gesundheit auf Respawn zurücksetzen

      1:40

    • 173.

      12.06 Teamschäden vermeiden

      2:41

    • 174.

      13.01 Die Benutzeroberfläche für Score entwerfen

      6:18

    • 175.

      13.02 Entwerfen der Team-Gewinn-Benutzeroberfläche

      2:18

    • 176.

      13.03 Score und Team Win UI-Funktionalität

      5:38

    • 177.

      13.04 Den Überblick über lebendige Spieler behalten

      7:07

    • 178.

      13.05 Tote Spieler im Auge behalten

      3:09

    • 179.

      13.06 Den Überblick über alle Spawn-Spieler behalten

      1:40

    • 180.

      13.07 Die Anzahl der lebenden Spieler überprüfen

      6:03

    • 181.

      13.08 Teamgewinn-Ankündigung

      13:17

    • 182.

      13.09 Den Team-Score hinzufügen

      7:34

    • 183.

      13.10 Respawnen der Spieler

      4:28

    • 184.

      14.01 Impuls bei Weapon Drop hinzufügen

      4:46

    • 185.

      14.02 Das Waffengewicht verbessern

      3:12

    • 186.

      14.03 Entfernen von Reload SFX bei Weapon Drop

      5:46

    • 187.

      14.04 Team-Ankündigung hinzufügen Win SFX

      5:47

    • 188.

      14.05 Feind-Trefferindikator hinzufügen

      8:28

    • 189.

      14.06 Ambience-SFX hinzufügen

      2:10

    • 190.

      14.07 Mag beim Nachladen entfernen

      9:21

    • 191.

      14.08 Behebung des Nachladefehlers beim Waffenwechsel

      3:28

    • 192.

      14.09 Was jetzt

      2:04

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

308

Teilnehmer:innen

--

Projekt

Über diesen Kurs

So erstellst du ein FPS-Spiel - Beginne mit Unreal Engine 5 Multiplayer.

Dieser umfassende Unreal Engine-Kurs bringt dir bei, wie du ein FPS-Spiel in Unreal Engine 5 Multiplayer von Grund auf erstellen kannst. Inspiriert vom klassischen Spiel Counter-Strike lernst du alle grundlegenden und fortgeschrittenen Mechaniken, die du brauchst, um einen Ego-Shooter zu erstellen. All das, ohne eine einzige Codezeile zu schreiben.

Für diesen Kurs brauchst du keine Vorkenntnisse in der Spieleentwicklung; wir gehen ihn Schritt für Schritt durch. Egal, ob du Anfänger oder erfahrener Unreal Engine-Entwickler bist, dieser Kurs hat etwas für alle, die lernen möchten, wie man ein fps-Spiel in UE5 erstellt.

Das Hauptziel dieses Kurses besteht darin, dich sicher zu machen, wie man ein FPS-Spiel erstellt. Damit kannst du Geld verdienen und von zu Hause aus als unabhängiger Spieleentwickler arbeiten. Tatsächlich bin ich seit einigen Jahren Vollzeit-UE5-Spieleentwickler, habe Spiele entwickelt, Kurse entwickelt und über den Unreal Engine-Marktplatz Spiel-Assets verkauft.

Starte noch heute dein Ego-Shooter-Training, indem du lernst, wie du ein FPS-Spiel machst!

Was qualifiziert mich dazu, dich zu unterrichten?

Ich bin ein erfahrener Spieleentwickler mit neun Jahren Erfahrung. Um meine Arbeit zusammenzufassen, ohne dich zu langweilen:

  • Ich habe ein Steam-Spiel veröffentlicht, das ich von Anfang bis Ende mit einem 8-köpfigen Team geleitet habe.
  • Ich habe 11 Kurse zur Spieleentwicklung mit 40.000 Teilnehmern und einer Durchschnittsbewertung von 4,8+ von 5 Sternen erstellt.
  • Derzeit entwickle ich Farmtale 2 von Anfang bis Ende alleine.
  • Ich arbeite auch als Freelancer an verschiedenen Spieleprojekten und habe mich auf Programmierung, Beleuchtung, Spieloptimierung und mehr spezialisiert.

Ich habe eine große Leidenschaft für die Spieleentwicklung und habe sie zu meinem Vollzeitjob gemacht. Ich würde dir gerne alles über Unreal Engine 5 mit guten Praktiken in der Spieleentwicklung beibringen und dich mit den neuesten Informationen auf dem Laufenden halten.

Wenn du lernen möchtest, wie man ein Spiel auf Steam veröffentlicht, schau dir den Kurs an, den ich zu diesem Thema veröffentlicht habe.

Mach Spiele ohne Programmieren.

Unreal Engine blueprint ist die leistungsstarke Unreal Engine-Skriptsprache, die in UE5 verwendet wird. Damit kannst du von Anfang bis Ende dein eigenes Online-Spiel erstellen, ohne eine einzige Codezeile zu schreiben. Das bedeutet, dass du leicht dein eigenes Online-Spiel erstellen kannst, auch wenn du Anfänger, Künstler oder Designer ohne Programmiererfahrung bist.

Für diesen Kurs sind keine Programmier- oder Unreal Engine-Kenntnisse erforderlich. Wir werden die Grundlagen der Unreal Engine durchgehen und langsam zur Entwicklung komplexerer Spielmechaniken kommen. Auf diese Weise lernst du, wie du Spiele von Anfang bis Ende entwickelst.

Du kannst als Anfänger in diesen Kurs einsteigen, da du Schritt für Schritt lernst, wie du ein fps-Spiel von Grund auf erstellen kannst.

Unreal Engine 5-Multiplayer.

Der Einstieg in die Online-Spieleentwicklung mit Unreal Engine 5 ist sehr einfach. Es ähnelt dem Einzelspieler-Plan der Unreal Engine, wurde aber um einen zusätzlichen Schritt ergänzt. Während du lernst, wie du ein FPS-Spiel machst, lernst du alles, was du über den Multiplayer von Unreal Engine 5 wissen musst. Du brauchst keine Vorkenntnisse, da ich dir grundlegende und fortgeschrittene Unreal Engine-Netzwerke beibringe.

So machst du ein Videospiel von Grund auf neu.

Auch wenn du in diesem Kurs lernen kannst, wie man ein FPS-Spiel erstellt, gibt es immer andere wichtige Lernziele in meinen Kursen. Wenn du dir die Video-Lektionen ansiehst, ist es wichtig, auf die Tools zu achten, die während der Spieleentwicklung verwendet werden. Du lernst, wie du Spiele entwickelst, ausgehend von einem leeren Unreal Engine-Projekt. Unabhängig vom Genre bleibt der Entwicklungsprozess für Spiele in Unreal Engine 5 gleich.

So entwickelst du einen Ego-Shooter - Lerne alles.

In diesem Kurs von Unreal Engine erhältst du umfassendes Wissen darüber, wie du ein FPS-Spiel erstellen kannst. Erstens beginnt der Kurs mit einem leeren Projekt und präsentiert dir einfache, leicht verständliche Video-Lektionen in 4K-Auflösung. Zweitens lernst du, wie du die Spielumgebung entwickelst, einschließlich Leveldesign, Beleuchtung und Optimierung der Umgebung für eine optimale Spielperformance. Dann kommen wir zu den Grundlagen des Multiplayer-Spiels von Unreal Engine 5 über. Wir lernen dazu, unser Spiel zu entwickeln. Einige der Schlüsselkonzepte in diesem Unreal Engine-Kurs:

  • Lerne, wie du in Unreal Engine 5 deinen eigenen Charakter erstellst.
  • Lerne die verbesserte Eingabe von Unreal Engine für Bewegung und Animation.
  • Lerne Level-Design von den Materialien bis hin zu Beleuchtung und Spieloptimierung.
  • Lerne, wie du Waffen oder andere Gegenstände vom Boden aus aufnimmst.
  • Lerne, wie du Pistolen und Gewehne ausrüsten, fallen lassen, schießen und nachlädst.
  • Erstelle ein Inventarsystem mit Drag-and-Drop-Funktionalität.
  • Füge anderen Spielern mit Gesundheit und Rüstung Schaden zu.
  • Erstelle eine Teamauswahlfunktion mit Gewinnbedingungen.
  • Lerne, wie du Spieler spawnen und respawnen kannst.
  • Gestalte die Benutzeroberfläche des Spiels.
  • Füge visuelle und Sound-Effekte hinzu (VFX und SFX).
  • Und vieles mehr.

Dieser Kurs beinhaltet auch das fertige Spielprojekt, das du dir ansehen kannst. Am Ende dieses Kurses hast du die notwendigen Fähigkeiten erworben, um dein eigenes Online-Spiel zu erstellen.

Mach diesen Kurs und lass dich zertifizieren.

Wenn du den Kurs abschließt, wie man ein FPS-Spiel erstellt, kannst du eine Unreal Engine-Zertifizierung erhalten. Du kannst es verwenden, um dein Portfolio als unabhängiger Spieleentwickler zu stärken oder es bei der Bewerbung für Spieleentwicklerjobs verwenden. Die Unreal Engine-Zertifizierung kann heruntergeladen und lokal gespeichert werden und ist unbegrenzt gültig.

So machst du weiter, wenn du "So machst du ein FPS-Spiel" fertigstellst.

"How to Make a FPS-Game" bietet die notwendigen Fähigkeiten und das Wissen, um sich in anspruchsvollere Themen einzuarbeiten. Du kannst dein Ego-Shooter-Training erweitern, indem du ein Inventarsystem hinzufügst, um es in einen RPG-Shooter zu verwandeln.

Das Erstellen von 2D-Spielen in dieser Spieleentwicklungssoftware ist überraschend einfach und bequem. Angenommen, du möchtest lernen, wie du ein 2D-Spiel im Multiplayer mit den 2D-Funktionen von Unreal Engine erstellen kannst. In diesem Fall kannst du dich für einen spannenden Kurs anmelden, der dir zeigt, wie du einen 2D-Platformer im Multiplayer erstellen kannst. Du kannst auch in Unreal Engine 5 zu Einzelspieler-2D-Spielen kommen, indem du dir anschaust, wie man ein Clicker-Spiel erstellt.

Tritt unserer unterstützenden Community bei.

Die Entwicklung von Unreal Engine kann manchmal eine frustrierende Erfahrung sein. Zum Beispiel musst du vielleicht irgendwo nach einem nicht markierten Kästchen suchen, damit du dich stundenlang verloren fühlst. Alternativ kannst du moralische Unterstützung und Ideen von anderen Spieleentwicklern wie dir benötigen. Deshalb bieten wir rund um die Uhr Live-Support an, indem wir im Q/A-Abschnitt eines der Kurse schreiben. Wir sind immer hier, um dir zu helfen, wann immer du es brauchst.

Beginnen wir ohne Verzögerung mit "So machst du ein FPS-Spiel". Ich freue mich, dich in der ersten Einheit zu sehen. Also, lass uns beginnen und jubeln auf eine spannende Lernreise!

Triff deine:n Kursleiter:in

Teacher Profile Image

Pixel Helmet

Game Developer & Publisher

Kursleiter:in

Pixel Helmet is a video game developer and publisher based in Denmark. We have recently released our first game Farmtale on the Steam platform.

We decided to get on Skillshare to create high-quality courses and share our knowledge with the game development community. Learning can be tedious at times and we aim to create a fun learning experience.

We offer to create courses within Modeling, Texturing, Unreal Engine, Blueprints, C++, Game Design, and much more. If you need any help during a course, please let us know through Skillshare or connect with us on Discord, Twitter, or LinkedIn.

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. 1.01 Einführung: In diesem Kurs lernen wir , wie man mithilfe von Bauplänen in Unreal Engine Five einen Mehrspieler-Ego-Shooter entwickelt mithilfe von Bauplänen in Unreal Engine Five einen Mehrspieler-Ego-Shooter , indem wir ein Spiel nachbauen , das dem legendären Spiel Counter Strike ähnelt Dieser Kurs enthält alles, was du wissen musst, um mit der Entwicklung von Multiplayer-Ego-Shooter-Spielen in Unreal Engine Five zu beginnen Entwicklung von Multiplayer-Ego-Shooter-Spielen in Unreal Einschließlich, wie man Mehrspieler-FPS-Bewegungen hinzufügt. So erstellen Sie einen Bildschirm zur Teamauswahl. Wie man Waffen aufhebt und fallen lässt. Wie erstelle ich ein FPS-Inventar? Wie rüste ich eine Pistole und ein Gewehr aus? Wie man mit verschiedenen Waffentypen schießt. So berechnen und zeigen Sie die richtige Anzahl an Kugeln Wie man eine Waffe nachlädt. Wie man Gesundheit und Rüstung hinzufügt. Wie man anderen Spielern Schaden zufügt. So belohnen Sie das Siegerteam mit Rundenpunkten . Wie reagiert man auf Spieler? So aktualisieren Sie die Werte der Spielbenutzeroberfläche im Mehrspielermodus korrekt. Und schließlich, wie man visuelle Effekte und Soundeffekte im Mehrspielermodus hinzufügt . Ich stelle Ihnen auch das fertige Projekt zur Verfügung, damit Sie es nach Belieben begutachten können, während Sie dem Kurs folgen. Am Ende dieses Kurses wirst du in der Lage sein , in Hon Real Engine Five selbstbewusst deinen eigenen Multiplayer-Ego-Shooter von Grund auf neu zu erstellen deinen eigenen Multiplayer-Ego-Shooter Hon Real Engine Five selbstbewusst deinen eigenen Multiplayer-Ego-Shooter von Grund auf Ich hoffe, du nimmst heute an diesem Kurs teil. Und denken Sie daran, dass ich während des gesamten Kurses immer für Sie da bin und hoffe, Sie bald zu sehen. 2. 1.02 Herunterladen von Unreal Engine 5: Um Unreal Engine Five herunterzuladen, musst du zuerst zu Epic Games.com gehen . Und hier oben rechts befindet sich ein blauer Button Du musst darauf klicken und Epic Games Launcher wird heruntergeladen Sie können hier sehen, dass es gerade installiert wird. Ich habe es jedoch bereits installiert, also fahren Sie fort und installieren Sie es, wenn der Vorgang abgeschlossen ist. Und hier habe ich den Epic Games Launcher geöffnet und du wirst aufgefordert, dich anzumelden. Ich habe bereits ein Epic Games-Konto, also werde ich mich mit meinem Epic Games-Konto anmelden. Wenn du noch keins hast, kannst du dich hier registrieren. Es ist kostenlos, oder Sie können sich mit allen anderen Methoden anmelden. Ich werde mich jedoch mit meinem Epic Games-Konto anmelden. Sobald du dich im Launcher angemeldet hast, befindest du dich auf dieser Seite. Fahren Sie fort und klicken Sie hier links auf Honoral Engine. Fahren Sie fort und klicken Sie hier oben auf die Registerkarte Bibliothek, und Sie werden die Engine-Versionen sehen Das ist Honoral Engine, und wenn Sie nichts sehen, haben Sie hier möglicherweise ein graues Kästchen , wenn Sie zum ersten Mal hier sind Aber wenn du kein graues Kästchen bekommst, kannst du hier oben auf diese Plus-Schaltfläche klicken und du wirst eins bekommen Dann kannst du die Nummer auswählen und auswählen , welche Version von Unreal Engine du installieren möchtest Jetzt können Sie sehen, dass ich Unreal Engine 5.2 bereits installiert habe. Wenn Sie jedoch eine neuere Version haben, wenn Sie sich das in Zukunft ansehen und 5.3 oder 5.21 usw. haben, fahren Sie einfach fort und einfach fort und Sie können mitmachen und nichts hat sich geändert. Aber für diesen Kurs werde ich die neueste Unreal Engine Five installieren Und dann sind wir bereit, mit der nächsten Lektion zu beginnen. 3. 1.03 Erstellen eines neuen Projekts: Lass uns weitermachen und Unreal Engine Five starten. Wenn Unreal Engine Five gestartet wurde, erscheint dieses Fenster, Sie Ihre letzten Projekte sehen können Und wenn Sie keine aktuellen Projekte haben, ist dieses leer Aber hier kannst du meins sehen. Und was wir tun wollen, wir wollen auf den Tab Spiele klicken , weil wir Spiele entwickeln. Sie können aber auch sehen, dass Real Engine Five für Film- und Videoarchitektur, Automobilbau und Simulation verwendet werden kann dass Real Engine Five für Film- und Videoarchitektur, Automobilbau und Simulation verwendet . Sehr cool. Aber für uns werden wir Spiele entwickeln. Also gehe ich auf den Tab Spiele. Auf der Registerkarte Spiele können Sie sehen, dass Sie zwischen verschiedenen Vorlagen wählen können . Wenn Sie beispielsweise wie wir einen Ego-Shooter erstellen möchten , können Sie die Vorlage für die erste Person auswählen. Wenn du ein Third-Person-Spiel machen möchtest, kannst du dieses auswählen und so weiter. Sie können also sehen, dass Sie zwischen verschiedenen coolen Vorlagen wählen können . Alle diese Vorlagen können jedoch von Ihnen erstellt werden. Sie können tatsächlich ein leeres Projekt erstellen, und Sie können alles von Grund auf neu erstellen und all diese Vorlagen erstellen. Wenn Sie wissen, was Sie für meine Kurse tun, würde ich gerne mit einem leeren Projekt beginnen , das nichts enthält. Weil ich dir beibringen will, wie man aus dem Nichts ein Spiel baut. Ich möchte hier nicht mit diesen Vorlagen beginnen. Und auch hier können Sie all das aus einem leeren Projekt erstellen , wenn Sie wissen, was Sie tun. Lassen Sie uns also mit einem leeren Projekt beginnen , denn ich möchte Ihnen alles beibringen. Ausgehend von einem leeren Projekt wählen wir Blueprint als unsere Programmiersprache Und die Zielplattform ist Desktop-Qualität. Die Voreinstellung ist auf Maximum eingestellt. Was den Dateninhalt angeht, wenn Sie ihn haben, werde ich ihn entfernen, damit wir nichts haben. Auch hier möchte ich mit nichts beginnen und dann auswählen, wo Sie das Projekt speichern möchten. Also werde ich hier klicken und einen Ordner auswählen. Und dann mach weiter und gib deinem Projekt den Namen für dieses Spiel. Ich nenne es einfach Counterstrike, weil es die Art von Spiel ist, die wir machen Wir kopieren es nicht zu 100%, ich mache auch einige benutzerdefinierte Dinge Aber für diesen Multiplayer-Shooter wird es viel mehr wie Counterstrike Geben Sie ihm einen Namen und klicken wir auf Projekt erstellen Sobald das Projekt erstellt wurde, befinden wir uns hier in Unreal Engine Lassen Sie uns in der nächsten Lektion weitermachen und den Überblick über Unreal Engine ansehen 4. 1.04 Unreal Engine 5 Überblick: Bevor wir mit unserem Projekt beginnen, wollen wir uns einen kurzen Überblick wie Unreal Engine aufgebaut ist Hier in der Mitte haben wir den Viewport, und hier siehst du dein Spiel visuell Im Viewport können Sie die rechte Maustaste gedrückt halten. Wenn Sie im Darstellungsfenster die rechte Maustaste gedrückt halten, können Sie sehen, dass Sie sich im Darstellungsfenster umschauen können Wenn Sie nun die rechte Maustaste gedrückt halten und auf W klicken, bewegen Sie sich in der Welt vorwärts Wenn Sie auf klicken, bewegen Sie sich zurück Wenn Sie auf D klicken, bewegen Sie sich nach rechts. Und wenn du auf A klickst, bewegst du dich nach links. Denken Sie daran, dabei die rechte Maustaste gedrückt zu halten. Halten Sie also die rechte Maustaste und die linke Maustaste gleichzeitig gedrückt. Dann können Sie sehen, dass Sie sich tatsächlich alleine mit der Maus bewegen können , so wie hier. Sie können auch die linke Maustaste alleine halten und sie vorwärts und rückwärts bewegen Und du kannst sehen, dass du auch so aussehen kannst. Hier drinnen gibt es verschiedene Bewegungstechniken. Die nächste Methode besteht darin, die rechte Maustaste gedrückt zu halten, und dann können Sie auf klicken, um nach unten zu gelangen, oder Sie können auf klicken, um nach oben zu gelangen. Das Letzte, was wir hier haben, ist natürlich , wenn Sie mit der Maustaste scrollen, können Sie auch hinein- und herauszoomen. Das sind alle Bewegungstechniken, und das war es. Die wichtigste, die ich verwende, ist, dass ich die rechte Maustaste gedrückt halte und auf S DNA klicke. Ich bewege mich einfach so in der Welt. Normalerweise verwende ich die anderen Methoden nicht, dies ist die am häufigsten verwendete für mich. Sie können also versuchen, einfach die rechte Maustaste gedrückt zu halten, zu klicken, einfach zu navigieren, einfach ein Gefühl dafür zu bekommen, wie es sich anfühlt , sich in dieser Welt zu bewegen. Hier drüben haben wir verschiedene Buttons innerhalb des Viewboards Klickt man hier hoch, die wichtigste ist die Spielansicht Und dieser versteckt Symbole im Spiel. Und das ist nützlich, wenn du so viele Symbole im Spiel hast Denken Sie daran, wenn Sie ein Spiel erstellen. Wenn Sie also auf einen der Gegenstände klicken, die Sie in der Welt haben , und Sie einfach auf Ihre Tastatur klicken, gelangen Sie tatsächlich zu diesem Objekt. Du kannst hier sehen, wenn ich auf meiner Tastatur darauf klicke , das ist die Abkürzung für die Spielansicht. Wenn ich auf klicke, blende ich die Icons aus. Und das ist sehr cool, weil ich mein Spiel sehen möchte, wie es wirklich ohne Symbole aussieht. Und du kannst nochmal klicken , um sie dir hier zu zeigen. Der nächste, den wir haben, ist der immersive Modus, Ihr Viewport im Vollbildmodus angezeigt wird Wenn Sie auf 11 klicken, ist das die Abkürzung dafür. Dadurch wird das Spiel im Vollbildmodus angezeigt. Und dann kann ich darauf klicken, um die Symbole auszublenden. Und ich kann versuchen zu sehen , wie mein Level aussieht ohne mich über all diese Symbole zu ärgern Klicken Sie erneut, um sie anzuzeigen . Klicken Sie auf 11, um das Viewpoard zu minimieren Lassen Sie uns noch einmal zu diesen sehr wichtigen Tools übergehen Das erste wird als Auswahlwerkzeug bezeichnet. darauf klicken, können Sie verschiedene Objekte auf der Welt auswählen . Ich benutze das nicht zu oft, ich benutze tatsächlich diese drei. Ich wähle das eigentlich nie aus. Wenn ich jetzt darüber nachdenke, wähle ich das nie aus. Sie könnten jedoch eine Verwendung dafür finden. Wenn Sie jedoch auf das Q auf der Tastatur klicken, können Sie sehen, dass sie Abkürzungen haben wenn Sie die Maus darüber halten. auf Q klicken, wählen Sie das Auswahlwerkzeug aus, und wenn Sie auf der Tastatur auf W klicken , wird das Verschiebewerkzeug ausgewählt. das Verschieben-Werkzeug auswählen, können Sie sehen , ob ich eines der Symbole auswähle Ich erhalte zum Beispiel diese Pfeile. Sie können also sehen, dass wir einen grünen Pfeil haben, wir haben auch einen blauen Pfeil und einen roten Pfeil. Mit dem Verschieben-Tool können wir Elemente verschieben. Und du kannst auf einen der Pfeile klicken. Und du kannst es hier auf dieser Achse bewegen. Auch auf dieser Achse. Und auf dieser Achse auch. Hier auf der rechten Seite können Sie im Detailbereich sehen, dass Ihnen tatsächlich Details zum ausgewählten Artikel angezeigt werden. Wenn Sie einen von ihnen auswählen, können Sie sehen, dass sich die Details zu diesem Artikel ändern. Zum Beispiel hier, wenn ich diesen auswähle und du kannst auch im Outliner sehen, wie er heißt Der Outliner zeigt dir im Grunde alle Gegenstände, die du in dieser Welt hast, innerhalb dieser Ebene hier, die wir haben Das ist es, was drin ist. All diese landschaftlichen Dinge, die Sie hier sehen können, sind einfach diese Welt, die Sie sehen können. Es besteht aus Blöcken. Wenn Sie es auswählen, können Sie sehen, dass es auch hier im Outliner ausgewählt Wenn ich diesen im Ansichtsteil auswähle, wird er auch hier im Outliner ausgewählt All diese Dinge, die Sie hier sehen können tatsächlich etwas, das sich in Ihrer Welt befindet Wenn ich das auswähle, kannst du sehen, dass es Dachfenster genannt wird. Es ist Licht vom Himmel. Und Sie können Details über das Oberlicht sehen, zum Beispiel, wie intensiv es ist Sie können es beispielsweise erhöhen. Nehmen wir an, ich möchte drei schreiben. Und du kannst sehen, dass mein Level bei der Beleuchtung intensiver ist. Und ich kann hier klicken und erneut auf eins klicken oder noch einmal rechts klicken, und dann ist es wieder normal. Sie können die Dinge hier ändern. Was ich Ihnen hier mit dem Verschieben-Werkzeug zeigen wollte , ist, dass Sie sehen können, dass es beim Verschieben auch die Position im Detailbereich ändert . Wenn ich es verschiebe, können Sie hier sehen die Werte im Z-Wert ändern , wie sich die Werte im Z-Wert ändern, wenn ich es auf diese Weise verschiebe und auch, wenn ich es auf diese Weise verschiebe. Aber was die Drehpunkte angeht, können Sie sehen, dass der rote Punkt tatsächlich die X-Achse ist. Sie können es sehen, indem Sie die Maus darüber halten. Es heißt X. Die grüne ist die Y-Achse und die blaue ist die Z-Achse. Wir haben die X-Achse, die Y-Achse. Und die Z-Achse. Sie können den Standort von ihnen ändern, indem Sie dies hier tun. Oder Sie können den Standort ändern, indem Sie eine Zahl schreiben. In das Z kann ich zum Beispiel 200 schreiben, wenn ich auf Inter klicke , und es wird bis zum Wert 200 im Z verschoben. Aber Sie können, anstatt eine Zahl zu schreiben, auch klicken, auf die Zahl klicken, die Maus gedrückt halten und ziehen. Dann können Sie sehen, dass Sie die Position auch auf diese Weise ändern können . Wenn du es in alle Richtungen gleichzeitig bewegen möchtest, kannst du auf diese weiße Kugel in der Mitte klicken. Und du kannst ihn auf einmal in alle Richtungen bewegen. Wenn Sie es gleichzeitig in zwei verschiedene Richtungen bewegen möchten , können Sie auf das Feld in der Mitte klicken. Und Sie können es in diese beiden verschiedenen Richtungen bewegen , die Sie ausgewählt haben. Wenn Sie als Nächstes auf der Tastatur auf E klicken oder hier oben klicken, erhalten Sie einfach das Drehwerkzeug, genau wie es steht. Sie können hier klicken und den Artikel drehen. Im Moment ist es ein Symbol, sodass wir nicht wirklich sehen können , was passiert. Aber wenn ich hier oben klicke, werden Elemente hinzugefügt. Klicken Sie hier hoch, gehen Sie zu Formen und ich füge einfach einen einfachen Würfel hinzu. einen einfachen Würfel hinzufüge, kann ich jetzt auf den Würfel klicken, auf E auf der Tastatur oder das Drehwerkzeug auswählen, und ich kann dieses Objekt einfach um eine andere Achse drehen. Auch hier können Sie sehen, wie sich die Werte für die Rotation ändern , und Sie können es hier sehen. Sie können es auch drehen, indem Sie hier klicken, linken Maustaste klicken und es ziehen Dadurch wird es auch gedreht. Dann haben wir hier das Skalierungswerkzeug, und wie es heißt, skaliert es den Artikel. Sie können es in all diese drei Richtungen skalieren. Oder wenn Sie möchten, dass es gleichmäßig in alle Richtungen gleichzeitig skaliert , können Sie auf dieses weiße Feld in der Mitte klicken Und es wird in alle Richtungen skaliert, alles gleichzeitig, wenn Sie es skalieren Sie können hier auch die Werte sehen, wie stark wir es skaliert Wenn Sie es zurücksetzen möchten, können Sie tatsächlich 111 schreiben, wodurch die Skala zurückgesetzt wird Sie können aber auch hier auf diesen kleinen Pfeil klicken. Dadurch werden die Werte auf die Standardwerte zurückgesetzt . Wenn Sie jedoch auf diesen kleinen Pfeil klicken, werden die Standardwerte wiederhergestellt. Hier auf der rechten Seite haben Sie verschiedene Fangwerkzeuge Sie können sehen, dass ich dieses Objekt verschieben kann, wenn ich auf meiner Tastatur auf W klicke , um das Verschieben-Werkzeug auszuwählen , um das Verschieben-Werkzeug Aber Sie können sehen, dass es sich nicht reibungslos bewegt. Es rastet in ein Raster ein. Ich kann das deaktivieren, indem ich auf das Symbol hier oben klicke. Und jetzt kann ich es bewegen, und Sie können sehen, dass es sich jetzt reibungslos bewegt. Wenn ich erneut darauf klicke, werde ich es aktivieren. Du kannst auch die Menge erhöhen oder verringern, mit der es einrastet Wenn ich auf die Zahl hier oben klicke und zum Beispiel 100 auswählen kann, dann wird es viel mehr Schnappschuss geben Wenn ich sie jetzt ziehe, kannst du sehen, dass sie viel schneller einrastet. Das ist nützlich, wenn du zum Beispiel Leveldesign machst und Objekte wie in einem Muster nebeneinander platzieren möchtest wie in einem Muster nebeneinander platzieren möchtest Was Sie hier zum Beispiel tun können, ist, dass Sie die Alt-Taste auf der Tastatur gedrückt halten können. Sie können klicken und ziehen, während Sie die Alt-Taste gedrückt halten. Dadurch wird das Objekt kopiert, wenn ich es einfach noch einmal mache. Ich klicke und ich klicke und ziehe erneut. Ich klicke, klicke und ziehe. Sie können sehen, dass ich die Artikel kopieren kann. Und sie befinden sich jetzt im gleichen Abstand voneinander. So nützlich ist das Fangwerkzeug. Ich werde es einfach wie gewohnt auf zehn zurücksetzen. Sie können dies auch mit der Rotation und mit der Größe tun. Sie können sehen, wenn ich auf das Drehwerkzeug klicke, um es auszuwählen , und wenn ich auf eines davon klicke, ich drehe. Sie können sehen, dass es sich alle zehn Grad dreht . Nochmals, es ist hier oben. Ich kann den Wert erhöhen oder verringern, mit dem es einrastet, oder ich kann einfach auf das Symbol klicken und es jetzt frei drehen, ohne dass es einrastet Ich werde es wieder einschalten. Und du kannst dasselbe mit der Skalierung machen. Jetzt können Sie hier die Kamerageschwindigkeit erhöhen und verringern. Sie können sehen, dass ich mich gerade so in meiner Welt bewege . Ich kann mich auch viel langsamer bewegen. Stellen Sie sich vor, Sie müssen hier kleine Details fokussieren, es ist sehr schwierig, die Kamera so zu bewegen, dass sie hier aussieht. Was Sie tun können, Sie können hier oben klicken die Kamerageschwindigkeit erhöhen. Jetzt kannst du dich viel langsamer bewegen und dich auf kleine, kleine Details in deinem Level konzentrieren . Wenn du jedoch auf die andere Seite der Welt wechseln willst , wird das ewig dauern. Sie können hier nach oben klicken, die Kamerageschwindigkeit erhöhen und jetzt können Sie schnell auf die andere Seite der Welt wechseln . Auch hier gilt: Wenn Sie zu einem bestimmten Element wechseln möchten, können Sie es jederzeit hier anklicken. Wenn ich mich zum Beispiel bewegen möchte, sagen wir zu meinem Richtungslicht, kann ich darauf klicken. Und ich kann auf meiner Tastatur klicken. Und hier wird es auch sein. Jetzt kann ich meine Kamerageschwindigkeit wieder standardmäßig auf eins reduzieren . Und ich kann mich hier normal bewegen, genau wie zuvor. Ordnung, das war also alles im Viewpoard Auch hier zeigt der Outliner im Grunde, was sich in deinem Level befindet, was du hier innerhalb des Levels visuell sehen kannst Aber vorerst werde ich diese Würfel löschen. Also werde ich hier klicken und auf meiner Tastatur auf Löschen klicken. Und wähle auch alle aus. Und drücke auf meiner Tastatur auf Löschen. Jetzt können wir hier oben in der Werkzeugleiste das aktuelle Level speichern, in dem wir uns befinden. Wir können auch hier klicken und die verschiedenen Tools verwenden, die wir haben. Wenn wir beispielsweise eine Landschaft erstellen möchten, können wir zum Beispiel das Landschaftswerkzeug oder Laub verwenden. Wenn du Gras und Bäume in deinem Level malen möchtest, kannst du das auch verwenden. Wir werden dies jedoch nicht in unserem Spiel verwenden, da wir ein Basislevel erstellen werden und uns auch stark auf Baupläne konzentrieren und darauf, wie wir unseren Mehrspieler-Ego-Shooter programmieren können unseren Mehrspieler-Ego-Shooter Wenn du dich also darauf konzentrieren möchtest , Landschaften und Laub zu kreieren, besuche bitte meine Website Pixel Helmet.com . Hier findest du viele Kurse, die auch das erklären Als nächstes gibt es hier eine sehr, sehr wichtige Schaltfläche du deinem Level verschiedene Dinge hinzufügen kannst Zum Beispiel haben wir hier die Form, den Würfel, erstellt. Sie können auch Beleuchtung erstellen. Die Beleuchtung, die Sie hier sehen können, werden wir ebenfalls von Grund auf neu erstellen. Und du kannst die verschiedenen Lichter hier drinnen kreieren. Sie können auch visuelle Effekte usw. erstellen. können Sie also verschiedene Elemente auf Ihrem Level platzieren Mit dieser Schaltfläche können Sie also verschiedene Elemente auf Ihrem Level platzieren. Als Nächstes haben wir den Level-Blueprint. Und wir werden später viel über Blaupausen sprechen, also konzentrieren wir uns vorerst nicht darauf Und dann haben wir Filmsequenzen, und wir werden die Filmsequenzen vorerst überspringen Dann haben wir den Play-Button, und wenn du darauf klickst, spielst du das Spiel Und dann kannst du sehen, dass ich mein Spiel jetzt innerhalb des Levels spiele. Es passiert nicht viel, weil wir hier nicht wirklich viel drin haben. Also werde ich auf meiner Tastatur auf Escape klicken, um den Spielmodus zu verlassen, indem ich auf diese drei Schaltflächen klicke. Sie können auch auswählen, wie Sie Ihr Spiel spielen möchten. Im Moment spielen wir es im Viewpoard. Klicken Sie auch hier und öffnen Sie ein neues Fenster. Und es wurde auf meinem zweiten Bildschirm geöffnet. Sie können sehen, dass ich das Spiel jetzt in meinem zweiten Fenster spiele. Ich kann auf Escape klicken, um es zu beenden. Auch hier kannst du auswählen, wie du dein Spiel spielen möchtest. Ich wähle einfach ihr ausgewähltes Viewboard aus. Hier unten haben wir Multiplayer-Einstellungen. Damit werden wir später arbeiten . Und wenn du dein Spiel verpacken und es auf Steam veröffentlichen oder es für deine Freunde veröffentlichen möchtest , kannst du hier oben klicken, zum Beispiel Windows, und dann das Spiel verpacken, um es zu veröffentlichen. Jetzt haben wir hier oben die verschiedenen Buttons. Wir haben die Dateischaltfläche, mit Sie eine neue Ebene erstellen können, Sie können ein neues Projekt erstellen und so weiter. Sehr einfach in alter Software , die wir gesehen haben. Und dann sind bei der Bearbeitung die Projekteinstellungen am wichtigsten , und wir werden sie häufig verwenden. Sie können sehen, dass es viele Schaltflächen hat und es etwas verwirrend aussehen kann wenn Sie mit General Engine noch nicht vertraut sind. Konzentrieren wir uns jedoch auf die wichtigsten Dinge , die wir lernen müssen. Und das alles können Sie später lernen, aber im Moment werden wir uns auf die wichtigsten Dinge konzentrieren . Lass es uns vorerst überspringen. Und wir werden das im Kurs viel durchmachen. Dann können Sie in Windows, sehr, sehr cool, verschiedene Fenster in unserer mittleren Engine öffnen . Zum Beispiel dieses Ansichtsfenster, das Sie hier in der Mitte sehen können, können Sie zu den Ansichtsfenstern gehen und dann auf Viewports 2 klicken, und das öffnet ein Nun, das ist sehr cool, wenn Sie zwei Bildschirme haben. Normalerweise mache ich das, wenn ich eine Kamera habe und mir mein Spiel einfach so ansehe , ich stelle es auf meinen zweiten Bildschirm und ich kann auch hier arbeiten , während ich diese Ansicht meines Spiels habe. Also sehr cool. Sie können hier mehrere Fenster öffnen. Und das gilt auch für den Detailbereich , wenn Sie einen zweiten Detailbereich öffnen möchten. Und Sie können hier sehen, ob ich etwas in meiner Welt auswähle. Sie können sehen, dass es sich um dieselben Details handelt, die hier angezeigt werden. So sehr, sehr cool, dass du hier mehrere Fenster öffnen kannst . Was Tools angeht, haben wir nicht wirklich viel, also lassen wir das vorerst aus. In Build ist die einzige wichtige Schaltfläche hier , dass du das Level und die Beleuchtung bauen kannst. Und es erzeugt die richtigen Schatten und so weiter, aber damit werden wir später arbeiten , wenn wir die Beleuchtung machen, und am Ende haben wir die Hilfe und du kannst dir die Dokumentation auch hier ansehen. Okay. Das Letzte, was ich durchgehen möchte, bevor wir hier fertig sind, ist die Inhaltsschublade. Und klicken Sie hier unten auf die Inhaltsschublade. Hier werden sich alle Dateien für echte Engines befinden, für das Spiel, das du gerade erstellst. Wenn du zum Beispiel Texturen hast, wenn du Musik hast, wenn du drei D-Modelle hast, all diese Dateien für dein Spiel werden all diese Dateien für dein Spiel hier unten in der Inhaltsschublade sein. Was ich gerne mache, du kannst sehen, wenn ich auf das Viewboard klicke, es wird verschwinden Wenn ich hier klicke und erneut klicke, sagen wir, ich arbeite im Viewpoard, es Ich finde es ein bisschen nervig. Normalerweise klicke ich hier und dann auf Duck in Layout. Und es wird hier bleiben. Und jetzt heißt es Content Browser. Es bleibt die ganze Zeit hier auf meinem Bildschirm. Wenn ich hier am Aussichtspunkt an meinem Spiel arbeite , verschwindet es nie Und es ist auch viel schöner für dich, das für diesen Kurs zu sehen. Im Inhaltsbrowser kann ich Ordner erstellen Wenn Sie hier mit der rechten Maustaste klicken, können Sie einen neuen Ordner erstellen. Sie können ihm zum Beispiel einen Namen geben, zum Beispiel Hallo oder so etwas Ähnliches. Sie können auch mit der rechten Maustaste auf den Ordner klicken und die Farbe festlegen. Sie können die Farbe des Ordners festlegen. Und das ist sehr nett, wenn Sie hier im Inhaltsbrowser organisiert bleiben möchten . Weil Sie sich vorstellen können, wenn Sie ein großes Spiel haben und viele Dateien hier im Inhaltsbrowser Wenn Sie etwas Neues erstellen möchten, können Sie mit der rechten Maustaste hier klicken. Sie können mit der rechten Maustaste sehen, dass Sie Ihrem Spiel verschiedene Elemente hinzufügen können. Das Wichtigste ist, dass wir mit Bauplänen arbeiten Also dieser ist sehr riesig. Und wir können auch eine neue Ebene schaffen, ein neues Material. Wenn wir etwas mit Animationen zu tun haben, werden wir auch damit arbeiten. Das kannst du zum Beispiel erstellen. Sie können auf eine davon klicken und sehen, dass Sie verschiedene Optionen haben. Im Moment haben wir nicht wirklich ein Skelett, keinen Spieler. Also werde ich es schließen und etwas Neues kreieren. Zum Beispiel ein Material. Und du kannst sehen, hier ist es. Wenn Sie die Symbole kleiner oder größer machen möchten, können Sie auf die Einstellungen klicken und zur Miniaturbildgröße wechseln und eine kleinere Größe auswählen Was Sie jetzt auch tun können, Sie können die Steuerung auf der Tastatur gedrückt halten und das Mausrad verwenden Wenn Sie also mit einem Mausrad heranzoomen und gleichzeitig die Taste gedrückt halten, können Sie die Symbole auch vergrößern und verkleinern. Jetzt klicke ich auf diesen und drücke auf meiner Tastatur auf Löschen. Und mach einfach weiter und lösche es vorerst. Wenn du erneut mit der rechten Maustaste klickst, siehst du all diese Elemente, die du erstellen und zu deinem Spiel hinzufügen kannst. Auch hier sieht es sehr, sehr verwirrend aus, wenn du es noch nie zuvor benutzt hast, auf einer echten Engine benutzt hast und wenn es für dich neu ist. Aber versuchen Sie auch hier nicht, sich auf all diese Dinge zu konzentrieren. Konzentrieren wir uns einfach auf die wichtigsten Dinge und erstellen sie in diesem Kurs. Und ich verspreche dir, dass du das alles langsam lernen wirst. Konzentrieren Sie sich also vorerst nicht auf alles. Jetzt können Sie auch diese Schaltfläche „Hinzufügen“ verwenden , aber ich verwende sie nie. Ich gehe einfach in den Ordner, in den ich etwas hinzufügen möchte , und schreibe einfach hier klicken. Aber das Gleiche, du kannst auch hier oben klicken, wenn du möchtest. Okay, das war es also für die Unreal Engine Overview. Wenn du einen tieferen Überblick über Unreal Engine haben möchtest, besuche bitte meine anderen Kurse Ich habe auch einen kompletten Anfängerleitfaden. Nachdem dies geklärt ist, lassen Sie uns einfach weitermachen und mit der nächsten Lektion fortfahren. 5. 2.01 Spieleinführung: Hallo Ron. Das bin ich aus der Zukunft. Und das ist das fertige Projekt für diesen Kurs. Und ich werde dir nur zeigen, was wir in diesem Kurs machen werden. Manchmal ist es viel einfacher, das fertige Produkt zu sehen, bevor Sie weitermachen. Was wir hier tun werden, ist ein FPS-Spiel von Grund auf neu zu erstellen. Und wir beginnen buchstäblich von Grund auf mit einem leeren Projekt. Und wir machen alles, von der Erstellung der Karte die Beleuchtung, den Import der Waffen zur Waffenausrüstung und so weiter. Und wenn ich hier einfach auf Spielen klicke , kannst du dir das Spiel ansehen. Wir haben also Umgebungsgeräusche im Hintergrund. Bei einigen Vögeln kannst du hier Waffen erbeuten. Du kannst das auch plündern. Du hast es auf deinem Rücken, wie du hier auf meinem Schatten sehen kannst hier auf meinem Schatten Aber du kannst es auch hier sehen, wenn ich einfach als anderer Spieler spawne Du kannst es hier auf der Rückseite dieses Spielers sehen. Und ich kann auch die Waffen wechseln. Ich kann mit der Waffe schießen. Es gibt auch unterschiedliche Soundeffekte für jede Waffe. Ihr könnt auch sehen, dass wir am Boden einige Effekte haben. Wir haben Kugeln zur Berechnung. Wir können die Waffe nachladen. Wir können auch andere Spieler treffen. Ja, wir haben Gesundheit und Rüstung und wir haben auch runde Punkte. Wir haben viel zu tun. Wir können Waffen fallen lassen. Die Waffen haben Gewicht. Und wir haben auch Ragdoll Death and Responsing. Und Sie erhalten auch eine Benachrichtigung, wenn Sie die Runde gewinnen und verlieren und so weiter In diesem Spiel passieren hier viele Dinge, aber wir werden es zusammen durchgehen. Und glaub mir, es wird einfach sein , wenn du einfach dem Kurs hier folgst. Ich werde dir alles beibringen, was du wissen musst , um ein FPS-Spiel zu erstellen. Das Gute an Blueprints ist dieser Kurs Wenn du ihn vollständig befolgst und ihn verstehst, wird dir dieser Kurs nicht nur beibringen, FPS-Spiele zu entwickeln, sondern auch andere Spiele Denn wenn du andere Spiele erstellst, verwendest du eigentlich dieselben Tools Blaupausen sind nur Blaupausen. Und du hast einfach solche Tools in einer Toolbox und du kreierst verschiedene Dinge damit In diesem Fall werden wir ein FPS-Spiel erstellen. Ich hoffe, du wirst Spaß mit mir haben. Lass uns weitermachen und keine Zeit verlieren, und wir sehen uns beim nächsten. 6. 2.02 Erstellen einer neuen Karte: Um eine neue Karte zu erstellen. Lassen Sie uns zuerst hier einen neuen Ordner erstellen. Ich klicke mit der rechten Maustaste auf den Inhaltsordner. Ich klicke auf Neuer Ordner und nenne diesen Ordner Maps. Dann klicken wir hier mit der rechten Maustaste. Und lass uns weitermachen und für dieses Level auf Level klicken. Normalerweise nenne ich Karten als Präfix Map , weil wir später tatsächlich nach Elementen suchen können hier tatsächlich nach Elementen suchen können und es uns später leichter fallen wird. Also gebe ich meinen Dateien normalerweise Präfixe. Ich nenne das eine Map und nennen wir es einfach Main. Das ist unsere Hauptkarte. Jetzt können wir auf diese Karte doppelklicken. Und jetzt fragt es uns, ob wir dieses Level auch hier speichern wollen. Und ich werde das einfach entfernen. Ich möchte nur meine neue Map speichern und auf Safe Selected klicken. Und jetzt bin ich in meiner neuen Map. Und du kannst sehen, dass es hier drinnen sehr dunkel ist, und im Outliner ist nichts Und es ist dunkel, weil es kein Licht gibt. In unserem Level gibt es noch keine Ressourcen, und wir müssen sie in unseren nächsten Lektionen hinzufügen. 7. 2.03 Importieren von Umwelt-Assets: Für die Umweltressourcen werden wir ein Paket aus dem Marketplace verwenden Wenn du den Epic Games Launcher öffnest und dort auf den Marketplace-Tab klickst , wenn du dich im Marketplace befindest. Auf dem Marktplatz gibt es viele coole Gegenstände, die du für dein Spiel verwenden kannst. Du kannst auch sehen, dass sie für den Monat kostenlos sind. Es lohnt sich, einen Blick darauf zu werfen, aber lassen Sie uns vorerst in den Produkten nach Grid suchen. Wenn du hier einfach Grid schreibst und die Eingabetaste drückst und dann hier drüben im Maximalpreis auf Kostenlos klickst. Und dann siehst du dieses Spiel namens Super Grid Start up Pack. Das werden wir verwenden. Wenn Sie also darauf klicken und dann heißt es hier herunterladen, falls Sie es noch nicht heruntergeladen haben. Und wenn Sie dieses Asset herunterladen, können Sie ein Projekt erstellen. Sie können auf diese Schaltfläche namens Projekt erstellen klicken. Und dann müssen Sie auswählen , wo Sie es speichern möchten , und einfach auf Erstellen klicken. Sie können auch auswählen , für welche Version Sie es erstellen möchten . Im Moment ist es auf 5.1 eingestellt. Ist es. Okay, Sie benötigen keine Version 5.1, um dies zu verwenden, aber es wird nur die neueste Version der Honual-Engine erstellt die neueste Version der Honual-Engine Sie müssen es nicht heruntergeladen haben, um es zu verwenden, das ist also okay Ich habe es bereits erstellt. Wenn ich also zu meiner Bibliothek zurückkehre , wird es hier angezeigt, wenn Sie es erstellen. Das ist das Super Grit Stata Pack oder Unreal Engine 5.1. Ich werde es doppelt anklicken, um es zu öffnen. Nochmals, du brauchst Unreal Engine 5.1 nicht, um es du brauchst Unreal Engine 5.1 nicht Sie können es tatsächlich mit 5.2 oder der Version öffnen , die Sie verwenden. Und hier ist es, es öffnet sich. Du musst warten. Wenn Sie es zum ersten Mal öffnen, muss es die Shader vorbereiten Es kann viel Zeit in Anspruch nehmen , wenn Sie es das erste Mal öffnen, manchmal eine halbe Stunde, manchmal eine Stunde Aber wenn es dann fertig ist, können Sie die SS jetzt hier verwenden . Um Assets von einem Projekt in ein anderes zu verwenden, müssen Sie Dateien migrieren. Sie können dies tun, indem Sie schreiben, auf diesen Super-Grid-Ordner klicken und dann weitermachen und auf Migrieren und dann auf Okay klicken. Und dann müssen Sie auswählen, wo Sie diese Datei speichern möchten? Und ich möchte es in meinem anderen Projekt speichern. Hier habe ich es in diesem Multiplikator-Shooter-Ordner und in Counter Strike Und dann musst du den Inhaltsordner für dein Unreal Engine-Projekt auswählen den Inhaltsordner für dein Unreal Engine-Projekt Denken Sie daran, dass Sie den Inhaltsordner auswählen müssen Sie können ihn nicht in anderen Ordnern speichern, den Inhaltsordner auswählen und Sie können auch keinen anderen Ordner innerhalb des Inhaltsordners auswählen anderen Ordner innerhalb des Inhaltsordners Wenn Sie Dinge von einem Projekt in ein anderes migrieren, müssen Sie den Inhaltsordner auswählen und einfach auf Ordner auswählen klicken. Und dann werden alle Dateien migriert, die hier sind, und jetzt ist es fertig. Damit ich dieses Supergrid schließen kann. Und wenn ich mein Projekt öffne, kannst du sehen, dass ich jetzt diesen Supergrid-Ordner habe und die darin enthaltenen Ressourcen jetzt in meinem Spiel verwenden kann Bevor wir fertig sind, werde ich den Epic Games Launcher noch einmal öffnen, weil wir noch etwas anderes brauchen Bevor wir weitermachen, werde ich den Marktplatz öffnen. Und für die Beleuchtung brauchen wir hier drüben einen Himmel. Wenn ich einfach wieder nach Sky suche, klicke ich auf kostenlos. Hier drinnen werde ich dieses Spiel namens Good Sky verwenden. Wenn Sie erneut darauf klicken, können Sie auf Herunterladen klicken, falls Sie es noch nicht heruntergeladen haben, und dann können Sie auf Zum Projekt hinzufügen klicken, und dann müssen Sie Ihr Projekt finden. Sie können hier sehen, wenn ich zurückgehe, es ist nur für 5.1 verfügbar. Derzeit verwende ich 5.2 Sie müssen lediglich auf Zum Projekt hinzufügen und dann auf Alle Projekte anzeigen klicken. Und dann kann ich auf mein Counter-Strike-Projekt klicken. Und dann muss ich die Version oder den Pac auswählen. Ich klicke hier und wähle die neueste Version aus , mit der es kompatibel ist. Es ist okay, es wird keinen Fehler machen. Es wird gut funktionieren. Ich werde auf Zum Projekt hinzufügen klicken und es wird hier zu meinem Projekt hinzugefügt. Wenn ich jetzt zu meinem Projekt zurückkehre, können Sie sehen, dass der gute Himmel zu meinem Projekt hinzugefügt wurde , und ich kann ihn auch verwenden. wir nun die Umweltressourcen importiert haben, fahren wir mit der nächsten Lektion fort und entwerfen die Umgebung. 8. 2.04 Gestaltung der Umwelt: Um die Umwelt zu gestalten . Im Moment kannst du sehen, dass das Level dunkel ist und es unmöglich ist, irgendetwas zu tun, wenn ich zum Supergrid gehe und ein Pack starte und dann gehe ich zu Source und du kannst sehen, dass wir den Meshes-Ordner haben Wenn ich zum Beispiel dieses Feld hier hineinziehe, kannst du sehen, dass es dunkel ist und wir nichts sehen können Wenn ich hier auf den unbeleuchteten Modus klicke den beleuchteten Modus auf unbeleuchtet ändere, kann ich ihn jetzt sehen, weil wir nicht wirklich Licht haben und wir Dinge nicht sehen können, wenn wir im beleuchteten Modus sind. Ich mag es also eigentlich nicht besonders, im unbeleuchteten Modus zu entwerfen. Das kannst du machen Natürlich kannst du versuchen, einfach das gesamte Level beleuchtet zu gestalten, denn danach werden wir die Beleuchtung hinzufügen. Wenn du es jedoch im beleuchteten Modus gestalten möchtest, kannst du einfach weitermachen und hier nach oben klicken. Und gehe zu Lichter und füge vorerst ein gerichtetes Licht hinzu. Und du kannst es später jederzeit ändern. Denken Sie daran, wenn Sie zum Beispiel dieses Feld vergrößern und der Meinung sind, dass das Sonnenlicht zu hell ist, können Sie darauf klicken und Sie können auf E klicken, um das Rotationswerkzeug zu verwenden. Und du kannst es jederzeit drehen, um zu sehen, ob du einen guten Winkel hinbekommst. Und du kannst auch hier die Intensität verringern und von dort aus arbeiten. Aber im Moment ist das nur vorübergehend. Wir werden nur das Level entwerfen und danach machen wir die Beleuchtung. Aber ich möchte nur dieses hinzufügen, damit ich mein Level auch im beleuchteten Modus gestalten kann . Ordnung, also im Moment werde ich dieses Feld einfach wieder löschen. Und was wir tun werden, ist so etwas für Counterstrike zu entwerfen Das wird also eine Karte genannt. Eine Karte besteht im Grunde zwei Seiten dieser Karte. Der Anti-Terrorist erscheint also auf der einen Seite und der Terrorist wird auf der anderen Seite erscheinen Und es gibt Waffen, die sie aufheben können und sich gegenseitig auf diese Weise erschießen können. Nur eine sehr, sehr einfache Karte und wir werden so etwas ganz natürlich entwerfen, eine komplette Copy-Paste, aber etwas, von dem wir denken, dass es vorerst gut aussieht. Fangen wir damit an, diese superkritische Ebene in das Level zu ziehen diese superkritische Ebene in das Level zu Was ich gerne mache, ist, es an der Position 000 zu platzieren , also im Mittelpunkt der Welt Und normalerweise fange ich gerne von hier aus an. Sehr cool. Für diese Objekte können Sie auf Kunst klicken, um das Skalierungswerkzeug aufzurufen Anschließend können Sie sie in diese verschiedenen Richtungen skalieren . Und du kannst sehen, dass es die Ebene auf diese Weise erstellt und eine Ebene für dich erstellt. Sehr cool. Du kannst es auf beiden Achsen skalieren und dann den Boden für das Spiel schaffen , um es einfacher zu machen, sodass du nicht viel skalieren musst. Was Sie tun können, ist , hier oben zu klicken , um es zuerst so zu skalieren, sodass dieses Feld vollständig angezeigt wird Dann können Sie hier nach oben klicken, um das Skalierungstool hier oben aufzurufen. Und vielleicht wählen Sie den Skalenausgleich auf eins aus und setzen ihn auf eins. Wenn ich es jetzt in diese Richtung skaliere, kannst du sehen, dass es eine ganze Box skaliert, eine, die ich einmal skaliere. Das ist sehr cool. Anstatt es jetzt oft zu machen, können Sie nur einmal skalieren und schon wird diese Box für Sie erstellt. Sie können sehen, wie nützlich es ist, Snapping auch für das Level zu verwenden , wenn ich es skaliere Sie können sehen, dass es auch hier in meinem Detailbereich skaliert. Sie können sehen, wie die Zahlen steigen. Sie können es entweder auf diese Weise skalieren oder Sie können es auf diese Weise skalieren. Lass es mich einfach so skalieren. Hier kannst du dir vorstellen, wenn du hier runter gehst, dort steht der Spieler. Wenn du sehen willst, wie groß diese Karte ist, kannst du auch hier oben in den Schnellstart-Button zwei Basics klicken und einen Spieler hinzufügen startet dieser Spieler, ich werde ihn zuerst auf den Boden bringen. Sowas in der Art. Da steht schlechte Größe. Wenn es im Boden ist, werde ich es nach oben bewegen. So etwas in der Art. Der Charakter hat die Größe dieses Spielers fast. Dies ist nur eine Referenz. Jetzt können Sie sehen, dass dieses Level sehr klein ist. Das ist nicht das, was wir wollen. Wir brauchen es viel größer. Also werde ich auf dieses Flugzeug klicken. Ich werde 80 für das X und 80 für das Y schreiben. Jetzt werde ich versuchen, diese Karte hier zu erstellen Natürlich kannst du es für diesen Kurs immer kleiner machen Es spielt keine Rolle , was Sie entwerfen. Machen Sie weiter und entwerfen Sie erneut Ihr eigenes Level. Es spielt keine Rolle, was Sie zu diesem Zeitpunkt entwerfen. Später programmieren wir mit der Karte, die Sie entwerfen. Seien Sie einfach kreativ und entwerfen Sie Ihr eigenes Ding und haben Sie Spaß damit. Wenn wir den Boden geschaffen haben, können Sie zum Beispiel diese Box nehmen. Sie können es hier auf den Boden stellen. Und dann werde ich es so bewegen, dass es hier wieder an den Rändern des Bodens einrastet hier wieder an den Rändern des Bodens Für das Schnappen, wenn ich es auf eins setze, kann ich es jetzt skalieren, und das ist nur meine Wand Wir werden es einfach so bis zur anderen Seite skalieren, bis es hier fertig ist. Dann können Sie es auch nach oben skalieren , um eine Wand wie diese zu machen. Auf der Skala von 20 für die Höhe. Wir können es später jederzeit ändern. Wenn wir denken, dass das zu klein oder zu groß ist. Was ich tun kann, ist es einen Schritt hierher zu verschieben, hier drüben auf dieser Kiste, weil ich auch die andere Wand hier haben möchte. Was wir jetzt mit dieser Wand machen können, ist, dass ich sie auch hier verkleinern möchte, jetzt ist sie draußen, und sie wird um eins verkleinert . Einfach so. Jetzt kann ich Alt auf meiner Tastatur gedrückt halten und ich kann drehen, während ich Alt gedrückt halte. Dadurch wird das Modell kopiert, wenn Sie beim Drehen die Alt-Taste gedrückt halten. Dadurch wird es kopiert. Und jetzt kann ich dieses Modell auf diese Größe ziehen. Ich werde nur meine Kamerageschwindigkeit leicht erhöhen , damit ich sehen kann, was passiert. Und ich werde in den unbeleuchteten Modus wechseln, weil Sie jetzt sehen können, dass es wirklich schwierig ist, es zu sehen Und ich werde es einfach so bewegen. Ich mache es einfach zusammen. Stellen Sie nur sicher, dass sie zusammengesteckt sind. Überprüfe hier, ob alles in Ordnung ist. Alles ist gut. Auch hier klicke ich auf E old und ziehe es dann, um es zu kopieren. Nicht so. Ich klicke auf Strg Z und halte Alt gedrückt. Klicken und ziehen Sie, um es zu kopieren, und ziehen Sie es dann hierher und fixen Sie es dann Vielleicht ist es auch viel einfacher, die Anzahl der Schnappschüsse zu erhöhen. Es ist besser zu kontrollieren. Sie können hier sehen, dass Sie es nicht oft bewegen müssen , bevor es einreißt. Das wird es für dich viel einfacher machen. Ich werde hier dasselbe tun, es auf diese Seite ziehen und sicherstellen, dass es mit dieser Wand einrastet Ich werde auch dafür sorgen, dass es hier gut aussieht. Jetzt kannst du sehen, dass ich eine Mauer habe. Wenn ich jetzt in den Leuchtmodus gehe, kann ich auf dieses gerichtete Licht klicken. Ich kann es leicht drehen. Ich kann mein Level sehen. Und ich kann auch die Intensität verringern, sodass es nicht so intensiv ist. Jetzt haben wir diese Ebene mit den Wänden. Alles klar? Also ich möchte, dass du dieses Level so gestaltest, wie du es möchtest. Du kannst hier immer Würfel platzieren. Du kannst versuchen, sie in der Größe zu ändern etwas wie Wände für den Spieler zu bauen, sodass der Spieler hier steht und auf die anderen Spieler schießt Du kannst versuchen, Würfel zu machen, etwa so. Du kannst Alt gedrückt halten und ziehen, während du Alt gedrückt hältst , um es zu kopieren und vielleicht so zu platzieren. Du kannst es sogar noch einmal kopieren. Und du kannst es neben diesem platzieren , etwa so. Und du kannst es auch vergrößern, um so etwas interessant zu machen. Sie können auch immer versuchen, interessante Modelle zu erstellen. Sie können hier sehen, dass Sie all diese Ressourcen verwenden können. Sie können auch Rampen benutzen. Sie können versuchen, diese Rampe zu ziehen, und Sie können auch die Größe der Rampe und den Hang vergrößern auch die Größe der Rampe und den Hang So und auf diese Weise kannst du auch Rampen auf dieser Ebene bauen Versuche sehr kreativ zu sein und entwerfe einfach ein zufälliges Level, mit dem wir das Spiel programmieren können Vor diesem Hintergrund, falls du nicht wirklich daran interessiert bist , das Level zu entwerfen und du einfach mit den Entwürfen beginnen möchtest, habe ich auch das Projekt für dich hinzugefügt bei dem das Level ohne Code entworfen wurde Sie können das auch verwenden, wenn Sie möchten. Es ist wirklich eine gute Praxis , auch eigene Levels zu entwerfen. Stellen Sie sich vor, wenn Sie später in dieser Phase Ihr eigenes Spiel entwickeln, wissen Sie auch, wie Sie Ihr Level gestalten müssen. Ich empfehle also, einfach weiterzumachen und Spaß damit zu haben. Entwirf einfach das Level. Nutze vielleicht eine Stunde oder 30 Minuten und komm dann wieder her. In Ordnung, hier bin ich wieder. Ich bin zurück und habe das Level entworfen. Ich habe ein paar Stunden damit verbracht , einfach etwas Interessantes zu entwerfen und es cool aussehen zu lassen, wenn wir das Projekt programmieren. Auch hier habe ich das für Sie beigefügt, damit Sie es ohne Code verwenden können. Wenn Sie also nicht entwerfen möchten, hier ist es, Sie können es verwenden. Aber auch hier schlage ich vor, dass Sie weitermachen, einfach Spaß haben und etwas Zufälliges entwerfen , das wir verwenden können. Sie können hier sehen, dass ich einen neuen Ordner namens Marketplace erstellt habe. Und hier drinnen habe ich den guten Himmel und auch das Supergrid hineingezogen den guten Himmel und auch das Supergrid Sie sind hier und es ist ein bisschen besser organisiert. Was das Level angeht, werde ich es tatsächlich in den unbeleuchteten Modus ändern , um es dir zu zeigen weil die Beleuchtung momentan etwas nervig ist Hier drinnen kannst du sehen, was ich gemacht habe. Ich habe zum Beispiel gerade die Boxen zusammengestellt. Ich habe nur versucht, diesem Level einige interessante Formen hinzuzufügen , die Größe dafür. Auch hier ist der Boden immer noch 80 mal 80 groß, wie wir ihn zuvor gemacht haben, und die Wände sind immer noch 20 mal 79 groß, genau wie zuvor. Sie können hier all diese Boxen sehen, sie bestehen aus verschiedenen Boxen. Sie können diese Box hier sehen, die mit dieser Box hinzugefügt wurde . Nochmals, genau wie zuvor. Ich habe nur das Skalierungswerkzeug verwendet, um sie nach oben und unten zu skalieren und einfach versucht, interessante Formen für dieses Bild zu erstellen . Das ist der Super-Grid-Ring. Wenn du ihn anklickst, wenn du ihn zum Beispiel hier anklickst, kannst du auf dieses kleine Icon klicken. Dadurch gelangen Sie tatsächlich zum Modell im Inhaltsbrowser. Das ist also der einfache Weg, und das ist der, den ich im Meshes-Ordner verwendet habe Meshes-Ordner verwendet Ich habe auch diese Rampe gemacht. Sie können hier also sehen, dass ich sie wie eine Rampe entworfen habe. Sie können hier raufgehen diese Rampe bauen und diese Mauer daneben bauen, um diese Rampe hier einzuschließen Sie können sehen, wie ich es geschafft habe hier einfach etwas Boden zu haben Und dieser Boden auch unter dieser Rampe. Es sind nur zwei Rampen zusammen und etwas Boden hier dazwischen. Nur ein paar zusammengesetzte Wände. Sie können sehen, dass ich einige Zeit damit verbracht habe, ein interessantes Level zu bauen. Das sind nur Boxen, die du zusammenstellen kannst. Sie können diese Formen auch verwenden. Wenn du auf dieses Symbol klickst, wird es zu dir gebracht und es sind diese Zylinder du platzieren und dann skalieren kannst. Dann können Sie diese verwenden , um sie darauf zu platzieren. Sie können sie verkleinern , damit sie gut aussehen. Vielleicht nehmen Sie hier einfach das Snapping heraus oder reduzieren Sie es einfach auf etwa 0,125 oder so Und verkleinern Sie es einfach und versuchen Sie, es überall zu kopieren und einzufügen, um diese interessante Form hier oben zu erhalten Okay, aber genau das habe ich getan, um dieses Level zu entwerfen. Auch hier können Sie es herunterladen, wenn Sie möchten. Ich habe es für dich beigefügt. Wenn das erledigt ist, denken Sie daran, auch hierher zu gehen. Was Sie im Outliner tun können, Sie können all diese Elemente auswählen , die Sie entworfen haben Und was Sie tun können, ist, sie alle auszuwählen. Klicken Sie also auf den ersten, halten Sie die Umschalttaste gedrückt und klicken Sie auf den letzten. Und dann können Sie auf dieses Ordnersymbol klicken , um einen neuen Ordner zu erstellen. Und klicken Sie auf Ihrer Tastatur auf zwei , um diesem Ordner einen Namen zu geben. Und es wird so organisiert bleiben. Denken Sie daran, dass es immer schön ist, hier unten im Inhaltsbrowser organisiert zu bleiben . Bleiben Sie auch hier im Outliner organisiert. Nun, da dieses Level entworfen ist, gehen wir zurück zum beleuchteten Modus Und jetzt sind wir bereit , die Beleuchtung zu machen. Sie können jedoch sehen, dass es sehr hell ist. Und wenn ich zum Richtungslicht gehe und es auf etwa 0,2 ändere , kannst du sehen die Beleuchtung ständig ändert und immer heller wird. Wir müssen also ein Post-Process-Volume hinzufügen bevor wir weitermachen können. Gehen wir also zur nächsten Lektion über. 9. 2.05 Volumen nach dem Postprozess: dem Post-Process-Volume in der Unreal Engine können wir das Image des Spiels verändern So wie Sie sich Photoshop vorstellen können, wo Sie Photoshop ein Bild hinzufügen und die Farben dieses Bildes ändern Das ist das Gleiche hier in Unreal Engine, wir verwenden ein Post-Process-Volume Diese Lautstärke kann die Wärme des Levels verändern, wir können die Farbe, die Sättigung, die Bloom-Linsenreflexe und so weiter ändern Sättigung, die Bloom-Linsenreflexe und so weiter Wir können also hier klicken und Sie können es in beiden visuellen Effekten finden und Sie können in beiden visuellen Effekten finden und Sie sehen, dass es Post-Process-Volume heißt Oder Sie können zu Volumes gehen und dann weitermachen und ein Post-Process-Volume erstellen. Es gibt zwei Möglichkeiten, es zu erstellen. Also mach weiter und klicke darauf. Und wenn ich auf meiner Tastatur auf klicke, um die Symbole anzuzeigen, siehst du hier dieses Feld, das wir erstellt haben. Dies ist das Post-Process-Volumen. Wenn Sie jetzt hier auf einen von ihnen klicken, zum Beispiel den Bloom, und Sie klicken auf die Intensität. Und erhöhen wir es einfach auf etwas Wahnsinniges, etwa fünf Sie können sehen, dass nichts wirklich passiert ist Wenn ich es zu einem gesagt habe, wenn ich es zu fünf gesagt habe , passiert nichts Das liegt daran, dass Sie in dieses Post-Process-Band gehen müssen. Sie können sehen, wenn ich meine Kamera darin bewege, wird die Blüte wirksam. Wenn ich dieses Feld verlasse, können Sie sehen, dass die Blüte nicht wirksam wird. Ich muss mich also innerhalb dieser Box befinden, damit sie wirksam wird. Um das auf die gesamte Ebene anzuwenden, ohne diese Box zu betreten und zu verlassen. Du kannst hier runter gehen und den Punkt Unendliche Ausdehnung ankreuzen. Du kannst es ankreuzen und jetzt kannst du sehen, dass es für das gesamte Level gilt. Welches unendliche Ausmaß hat das? Es wird einfach auf das gesamte Level angewendet, sodass Sie nicht innerhalb und außerhalb der Box gehen müssen. Nun, was nützt es hier, für diese Box? Es ist zum Beispiel, wenn Sie einen Kerker haben, oder sagen wir, ich möchte in dieses Gebäude gehen und die Farbe ändern. Das kannst du tun Sie können es zum Beispiel innerhalb dieses Gebäudes bewegen . Du kannst es hierher bringen. Und du kannst es sogar vergrößern. Sie können sehen, wenn ich es hier nach oben verschiebe, kann ich das Skalierungswerkzeug nehmen, auf R klicken, um das Skalierungswerkzeug aufzurufen, und dann kann ich es auf X, Y und Z skalieren versuche nur, den Bereich auszufüllen, in Ich versuche nur, den Bereich auszufüllen, in dem es tatsächlich wirksam werden soll. Nehmen wir zum Beispiel an, ich möchte, dass es hier wirksam wird. Wenn ich einziehe, wenn ich in diesen Kerker gehe, kann man die Blüte sehen, die Blüte nimmt zu, jetzt wird sie wirksam Das ist der Zweck, das unendliche Ausmaß nicht zu nutzen. Wenn Sie beispielsweise ein RPG-Spiel haben, Sie haben Dungeons und möchten die Farbe ändern, wann immer Sie sich in diesem Dungeon befinden Wir haben so etwas jedoch nicht wirklich . Ich möchte, dass es für das gesamte Level gilt , also klicke ich auf Infinite Extent. Ich gehe nach oben und ich nehme auch die Waage. Ich werde auf diese Taste drücken, um zur Standardeinstellung zurückzukehren. Nicht wirklich wichtig, aber ich wollte es einfach so voreinstellen, wie Sie hier sehen können. Zum Beispiel können Sie für die Temperatur die Temperatur erhöhen oder senken und Sie können die Farbe dieser Welt ändern. Sogar den Farbton können Sie erhöhen und verringern. Sie können sehen, dass das Volumen nach der Bearbeitung genau wie in Photoshop ist Sie können das Aussehen dieses Spiels ändern. Ich werde auf diese Pfeile klicken und sie vorerst auf die Standardeinstellungen zurücksetzen. Wir werden vorerst nicht wirklich viel damit spielen. Was ich tun möchte, ist hier zu sehen, ob ich diese Intensität für den Bloom entferne, ich klicke hier. Sie können das Sonnenlicht sehen. Wenn ich es auf, sagen wir, fünf sehr intensiv setze , können Sie sehen, dass es das Licht verändert. Das ist die Belichtung. Wenn ich sie auf 0,2 setze, kann man sehen, dass es zunächst dunkel ist und dann mit zunehmender Beleuchtung zunimmt. Ich möchte das nicht tun, weil wir Spiele entwickeln und in Spielen machen wir solche Dinge nicht wirklich. Es ist immer schön, bei einer Beleuchtung zu bleiben . Gehen wir zum Post-Process-Volume und klicken wir hier auf Exposure. Klicken wir auf den minimalen und maximalen EV und setzen diesen Wert auf eins. Und setze diesen auch auf eins. Jetzt kannst du sehen, ob ich auf das gerichtete Licht klicke und die Intensität auf etwa drei setze. Und jetzt können Sie sehen, ob ich näher komme, ob ich weggehe, wenn ich mir verschiedene Dinge ansehe, Sie können sehen, dass das Licht nicht wirklich verändert wird und dass es statisch ist. Und das wollen wir für Spiele. Gehen wir zum Post-Process-Band für den Bloom über. Im Moment klicke ich auf die Intensität und setze sie auf Null. Es ist immer schön, es von Anfang an auf Null zu haben. Bei der Beleuchtung beeinflussen wir die Beleuchtung nicht durch andere Faktoren Deshalb hat Bloom sie auf Null gesetzt. Auch hier unten, den Bildeffekt, haben wir etwas, das man Vignette nennt Und eine Vignette ist, du kannst sehen, wenn ich darauf klicke und du sie erhöhst, es entsteht ein dunkles Bot auf deinem Bildschirm. Wenn ich nur die Intensität der Richtung erhöhe, Licht, damit du siehst, was ich meine Wenn ich es auf zehn setze und jetzt auf die Lautstärke nach der Bearbeitung klicke, kannst du die Vignette erhöhen und verringern . Einfach so Das ist nur ein filmischer Albot rund um dein Bild. Und das möchte ich von Anfang an nicht tun. Ich möchte nicht, dass es meine Beleuchtung beeinträchtigt. Lass es uns auf Null setzen. Sie können sehen, wenn ich es nicht ankreuze, es ist standardmäßig 0,4, Sie können sehen, dass es tatsächlich angewendet wurde. Wenn ich das Häkchen deaktiviere, denke daran, ein Ticket zu erstellen und es auf Null zu setzen, damit es entfernt wird Wenn ich hier runtergehe, nur um sicherzugehen, dass noch etwas gegen die Bewegungsunschärfe da ist noch etwas gegen die Bewegungsunschärfe Die Leute mögen Bewegungsunschärfe in Ego-Shoter-Spielen normalerweise nicht Ich klicke auf den Betrag und stelle auch diesen Wert auf 120 Und wenn das erledigt ist, sind wir jetzt tatsächlich bereit für die Beleuchtung. Sie können sehen, dass sich jetzt nichts auf unsere Beleuchtung auswirkt . Wenn wir die Beleuchtung machen und die Ergebnisse sehen, ändert sich nichts an der Beleuchtung. Und Sie können sehen, dass das Licht gleich bleibt, wenn ich mich hin und her bewege . Und das wollen wir. Also lass uns weitermachen und auf Datei klicken. Und lass uns auf Alle speichern klicken. Und auch hier im Post-Process-Band können Sie darauf klicken und einen neuen Ordner erstellen. Und lass uns einfach hier klicken, auf zwei klicken und diesen einen Post Process nennen. Hier ist das Volumen nach der Bearbeitung, und jetzt sind wir bereit , die Beleuchtung zu machen. 10. 2.06 Beleuchtung der Umwelt: Wir sind jetzt bereit, die Beleuchtung zu machen. Was wir also tun können, ist dieses gerichtete Licht zu löschen. Weil wir jetzt bereit sind, von vorne anzufangen, okay? Ich mache die Beleuchtung so, dass ich hier raufgehe, zu den Lichtern gehe und zuerst ein gerichtetes Licht hinzufüge. Das ist also unser Sonnenlicht. Und normalerweise füge ich alle Lichter hinzu, bevor ich anfange, sie einzustellen. Also hier ist das Sonnenlicht. Und wenn Sie hier drüben klicken, gehen Sie wieder zu den Lichtern. Und fügen wir das hinzu, das als Dachfenster bezeichnet wird. Das Oberlicht ist Licht, das vom Himmel kommt . Wie Sie hier sehen können, ist es momentan wirklich dunkel Was wir tun können, ist hier im Marketplace-Ordner, ich kann auf den Good Sky klicken, den wir zuvor hinzugefügt haben, und dann auf den Blueprint-Ordner klicken Und diesen Guten Himmel kannst du anklicken und in das Level ziehen Und wenn du ihn platzierst, kannst du sehen, dass er hier drin ist. Auch hier möchte ich es tagsüber machen, aber im Moment werde ich nicht wirklich etwas anpassen. Dann können wir hier klicken. Wir haben auch ein anderes Licht, aber es ist nicht im Inneren der Lichter. Es befindet sich in visuellen Effekten und es ist die Himmelsatmosphäre. Sie können auf diesen klicken und dann hier oben auf diesen klicken. Gehen Sie erneut zu Visual Effects und klicken Sie auf dieses Feature namens Sphere Reflection Capture. Es wird die Reflexionen in deinem Level einfangen . Für diesen werde ich es sogar um vielleicht 2000 runterziehen. Und lass es mich einfach in die Mitte des Levels ziehen. Natürlich präzise, es spielt keine Rolle. Ich werde diesen Einflussradius vergrößern , um mein Level einzufangen Du kannst jetzt sehen, dass er mein Level einschließt. Und es wird zu Reflexionen rund um mein Level führen. Jetzt können Sie hier oben erneut klicken und zu den visuellen Effekten wechseln, eigentlich nicht zu den visuellen Effekten in den Bänden. Und wir haben dieses Volumen, das als Light Mass Importance Volume bezeichnet wird . Klicken Sie auf das. Kartenbedeutung Die Lautstärke gibt der Engine nur an, was wichtig ist , um Licht einzuschalten. Wir müssen unser Level einkapseln und der Engine sagen, dieser Bereich für die Beleuchtung wirklich wichtig ist Lass uns das machen. Lass es uns irgendwo hier in der Mitte platzieren. Auch hier ist es nicht wirklich wichtig. Ich werde es hier für die Pinseleinstellungen anklicken oder einstellen. Sie können es im X sehen. Sie können klicken und ziehen, um es zu vergrößern. Du erhöhst dieses Feld , um dein Level einzuschließen. Auch hier musst du nicht wirklich präzise sein, sondern nur das Level einkapseln Und das werde ich auch für das Y tun. Ich werde das auch für die Z Xs tun. Ich werde hier runtergehen, nur um zu sehen, ob es kapselt. Und so viel muss es hier unten nicht sein viel muss es hier unten nicht Ich werde es leicht erhöhen. Senken Sie es sogar ein bisschen, nur um sicherzugehen , dass der Boden auch da ist. Und ich sorge auch dafür, dass die Wände hier oben auch da oben sind . Auch hier gilt, dass Sie nicht präzise sein müssen Achten Sie nur darauf, dass es das Level einschließt Jetzt haben wir die Richtung, das Licht, den guten Himmel, den Himmel, die Atmosphäre, das Oberlicht, die Sphärenreflexion und die Lichtmasse innerhalb unseres Levels Jetzt werde ich sie alle auswählen. Klicken Sie hier für diesen Ordner, nennen wir ihn Beleuchtung. Und jetzt sind wir bereit, die Beleuchtung für unser Spiel anzupassen. Normalerweise beginne ich damit, dass ich auf das gerichtete Licht klicke , also das Sonnenlicht. Und was Sie tun können, ist , auf der Tastatur auf E zu klicken , um das Rotationswerkzeug auszuwählen. Und dann kannst du versuchen , die Sonne zu drehen. So kannst du ihm ein paar schöne interessante Schatten geben. Damit versuchst du zu Beginn, gib ihm einfach ein paar interessante Schatten. Sie können es einfach drehen, um zu sehen, wo die Schatten interessant sind. Sie können das Einrasten auch entfernen, indem Sie hier nach oben klicken. Und dann kannst du es frei drehen und einfach versuchen, interessante Schatten für dein Spiel einzufügen Für mich werde ich versuchen, zu drehen, dass es so aussieht. Vielleicht drehe ich es auch so. Es wirft also tatsächlich Schatten auf diese Weise. Und ich kann auch später immer versuchen, es anzupassen. Im Moment können Sie also sehen, dass die Schatten wirklich dunkel sind. Und ich möchte es ein bisschen ändern, damit es für mich einfacher ist, interessante Schatten zu finden es nur ein bisschen heller mache. auf diesen schönen Himmel klicke ich auf diesen schönen Himmel klicke , gehe ich tatsächlich hierher und für die Tageszeit werde ich diesen ändern, sodass es keine Sterne sind. Ich werde 12 zu der Tageszeit schreiben. Und jetzt kannst du sehen, dass es Tageslicht ist. Und du kannst auf das Dachfenster klicken, runter gehen und auf Rückeroberung klicken, um den Himmel einzufangen Sie können sehen, dass sich einige Farben hier tatsächlich geändert haben und es heller wird Sie können hier auch die Lichtintensität des Oberlichts ändern , sodass sie auf fünf oder so etwas ähnliches eingestellt Im Moment echt verrückt. Aber nur um ein paar interessante Schatten zu finden , mit denen du jetzt arbeiten kannst , habe ich mich in meiner Sonne gedreht und bin mit meinen Schatten zufrieden. Auch hier gehe ich zum Dachfenster und klicke auf diesen Pfeil und setze ihn vorerst wieder auf eins zurück Jetzt, wo wir den Himmel haben, fange ich eigentlich mit dem guten Himmel Klicken Sie jetzt auf den Guten Himmel. Was ich für diese Presets tun werde, ist, dass ihr sie sehen könnt, ihr könnt sie anklicken und sie hier an den Stil der Wolken anpassen Auch das ist optional, aber ich klicke darauf und wähle diese Wolke B. Dies ist der Wolkenstil Für die Wolkenabdeckung wähle ich Mitte Und das sind die Einstellungen für den guten Himmel. Hier gibt es nicht wirklich viel zu ändern. Nur um sicherzugehen , klicke ich erneut auf das Dachfenster, gehe runter und klicke auf Rückaufnahme, nur um sicherzugehen, dass es die richtige Beleuchtung vom Himmel hat . Und ich werde auf Build klicken und alle Levels bauen Und so wird sichergestellt , dass die Beleuchtung tatsächlich richtig aussieht. Also mach weiter und tu das. Es wird einige Zeit dauern, wenn Sie es zum ersten Mal tun. Und Sie können den Fortschritt hier beim Bau der Beleuchtung sehen . Aber wie Sie sehen können, wird es mir wahrscheinlich ein paar Sekunden dauern. Wenn Sie jetzt mit dem Bau der Beleuchtung fertig sind, wird sie Ihnen den Fortschritt zeigen. Es sieht genauso aus wie zuvor. In Ordnung. Wenn ich jetzt auf das Dachfenster klicke und die Intensität des Oberlichts auf etwa drei erhöhe , kannst du sehen, wie die Schatten heller werden Und dafür wird das Dachfenster verwendet. Es macht die Schatten heller. Wenn du die Schatten in deinem Spiel sehr dunkel hast, kannst du sie jederzeit erhöhen damit deine Schatten heller werden. Und es sieht viel besser aus als zuvor. Dies ist jedoch normalerweise nicht so dunkel. Wenn ich es auf der Skala von zwei habe, sollte es nicht so dunkel sein. Und wenn du hier hineinschaust, ist da noch etwas anderes los. Das ist Lumen, das neue Beleuchtungssystem. Wenn du vorerst auf diesen Post-Prozess klickst, werde ich diese Gefahr minimieren. Wenn du einfach hier runtergehst und Lumen hier findest, kannst du die globale Erleuchtung sehen Lumen, du kannst hier darauf klicken und hier in Lumin, globale Beleuchtung, kannst du auf diese maximale Entfernung für dieses Bild klicken Entfernung für Wenn Sie Null schreiben, können Sie sehen, dass es viel heller ist als zuvor Wenn Sie auf diesen Pfeil klicken , um zur Normalität zurückzukehren, können Sie sehen, dass alles so dunkel ist. Und wenn ich wieder Null schreibe, ist es viel heller. Damit ist auch etwas los. Ich werde es für diesen Fall tatsächlich etwas reduzieren. Du kannst sehen, ob du 100 schreibst, sieht so aus. Wenn du 200, 300, 400500600700900 schreibst, fängt es an, sehr dunkel zu werden Ich werde tatsächlich 700 schreiben. Sie können jetzt versuchen, es auszubalancieren, es sieht ziemlich flach aus, also werde ich das nicht tun. 1 Lumen ist wirklich nett und es gibt schöne Effekte und das werden Sie später sehen, wenn die Beleuchtung gut aussieht, also möchte ich nicht, dass die Beleuchtung gut aussieht, es so flach aussieht Es ist wirklich schön , Lumen in Ihrer Szene zu haben , weil die Beleuchtung dann so viel besser wird Anstatt alles zu entfernen und es auf 200, 300 zu setzen, versuchen Sie, es leicht zu erhöhen, aber es liegt immer noch flach auf dem Boden Ich werde weiter um 100 erhöhen, bis ich einige Details erkennen kann. Jetzt kann ich hier tatsächlich einige Details sehen. Was ist, wenn ich 700 statt 600 schreibe? Und so sieht es aus. Wenn ich 800 schreibe, wird es hier richtig dunkel. Ich nehme bei diesem 700, wir können es später jederzeit ändern. Okay? Damit du den Unterschied sehen kannst. Wenn ich hier klicke, sieht es so aus. Wenn ich 700 schreibe, sieht es viel leichter aus als zuvor. Jetzt kannst du auf das Dachfenster klicken und es leicht vergrößern, damit es nicht so dunkel ist Für das Dachfenster sind es momentan zwei. kannst du 34 schreiben, Für den Moment kannst du 34 schreiben, vielleicht so etwas wie vier, okay, vielleicht so etwas wie vier Und du kannst schon sehen , dass es viel besser aussieht als zuvor. Vorher war es standardmäßig eins und jetzt sind es vier. Und Sie können den Unterschied hier sehen. Ich passe die Beleuchtung so lange an, bis ich zufrieden bin. Bei Ego-Shootern ist es wirklich nett, Ecken zu haben , die dunkel sind weil die Leute sich sehen wollen, sie wollen sich gegenseitig erschießen Und es ist nicht schön, eine dunkle Ecke zu haben , in der man den Feind nicht sehen kann So etwas wird wirklich nervig sein. Schreiben wir hier vier in die Intensitätsskala. Was ich auch tun werde, Sie können auf das gerichtete Licht klicken und Intensität der indirekten Beleuchtung erhöhen. Und was das bewirkt, es lässt nur einige Lichter an die Wände reflektieren und es wird viel besser aussehen Wenn Sie es erhöhen, können Sie den Unterschied sehen. Ich sehe den Unterschied hier tatsächlich. Wenn ich Null oder Eins schreibe wie zuvor und wenn ich sechs schreibe, kannst du sehen, diese Wände hier das Licht übereinander reflektieren Und die Umgebung sieht so viel besser aus als zuvor. Wenn eins richtig ist, richtig sechs, dann kannst du auch an dieser Wand den Unterschied sehen. Ordnung, was ich jetzt tun möchte, ist , die Schatten gegen die Beleuchtung abzuwägen. Also sieht es richtig aus. Bevor ich das mache. Wenn Sie jetzt auf das Oberlicht klicken und dann hier in der Beleuchtung hier im Dachfenster auf Erweitert klicken, Sie können etwas sehen, das als Farbe der unteren Hemisphäre bezeichnet wird Was das ist, es reflektiert Licht vom Boden auf diese Wände und die Umgebung Hier können Sie sehen, ob ich darauf klicke und das Licht oder die Farbe auf etwas Extremes stelle. Sie können sehen, dass das Licht tatsächlich vom Boden nach oben auf diese Wände reflektiert wird Boden nach oben auf diese Wände Jetzt ist es momentan schwarz und es macht keinen Sinn, weil wir hier nicht wirklich schwarzes Licht an die Wände Um es realistischer zu machen, müssen wir die Farbe auf etwas Richtigeres ändern Im Moment ist mein Boden grau. Was Sie hier tun können, ist, dass Sie hier oben auf den Leuchtmodus klicken können, Sie können zur Puffervisualisierung gehen und dann zur Basisfarbe wechseln. Jetzt können Sie die wahre Grundfarbe Ihres Bodens sehen. Was Sie tun können, Sie können darauf klicken, den Farbwähler verwenden und dann die Farbe des Bodens auswählen Ich werde diesen grauen hier auswählen. Und ich werde zurück in meinen Himmel gehen. Wenn ich das minimiere, geh zum Dachfenster. Jetzt können Sie sehen, dass wir die Farbe der unteren Hemisphäre geändert haben der unteren Hemisphäre Wenn ich jetzt in den beleuchteten Modus zurückkehre und nach unten gehe und daran denke, auf „Erneut aufnehmen“ zu klicken Weil du die Beleuchtung wieder einfangen musst. Jetzt gibt es hier an diesen Wänden das richtige Licht . In Ordnung, lassen Sie mich einfach heranzoomen. Und ich möchte jetzt das Gleichgewicht zwischen Schatten und Licht ausbalancieren. Wenn Sie nun auf das gerichtete Licht klicken und hier die Intensität ändern, wird dadurch die Lichtmenge erhöht und verringert. Wenn du zum Oberlicht gehst und hier die Menge oder Intensität erhöhst oder verringerst, wird es die Dunkelheit dieser Schatten erhöhen und verringern Ich fange an, indem ich auf das gerichtete Licht klicke und dann die Intensität erhöhe und vielleicht auf etwa sieben Wenn ich jetzt wieder zum Dachfenster gehe, kannst du mit einem beginnen und dann 23 schreiben Sie können versuchen, es leicht zu erhöhen, nur um zu sehen es aussieht, bis Sie zufrieden sind, oder? Ich habe mit der Intensität für das Oberlicht und das gerichtete Licht herumgespielt der Intensität für das Oberlicht und das gerichtete Licht Für das gerichtete Licht habe ich es auf sechs gesetzt, eigentlich werde ich es auf sieben setzen, damit es nicht wie bei Nacht aussieht. Wenn ich das für das Dachfenster auf sieben setze, stelle ich es einfach wieder auf fünf. Ich habe es hier nur leicht erhöht , bis ich zufrieden bin , wenn ich es auf sechs erhöhe Ich denke, es war ein bisschen zu hell, also habe ich fünf reduziert. Und wir können es später jederzeit ändern. Es ist kein Problem, aber im Moment finde ich, dass es gut aussieht. Wir können sehen, wie die Schatten im Vergleich zur Beleuchtung aussehen. Und ich vergleiche es auch einfach mit dem Himmel. Schau und sieh, ob alles realistisch aussieht. Schauen Sie in diesen Tunnel , um zu sehen, ob alles gut aussieht. Ich möchte nicht, dass es sehr dunkel aussieht, wie Sie hier sehen können. Wenn Sie auf das Post-Process-Volume klicken und wieder runter zum Lumen und zur maximalen Spurweite gehen , wenn Sie es wieder auf 2000 setzen, können Sie sehen, wie stark sich das auf die Beleuchtung auswirkt Es macht wirklich alles dunkel und du musst den Wert wieder verringern Du kannst 100 schreiben, um zu sehen, wie es aussieht, aber im Moment ist es wirklich flach auf dem Boden. Wenn ich 200, 300, 400 schreibe , kannst du sehen, dass es auf dem Boden immer noch ziemlich flach aussieht. Und wenn wir diese Zahl weiter erhöhen, wird es irgendwann ein bisschen zu dunkel aussehen. Also werde ich sie wieder auf 700 zurücksetzen. Und ich mag diese Zahl wirklich, also bleibe ich hier. Aber so mache ich die Beleuchtung normalerweise. Ich versuche zuerst, zum Richtlicht zu gelangen. Versuche schöne Schatten zu finden, indem du das Sonnenlicht rotierst. Und dann gehe ich wieder hierher ins Dachfenster, genau wie zuvor Klicken Sie auf die Schaltfläche „Erweitert“ für das Licht. Geh runter zur unteren Hemisphäre und ändere die Farbe zum Boden, so kostet das richtige Licht und auch für den guten Himmel Wir haben hier ein paar Einstellungen geändert. Jetzt können Sie sehen, wenn ich auf diesen Teil schaue und mich wegbewege. Sie können sehen, dass er plötzlich verschwindet, die rote Reflexion hier. Wenn ich näher komme, können Sie sehen, dass es erscheint, wenn ich mich entferne Sie können sehen, dass sich die Beleuchtung hier ein wenig verändert hat. Was Sie hier tun können, ist, dass Sie tatsächlich mit der Lumendistanz spielen können mit der Lumendistanz spielen Sie können zum Post-Process-Volume zurückkehren und Sie können hier nach unten gehen Und wir haben etwas namens Lumen Scene Detail. Wenn Sie auf das Lumen-Szenendetail klicken, wenn Sie auf den Beleuchtungsmodus klicken und dann zur Lumen- und Lumen-Szene wechseln In der Lumen-Szene können Sie also tatsächlich sehen wo Lumen Lumen Auch hier sorgt das neue Beleuchtungssystem in Ural Engine dafür, dass alles wirklich gut aussieht Nehmen wir das als Beispiel. Wenn das schwarz wird, kannst du sehen, ob ich mich davon entferne. Das bedeutet, dass Lumen an diesem Mesh momentan nicht funktioniert Wenn ich näher komme, wird es funktionieren. Das soll passieren, weil wir nicht wollen, dass Lumen ständig funktioniert weil man es irgendwann nicht mehr wirklich braucht, weil man zu weit weg ist. Und wir müssen das Spiel nicht wirklich leistungsstark machen Was wir hier tun können , damit es ein bisschen besser funktioniert. Sie können sehen, ob ich hier stehe, ich wollte eigentlich auch an einigen dieser Modelle arbeiten . Ich möchte nicht, dass es für das Slumencene-Detail so extrem für das Slumencene-Detail Sie können es leicht erhöhen. Wenn Sie es stark erhöhen, funktioniert es bei allem auch wenn Sie weit weg sind. Wenn Sie es erhöhen, werden einige Details weggenommen. Dieser Wert ist standardmäßig, Sie hier sehen können, wenn Sie ihn erhöhen, werden die GPU-Kosten steigen . Ich möchte das nicht zu stark erhöhen, aber Sie können es leicht erhöhen. Ich werde klicken und ziehen, um es leicht zu erhöhen, bis ungefähr 1.2 erscheint. Das ist eine nette Änderung. Sie können sehen, dass es so aussieht, wenn ich es auf eins setze, wenn ich es auf 1.2 setze. Außerdem bekommt der Webstuhl viel schneller Details als zuvor. Sie können sehen, wann wir es auf eins hatten, zu diesem Zeitpunkt war es ausgeschaltet Wenn ich es auf 1.2 setze, ist es an. Wenn ich in den beleuchteten Modus zurückkehre, ist es jetzt viel besser. Ordnung, bevor wir fertig sind, klicken wir zuerst auf Build und Build all levels. Und stellen Sie einfach sicher , dass mit der Beleuchtung und den Schatten alles richtig aussieht. Der Bau wird wieder einige Zeit in Anspruch nehmen und ich komme wieder, wenn die Beleuchtung eingebaut ist. Ordnung. Also, jetzt ist die Beleuchtung fertig gebaut und alles sieht gut aus. Jetzt sieht die Beleuchtung für manche Menschen manchmal anders aus. Und das liegt daran, dass es daran liegen kann, dass Sie zu den Einstellungen und zur Skalierbarkeit der Engine gehen müssen. Und im Moment kannst du sehen, dass ich mir alles in Epic-Grafiken ansehe. Und das liegt daran, dass ich einen schnellen Computer habe. Aber wenn Sie einen langsamen Computer haben, möchten Sie vielleicht zum Beispiel Medium oder niedrige Gleichheit verwenden . Aber bei niedriger Stufe können Sie die Schatten nicht sehen, aber Sie können sie auch verwenden. Wenn Sie jedoch einen langsameren Computer haben , habe ich einen schnellen. Ich werde mich für den Epic entscheiden. Du kannst es später jederzeit ändern , wenn du das Spiel exportierst. Aber Epic ist normalerweise sehr schwer, also solltest du vielleicht High für deinen Computer wählen, wenn er etwas langsamer ist. Aber wie Sie sehen, wirkt sich diese Skalierbarkeit der Engine auch auf die Beleuchtung aus, sodass Sie das auch überprüfen können. Okay, jetzt zum letzten Schritt, ich werde auf dieses Post-Process-Volume klicken. Jetzt können wir die Farben tatsächlich ein bisschen ändern. Wir können also auf diese Temperatur klicken und Sie können sie hier ankreuzen. Diese Temperatur ist geringer und auch dieser Farbton. Also werde ich die Temperatur etwas reduzieren, damit sie etwas bläulicher wird Etwas wie vielleicht 6.200, sehr geringer Unterschied. Sie können sehen, ob ich es ankreuze und deaktiviere. So sieht es aus Nur ein kleiner Unterschied. Es lässt alles etwas kälter aussehen, blauer als die Tönung. Wenn Sie sie erhöhen, können Sie sehen, dass sie ein bisschen oranger aussieht , etwas wärmer Nun, ich möchte nicht, dass es so extrem ist. Wenn du also 0,1 erhöhst, kannst du sehen, wie es aussieht und du kannst es ankreuzen und deaktivieren. Die Änderung Ich denke jedoch, dass dies bisher etwas zu viel sein könnte. Ich 0,05 statt NFI-Ticket und Ticket. So sieht es aus. Okay? Also nur eine sehr geringfügige Änderung der Farben. Also gut, das Letzte, was ich hier tun möchte, können Sie in den globalen Einstellungen sehen, Sie können auch Dinge ändern. Zum Beispiel die Sättigung. Wenn dein Spiel zu entsättigt ist, kannst du die Sättigung erhöhen und alles wird viel gesättigter Jetzt musst du die Einstellung nicht viel zu stark erhöhen . Du kannst sie zum Beispiel auf 1,1 setzen und dein Spiel hat eine leichte Sättigung. Sie können sehen, dass es dem Spiel etwas mehr Farbe verleiht. Allerdings bleibe ich vorerst einfach bei einem. Du kannst den Gain auch erhöhen, wenn dein Spiel zu dunkel ist, sodass du den Gain erhöhen kannst. Das gesamte Spiel wird viel heller sein als zuvor. Was mich betrifft, werde ich auch in diesem Fall bei einem bleiben. Ich muss hier nichts ändern. Was ich ändern möchte, ist Oberflächen meiner Meinung nach etwas zu hell sind , und das ist eigentlich der Clou. Wenn du hier oben zu den Highlights gehst und zum Beispiel auf den Gain klickst . Und du kannst hier sehen, wenn du die Verstärkung erhöhst und verringerst, erhöhst und verringerst du die Farben hier oben. Wenn Sie es einfach auf Null setzen, können Sie tatsächlich sehen, welche Auswirkungen es hat. Das ist der Höhepunkt. Es wirkt sich auf das Highlight bei diesen Modellen aus. 5.21 Ich finde, das ist ein bisschen zu hell und nervig, um es sich anzusehen Was Sie tun können, ist es leicht zu verringern, damit es nicht so hell Und nervig, sich vielleicht so etwas wie 0,60 0,56 anzusehen . Und du kannst sehen, ob du eins schreibst, so sah es aus Und wenn ich 0,6 schreibe, sieht es so aus. Jetzt denke ich, dass das ein bisschen besser aussieht als zuvor, weil es vorher auf dem Eis etwas zu hell war, und das Schreiben von 0,6 hilft , dieses Problem zu lösen. Das haben wir derzeit in einem Level. Nun, für diesen können wir etwas Blüte hinzufügen. Und ich werde hier tatsächlich ein bisschen Blüte für mein Level hinzufügen . Das ist jetzt Präferenz. Du kannst deinem Level auch keinen Aufschwung verleihen. Manche Leute mögen es nicht, an Küsten aus der ersten Person zu blühen . Aber für mich werde ich es nur leicht erhöhen, damit Sie es einfach erhöhen und sehen können, wie es aussieht. Wenn du einen schreibst, sieht er so aus. Es verleiht ihm diesen verträumten Effekt. Wenn du 01 schreibst, denke ich, dass einer zu extrem ist Wenn ich es auf 0,6 setze und du versuchst , 00,6 zu schreiben, um den Unterschied zu sehen Ich denke, so etwas wie 0,6 ist der richtige Weg. Nicht mehr als das, sonst wird es ein bisschen nerviger. Jetzt können wir sehen, wie es hier aussieht. Die Beleuchtung sieht wirklich gut aus. Sie können hier sehen, wie viel es zusätzlich zu den Wellen kostet, und Sie können es auch außerhalb von hier sehen Versuche, hier reinzuschauen und sicherzugehen, dass nichts dunkel ist Du kannst den Feind sehen , wenn ich hier reingehe. Wenn du denkst, dass dieser Tunnel etwas zu dunkel ist, kannst du jederzeit hier reingehen und hier oben klicken. Gehe zu Lichtern, klicke auf Punktlicht und erstelle hier ein Punktlicht. Und du kannst es immer irgendwo hier in diesem Tunnel platzieren . Für dieses Punktlicht können Sie die Intensität erhöhen und verringern und sehen, wie es aussieht. Jetzt ist es hier in diesem speziellen Bereich etwas zu hell. Und ich möchte es glätten, denn wie Sie hier sehen können, haben wir nicht wirklich eine Glühbirne. Es wird also ein bisschen komisch aussehen , dass diese Beleuchtung hier so hell ist. Also, was Sie tun können, ist, dass ich die Intensität verringern werde. Ich werde auf Erweitert klicken und hier Inverse Squared Fall aus verwenden Ich werde es hier tatsächlich deaktivieren. Jetzt können Sie sehen, wann Sie die Beleuchtung erhöhen und verringern Sie können die Intensität jetzt auf viel mehr als zuvor erhöhen . Sie können diese Abnahmeintensität auch verringern. Und Sie können sehen, dass es die Umgebung etwas stärker beleuchtet , anstatt sich nur auf diesen bestimmten Bereich zu konzentrieren Wenn ich jetzt weitermache und erneut auf das Punktlicht klicke. Und ich lasse es einfach hier um zwei stehen , damit das Licht vom Exponenten abfällt Dann werde ich die Intensität auf etwas reduzieren , wie Sie sehen können, es ist jetzt sehr, sehr hell, weil wir den Lichtabfall-Exponenten deaktiviert haben, wir haben den Lichtabfall-Exponenten heruntergesetzt und wir haben auch diesen für die Intensität deaktiviert Wenn Sie zum Beispiel nur einen schreiben, können Sie den Unterschied sehen, wenn Sie ihn ein- und ausschalten Nur ein kleiner Effekt , um sicherzustellen, dass wir keine dunklen Flecken in unserem Level haben Jetzt kannst du mit dem Akzentuierungsradius herumspielen. Wenn Sie auf klicken, können Sie sehen, wo sich das auswirkt. Wenn Sie also den Akzentuierungsradius vergrößern und verkleinern , sieht das so Ich werde es einfach auf etwa 2000 setzen, vielleicht, ungefähr so Wenn du darauf klickst, kannst du es einfach so verschieben. Versuche es an einem wirklich schönen Ort zu platzieren, wo du nicht wirklich siehst, dass hier drinnen eine Glühbirne leuchtet. Und versuche auch, mit der Intensität zu spielen. Ich denke, das ist viel zu hell, also wenn ich es auf 0,5 setze, damit es nicht zu auffällig ist. Und du kannst auf dieses Auge klicken, um es ein- und auszublenden. Und du kannst sehen, wie es aussieht, nur ein kleiner Effekt. Aber du kannst hier sehen, wenn der Feind hier steht und dich ansieht, kannst du sehen, dass es etwas mehr Licht gibt. Und es ist immer einfacher , den Feind zu sehen. Und das ist schöner anzusehen. Versuchen Sie jetzt einfach, das Licht zu bewegen , da Sie es platziert Und versuchen Sie, es in einem Bereich zu platzieren , in dem es für Sie Sinn macht. Ich finde das Sommerlicht hier schön. Ich werde hier dasselbe tun. Ich werde die Alt-Taste gedrückt halten und klicken und ziehen, um es zu kopieren. Ich werde es auch hier in diesem Tunnel platzieren. Versuche es hier irgendwo in der Mitte zu platzieren. Und dann werde ich es in diese Richtung bewegen. Ich werde einfach einen Blick darauf werfen und sehen wie sich das irgendwo wie hier auswirkt. Es ist dasselbe wie das, was du hier für diese Beleuchtung getan hast . Diese Beleuchtung ist auch in der Mitte. Ich stelle nur sicher , dass es in der Mitte und dass es hier platziert ist. Bei der anderen werde ich es leicht drücken, damit es auch wie das andere Licht aussieht. Jetzt, wo wir das benutzerdefinierte Licht platziert haben damit es hier drinnen etwas heller aussieht, denke ich, wir sind mit der Beleuchtung fertig und so sieht das Level jetzt aus. 11. 2.07 Tipps zur Umweltoptimierung: Bevor wir diese Umgebung als fertig bezeichnen können, müssen wir uns auch die Optimierung ansehen und sicherstellen, dass sie als Spiel einwandfrei läuft , wenn wir sie veröffentlichen Um einen Blick auf die Optimierung zu werfen, klicken wir hier oben auf den Deckelmodus. Gehen wir zu den Optimierungsansichtsmodi und beginnen wir mit diesem Modus namens Light Complexity. Bei der Lichtkomplexität schauen wir uns im Grunde, wie der Name schon sagt , wie der Name schon sagt , an, wie komplex die Beleuchtung ist. Wie Sie hier sehen können, haben wir hier einen Farbverlauf, der von Dunkel und Blau bis hin zu Rot, Violett und Weiß reicht . Nun, wenn Sie hier unten im Blauen sind, ist das eine sehr gute Leistung. Wenn du hier draußen in lila und weiß bist, ist das eine starke Leistung und das ist schlecht für dein Spiel. Aber wie du siehst, ist unser Level komplett blau. Und du kannst sehen , dass es hier ist. Und es ist wirklich gut lichttechnisch optimiert. Das liegt daran, dass wir eigentlich nicht so viele Lichter verwenden. Wir haben nur das gerichtete Licht und dann haben wir das Himmelslicht. Sie beleuchten es hauptsächlich , wie Sie sehen können. Wenn ich zurückgehe, wenn ich das Richtungslicht ausschalte und wenn ich das Dachfenster ausschalte, können Sie sehen, dass alles dunkel wird Im Grunde sind es diese beiden, die die Umgebung beleuchten Wenn ich jetzt zum Bereich Lichtkomplexität zurückkehre , ist es grün. Das liegt daran, dass wir die Glühbirnen hinzugefügt haben. Denken Sie daran, dass wir hier oben in den Lichtern geklickt und ein Punktlicht hinzugefügt haben. Deshalb ist es grün Dieser Bereich ist leistungsstärker als dieser Bereich. Dies ist jedoch immer noch eine geringe Leistung. Das ist wirklich nett. Das ist gut für dein Spiel. Du bist immer noch in der guten Gegend. Wenn ich eine der Glühbirnen nehme und diese hier, wenn ich dieses Symbol nehme, dieses Punktlicht, wenn ich die Alt-Taste gedrückt halte und ziehe, um es zu kopieren, können Sie sehen, ob ich es kopiere und es außerhalb dieser anderen Punktlichter platziere , dann kann es losgehen. Wenn ich jedoch anfange, Lichter zu überlappen, wie Sie hier sehen können, wird es jetzt rot. Und im orangefarbenen Bereich. Nehmen wir an, das war dein Level, das ist okay. Es wird dein Spiel nicht beeinflussen. Das ist immer noch sehr gut. Wenn dein ganzes Spiel jedoch rot ist, wie das hier, kann es sein, dass du es in deinem Spiel erlebst. Wenn jedoch nur ein minimaler Bereich in deinem Level rot ist, ist das okay. Das ist in Ordnung. Wenn ich es jetzt noch einmal kopiere und einfüge, kannst du sehen, dass es hier lila und weiß wird. Und wenn du das in deinem Spiel hast, ist das wirklich schlimm. Wenn du dein Spiel optimierst, versuche, die Menge an Licht zu reduzieren, die du verwendest. So kannst du sie getrennt voneinander verwenden. Auf diese Weise können Sie einige von ihnen überlappen. Das ist okay. Versuchen Sie jedoch nicht, viele Lichter gleichzeitig zu überlappen. Dadurch wird dein Spiel verzögert. Ich werde alle anderen Punktlichter löschen , die ich hier erstellt habe. Dieser und dieser auch. Im Moment ist unser Level wirklich gut optimiert. Gehen wir also zur Dichte der Lichtkarte über. Im Moment läuft es in einem echten Motor kaputt. Vielleicht werden sie es reparieren Diese flackernden schwarzen Boxen sollten nicht hier sein. Vielleicht werden sie es in Zukunft reparieren. Aber vorerst ignoriere einfach diese schwarzen flackernden Linien in der Dichte der Lichtkarte Was es dir hier gerade zeigt, ist wieder blau. Blau ist Auflösung. Und es ist gut für deine Spielleistung. Wenn etwas so rot ist , ist das schlecht für deine Leistung. Wir wechseln von blau nach rot. Es gibt einen Gradienten. Es geht also von blau über leicht grün zu grün und dann zu orange und dann zu rot. Wie hoch ist derzeit die Dichte der Lichtkarte? Was ist die Dichte der Lichtkarte? Sie können die Auflösung der Lightmap für jedes Modell erhöhen. Dadurch wird die Detailgenauigkeit Ihres Schattens auf dem Boden erhöht . Wenn dein Schatten am Boden eine wirklich niedrige Auflösung hat, liegt das daran, dass die Auflösung der Bodenlichtkarte niedrig ist. Das kann ein Grund dafür sein. Wir wollen zur Dichte der Lichtkarten übergehen und sie erhöhen. Blau hat eine wirklich niedrige Auflösung für eine Lichtkarte. Wir müssen zum Beispiel die Auflösung erhöhen, damit die Schatten gut aussehen, wenn sie auf die Maschen treffen die Schatten gut aussehen, wenn sie auf die Maschen treffen. Das ist wirklich gut Wir wollen diese grüne Farbe anstreben. Ich möchte auf diesen Boden klicken. Sie finden diesen Boden hier im Inhaltsbrowser. Wenn Sie ihn jedoch nicht finden können, können Sie auf den Boden klicken. Und du kannst auf dieses Symbol hier klicken und es bringt dich zu dem Bodennetz. Doppelklicken wir jetzt und öffnen es hier im Detailbereich. Lass uns nach einer Lichtkarte suchen. Jetzt können Sie die Lightmap-Auflösung und die minimale Lightmap-Auflösung sehen . Jetzt muss ich auf etwas anderes klicken. Ich sehe diese rosafarbene Farbe nicht, klicke einfach auf etwas anderes. Ich sehe hier die blaue Farbe für den Boden. Wenn Sie jetzt einfach die Auflösung der Lightmap auf etwas erhöhen , wie wir sie normalerweise mit zwei multiplizieren, können Sie 128 sagen. Jetzt können Sie sehen, dass es weniger blau ist. Jetzt, wenn ich es noch einmal mache, multipliziere ich es mit zwei Anstatt einfach die Zahl zu schreiben, was du machen kannst, wirklich nette und unwirkliche Engine, kannst du sagen, mit zwei multiplizieren und dann Enter drücken Und das wird es automatisch machen. Jetzt können Sie sehen, dass es eine höhere Auflösung als zuvor hat. Vorher warst du 64 Jahre alt. Niedrige Auflösung. Wenn wir es jetzt mit zwei multiplizieren, multipliziert mit zwei, möchte ich es immer noch mit zwei multiplizieren, weil dies immer noch eine niedrige Auflösung multipliziert mit zwei ist Das ist jetzt viel besser. Ich würde manchmal hier aufhören , weil das eigentlich auch nett ist. Aber ich möchte es einfach mit zwei multiplizieren , nur um zu sehen, wie es auch aussieht. Das ist die Farbe, für die ich mich normalerweise in meinen Spielen entscheide. Das ist immer noch im Bereich mit niedriger Auflösung, aber dadurch werden deine Schatten schön aussehen , während du dein Spiel trotzdem optimierst. Ich mag es nicht, meine Modelle so sehr grün zu machen. Ich bleibe gerne im bläulich-grünen Bereich. Mit den Schatten sieht es immer noch gut aus. Auflösung 1024, Auflösung der Lichtkarte für den Boden. Und denken Sie daran, diese Nummer zu kopieren und einzufügen. Auch die minimale Auflösung der Lichtkarte. Und dann können Sie weitermachen und es schließen. Und es fragt dich, ob du es anwenden willst. Okay? Dann klicken Sie auf Ja. Das müssen Sie für alle anderen Modelle tun. Nehmen wir zum Beispiel ein anderes Beispiel. Lass uns hier auf dieses klicken. Dieser Ring hier. Es ist dieser Ring hier drüben. Doppelklicken Sie darauf, öffnen Sie es. Light Map Resolution, hier ist es. Klicken wir jetzt auf etwas anderes, damit wir die Farbe tatsächlich sehen können. Schreiben wir mal zwei. Es hat immer noch eine niedrige Auflösung. Multiplizieren wir es noch einmal mit zwei. Multiplizieren wir es noch einmal mit zwei. Das ist wirklich gut. Ich denke, es wird zu hoch sein, wenn ich es mit zwei multipliziere. Sie können jetzt sehen, dass es grün und orange ist. Dieser. In Bezug auf die Leistung ist es immer noch gut. Ich denke jedoch immer noch, dass dies eine zu hohe Leistung ist. Denken Sie daran, je mehr Sie die Light-Map-Auflösung erhöhen, desto stärker wirkt sie sich auf die Bilder pro Sekunde aus. Und Leistung, ich würde sagen, dividiere sie durch zwei und bleibe als Maximum einfach hier drüben. Ich werde diese Nummer auch hierher kopieren. Und ich werde das schließen und es jetzt anwenden. Mach einfach weiter und tu es für alle Modelle, die du im Spiel verwendest. Ich überspringe den Vorgang und versuche es einfach für alle Modelle, die ich hier habe. Ich habe sie alle angepasst, und wie Sie sehen können, sieht es so aus. Jetzt können Sie sehen, dass einige von ihnen immer noch eine sehr niedrige Auflösung haben. Zum Beispiel diese Wand hier. Diese Wand ist jedoch auch diese Kiste, die sehr grün aussieht. Du kannst sehen, wenn ich die Supercrid-Box öffne und nach der Lightmap-Auflösung suche, kann ich sie erhöhen Multiplizieren Sie es zum Beispiel noch einmal mit zwei und multiplizieren Sie es erneut mit zwei, und diese Wand wird eine hohe Auflösung Sie können jedoch sehen, dass diese Felder jetzt alle rot und rot sind. Und das ist wirklich nicht gut. Das liegt daran, dass die Auflösung eines Elements umso geringer ist, je größer Sie es skalieren . Gehen wir zum Beispiel tatsächlich zu 128 zurück. Wenn ich es hier im Level platziere, kannst du sehen, dass es jetzt grün aussieht. Wenn ich jedoch das Skalierungswerkzeug nehme und es hochskaliere, sieht es mit einer niedrigeren Auflösung aus. Wenn ich es weiter hochskaliere, können Sie sehen, dass es jetzt eine niedrigere Auflösung hat als zuvor. Je mehr Sie das Objekt vergrößern, desto niedriger wird die Auflösung sein. Bisher sieht jedoch alles gut aus. Und wenn ich einfach in den beleuchteten Modus zurückkehre und du kannst das Level speichern und dann auf Build and Build all levels klicken. Und das nur, um sicherzugehen, dass die gesamte Beleuchtung aufgebaut ist, alle Schatten gebacken sind und alles richtig aussieht. Es wird hier einige Zeit dauern. Es wird etwas länger dauern als zuvor weil Sie die Dichte der Lichtkarte erhöht haben. Sie können jedoch sehen, dass das Level immer noch sehr optimiert ist. Das hat also eigentlich keine Zeit gedauert und ist auch schon fertig. Die Beleuchtung ist jetzt hier am Boden in hoher Auflösung als zuvor. Es sieht hochwertiger aus als zuvor. Das liegt daran, dass wir die Dichte der Lichtkarte erhöht haben. Gehen wir nun zurück zu den Optimierungsansichtsmodi. Dann haben wir die stationäre Lichtüberlappung. Wie Sie sehen können, verwenden wir nicht viel. Hier sind wir im grünen Bereich. Sie können sehen, dass es sehr optimiert ist. Wenn wir noch einmal zur Shader-Komplexität übergehen, sieht es wirklich gut Nichts, worüber ich mir Sorgen machen müsste, wenn ich rüber gehe , ich gehe einfach zum Quad-Overdraw über Anstatt sie zusammenzusetzen, gehe ich zum Quad-Overdraw Und das sind die drei D-Modelle, die Sie verwenden. Es wird sich ansehen wie viele Dreiecke Sie pro Modell verwenden, und wir haben nicht viele Sie können sehen, dass es wirklich, wirklich optimiert ist. Ihr gesamtes Level ist derzeit optimiert. Und wenn du jetzt in den Lit-Modus wechselst, sind wir jetzt mit dem Level fertig , alles ist optimiert. Und wenn ich zu den Bildern pro Sekunde gehe, wenn ich hier oben klicke, werden die Bilder pro Sekunde angezeigt. Und du solltest wissen, dass 120 FPS hier in Unreal das Maximum sind Im Viewport hier musst du dein Spiel als EXC-Datei exportieren Wenn du es zum Beispiel auf Steam veröffentlichen willst und es höhere FPS haben wird, aber in der Engine selbst ist es auf maximal 120 begrenzt, oder? Es ist also wirklich alles gut optimiert. Das gesamte Level läuft mit maximaler FPS. Und wir haben auch das Level optimiert. Jetzt sind wir bereit weiterzumachen. 12. 3.01 Importieren der Figuren: In Ordnung, jetzt ist es an der Zeit , die Charaktere zu importieren. Jetzt, während des Kurses, werden wir mehr Dinge importieren. Zum Beispiel die Waffen und die Animationen. Aber lassen Sie uns einen Schritt nach dem anderen machen. Fangen wir mit den Charakteren an. Lass uns den Epic Games Launcher öffnen. Ich möchte, dass du hier auf den Marketplace-Tab klickst. Im Marketplace findest du jetzt Ressourcen, die du für das Spiel verwenden kannst. Du kannst sehen, dass sie wirklich nette Sachen kreieren , die du verwenden kannst. Natürlich ist ein Großteil davon für Geld. Was wir jedoch tun werden , ist, auf Durchsuchen zu klicken und zu Charakteren zu gehen. Dann klicken wir hier auf „Kostenlos der maximale Preis kostenlos ist. Jetzt hier drinnen werde ich diesen benutzen, der Military Doc und Military Silva heißt Sie können jedoch auch andere Charaktere verwenden. Sie können dieses verwenden, wenn Sie möchten, Sie können dieses verwenden, wenn Sie möchten. Es ist nicht wirklich wichtig. Du kannst diesen benutzen. Es liegt an dir. Ich werde jedoch diese beiden verwenden, also werde ich auf den ersten klicken. Dann fahren Sie fort und klicken Sie auf Herunterladen. Wenn Sie es noch nicht heruntergeladen haben, wird dort „Hier herunterladen“ angezeigt. Fahren Sie fort und klicken Sie auf Herunterladen. Dann können Sie auf Zum Projekt hinzufügen klicken. Jetzt können Sie hier sehen, dass dies leer ist, und das liegt daran, dass es nur mit Unreal Engine 4.8 bis 4.27 kompatibel ist. Dies ist eine sehr alte Version Es ist nicht einmal Unreal Engine Five. Wir können es jedoch immer noch für unser Spiel verwenden. Fahren Sie fort und klicken Sie auf Zum Projekt hinzufügen und dann auf Alle Projekte anzeigen. Und dann können Sie unser Projekt auswählen. Und jetzt heißt es, dass es nicht mit Unreal Engine 5.2 kompatibel ist . Sie müssen also eine andere Version auswählen Klicken Sie hier und wählen Sie die neueste Version von Unreal Engine Gehen Sie jetzt weiter und wählen Sie es aus. Und fahren Sie fort und klicken Sie auf Zum Projekt hinzufügen. Jetzt wird es zum Eintrag im Projekt Wenn du hier siehst, wenn ich hier zu meinem Spiel zurückkehre, wenn ich darauf klicke, kannst du jetzt sehen, dass es jetzt im Projekt ist und ich diesen Typen in meinem Spiel verwenden kann. Es ist okay, wenn es nicht kompatibel ist, wir können es tatsächlich immer noch für das Spiel verwenden. Gehen wir zurück und gehen wir zu dem anderen, diesem silbernen. Fahren Sie erneut fort und klicken Sie auf Herunterladen. Und wenn Sie es heruntergeladen haben, klicken Sie auf Zum Projekt hinzufügen, Alle Projekte anzeigen. Wählen Sie unser Projekt aus und wählen Sie die neueste Version aus, mit der es kompatibel ist. Fahren Sie fort und klicken Sie auf Zum Projekt hinzufügen. Dadurch wird auch dieses Projekt zum Projekt hinzugefügt. Jetzt haben wir beide Charaktere. Wir haben dieses eine Militärdokument. Wir haben dieses eine Militärsilber , das wir für das Spiel verwenden können. Ordnung, so importiert man also Dinge vom Markt. Laden Sie sie einfach herunter und fügen Sie sie Ihrem Projekt hinzu. Und wenn sie nicht kompatibel sind, denken Sie daran, alle Projekte anzuzeigen, das Projekt auszuwählen und auch die Version auszuwählen , mit der es kompatibel ist. Nachdem wir die Charaktere importiert haben, fahren wir mit der nächsten Lektion fort. 13. 3.02 Eltern- und Kinder-Blueprint-Kurse: Jetzt sind wir bereit, mit Blueprints zu arbeiten. Lassen Sie uns hier einen Ordner erstellen, klicken Sie mit der rechten Maustaste. Gehe zu einem neuen Ordner und nenne diesen innerhalb dieses Blueprint-Ordners Blueprints Klicken wir mit der rechten Maustaste und wählen Sie Blueprint-Klasse aus. Jetzt werden wir einen Charakter erstellen. Also werde ich diese Aca-Klasse auswählen. Falls Sie jedoch mit den Blueprint-Kursen nicht vertraut sind, ist der erste Kurs ein Schauspieler Und der Schauspieler ist einfach nur ein Schauspieler, der in der Welt platziert werden kann Zum Beispiel ein Tisch, ein Stuhl, eine Flasche, nur ein statischer Akteur, der einfach da ist. Die Spielfigur ist etwas, das du kontrollieren kannst. Wenn du zum Beispiel einen Ball herumrollst, ist das dein Spieler Du kannst also den Ball in deinem Level kontrollieren, weil ein Bauer besessen werden kann Besessen bedeutet , dass der Spieler diese Blueprint-Klasse mit Tastatur und Maus steuern kann diese Blueprint-Klasse mit Tastatur und Maus steuern Jetzt werden wir einen Charakter erstellen, weil er die Fähigkeit hat, herumzulaufen Du kannst dir vorstellen, wie ein Mensch mit zwei Armen und zwei Beinen herumläuft. Dann musst du den Charakter auswählen. Wenn dein Charakter einfach ein herumrollender Ball ist, dann reicht es, einfach mit einer Pfote zu gehen Wir haben jedoch Charaktere, also mach weiter und klicke auf Charakter Und ich werde das BP Player Base nennen . Warum habe ich es nicht einfach BP Player genannt? Warum habe ich es BP Player Base genannt? Darum geht es in dieser Lektion. Es geht um Blueprint-Kurse für Eltern und Kinder. Jetzt werde ich es zuerst hier erstellen. Bevor ich es erkläre, klicken wir mit der rechten Maustaste auf diese BP-Spielerbasis und erstellen eine Kinder-Blueprint-Klasse Nennen wir diesen einen BP-Terroristen. Klicken wir erneut mit der rechten Maustaste darauf und nennen es BP unter Terrorist. Okay. Das sind Blueprint-Kurse für Eltern und Kinder Genau jetzt. Wir haben, wir haben eine Blueprint-Klasse erstellt Daraus haben wir eine untergeordnete Blueprint-Klasse geschrieben, geklickt und daraus eine untergeordnete Blueprint-Klasse gemacht Das heißt, wenn ich die Einstellungen innerhalb dieser übergeordneten Blueprint-Klasse ändere , werden diese Änderungen auf die Blueprint-Klasse zur Terrorismusbekämpfung und die Blueprint-Klasse für Terroristen übertragen Terrorismusbekämpfung und die Blueprint-Klasse und die Nehmen wir an, ich bin hier in die Spielerbasis gegangen. Ich ging zur Komponente Charakterbewegung und änderte dann die maximale Gehgeschwindigkeit. Nehmen wir an, ich wollte, dass mein Charakter langsamer läuft. Also bin ich hierher gegangen und habe 250 geschrieben. Ich habe die Geschwindigkeit reduziert. Ich habe auf Compile geklickt, um meine Einstellungen hier zu speichern, und dann ging ich zu, Sie können jetzt sehen, dass sie diesen Stern haben Und der Stern bedeutet, dass sie gespeichert werden müssen. Wenn du auf Counterterrorist klickst, kannst du sehen, ob ich auf die Komponente Charakterbewegung klicke die Komponente Charakterbewegung ist jetzt auch auf 250 Es hat es automatisch gemacht. Und wenn ich auch zur Komponente Terrorist gehe , Charakterbewegung, ist die maximale Anzahl an Wx-Figuren ebenfalls 250 Du kannst sehen, wenn du Dinge in der übergeordneten Blueprint-Klasse änderst , werden auch alle untergeordneten Klassen diese Einstellung ändern Das wird Ihnen eine Menge Zeit sparen. Sagen wir zum Beispiel Fortnight. Wenn du Fortnight spielst, nehmen wir du bist ein Entwickler von Sie haben diese Spielerbasis und dann haben Sie alle Skins In Fortnight hast du alle Skins. Alle Spieler-Skins , die du kontrollierst. Wenn du eine Einstellung in der Spielerbasis änderst, wird dadurch die Einstellung für alle Skins geändert. Sagen wir noch einmal, zum Beispiel die Geschwindigkeit, mit der sie laufen. Anstatt die Schrittgeschwindigkeit für jeden einzelnen Charakter innerhalb von vierzehn Tagen zu ändern , ist es sehr einfach, einfach in die übergeordnete Blueprint-Klasse zu gehen und die Geschwindigkeit zu ändern, und das wird für alle Kinder des Blauplans wirksam alle Kinder des Blauplans wirksam Okay, deshalb erstellen wir übergeordnete Blueprint-Klassen und untergeordnete Blueprint-Klassen, zum Beispiel die Bewegung Wir werden die Bewegung mit der Tastatur innerhalb der Spielerbasis ausführen , weil wir nicht dieselbe Bewegung in der Terrorismusbekämpfung und dieselbe Bewegung in der Terrorismusbekämpfung programmieren müssen und dieselbe Bewegung in der Terrorismusbekämpfung . Wenn sie exakt dieselbe Bewegung haben, bewegen sie sich auf dieselbe Weise Egal, ob Sie ein Anti-Terrorist oder Terris, es ist egal, die Bewegung ist dieselbe Und deshalb ist es besser , es in der Spielerbasis zu tun, also musst du es nur einmal machen Okay, ich ändere das Maximum, gehe zurück zu 600 und die Spielerbasis wie Sie in der Terrorismusbekämpfung und Terrorismusbekämpfung sehen können , sie wieder auf 600 zurückgesetzt. So werden wir arbeiten. Wir werden hauptsächlich Dinge im Rahmen der Eltern-Blueprint-Klausel tun , und wenn es bestimmte Dinge gibt, die sich nicht ähneln, dann werden wir sie innerhalb der Kinder hier machen Aber im Moment ist das die grundlegende Erklärung. Lassen Sie uns alles speichern und wenn alles gespeichert ist, fahren wir mit der nächsten Lektion und richten den Charakter ein. 14. 3.03 Einrichten des Charakters: Zum Einstellen des Charakters. Fangen wir zuerst mit dem Terroristen hier auf der Terris dem Terroristen hier auf der Terris Lassen Sie uns auf „ Vollständigen Blueprint-Editor öffnen“ klicken. Dieser Viewer wird Ihnen immer dann angezeigt, wenn der Blueprint leer ist und Sie ihn zum zweiten Mal öffnen Klicken Sie dann hier oben im Blueprint-Editor öffnen und schon sind Sie wieder hier in der normalen Ansicht hier im Wenn Sie hier oben in den Komponenten klicken , klicken Sie auf das Und dann auf der rechten Seite können Sie sehen, dass Sie ein Skelett-Mesh-Asset hinzufügen können. Jetzt kannst du hier drüben darauf klicken und den Charakter auswählen. Was Sie tun können, Sie können auch den Ordner auswählen , den Sie importiert haben. Und Sie können den Charakter auch hier anklicken und in diese Mesh-Komponente ziehen . Sie können es entweder von hier aus auswählen oder Sie können sie einfach anklicken und hierher ziehen. Ich nehme zum Beispiel diesen, den männlichen Terroristen, und ich werde ihn anklicken , ihn hierher ziehen und ihm zuweisen. Wie Sie sehen können, werde ich dasselbe für den Terroristen tun . Doppelklicken Sie darauf. Öffnen Sie hier den vollständigen Blueprint-Editor . Klicke auf das Mesh Gehe zum Viewport, damit ich sehen kann, was ich hier mache. Klickt hier und verkauft. Wähle das Weibchen aus. Das liegt an Ihnen, es ist nicht wirklich wichtig, was Sie wählen, aber ich werde diesen wählen, den männlichen Anti-Terror-Charakter. Jetzt kannst du sehen, dass die Charaktere eigentlich in diese Richtung zeigen sollen , wo der blaue Pfeil zeigt. Sie schauen in die falsche Richtung. Nun habe ich dir wieder von den Blueprint-Kursen für Eltern und Kinder erzählt den Blueprint-Kursen für Eltern und Kinder Anstatt sie sowohl hier als auch hier zu rotieren, kannst du alles auf einmal innerhalb der Spielerbasis Wenn ich die Spielerbasis öffne und zum Ansichtsteil gehe, klicke ich auf das Mesh. Klicke auf der Tastatur auf E für das Rotationswerkzeug, und dann habe ich tatsächlich dieses Snapping aktiviert Ich habe dieses Einrasten aktiviert und um 90 Grad -90 Grad gedreht Das wird sie auf diese Weise voranbringen. Wenn ich auf Kompilieren klicke und auf jeden von ihnen klicke, können Sie sehen, dass beide gedreht sind. Deshalb ist es schön , einen Elternteil zu verlieren. Sie können also eine Einstellung ändern und sie gilt für alle. Was wir jetzt auch tun müssen, ist, dass der Fuß dieser Charaktere am Boden der Kapsel liegt. Wir können es nicht wirklich hier drinnen machen. Wir müssen es für jeden von ihnen tun. Du schaffst es. Lass es uns tatsächlich versuchen. Lass es uns einfach machen. Lass uns auf das Netz klicken. Und klicken Sie hier auf das Skelettnetz. Weisen Sie hier einfach ein beliebiges Zeichen zu. Wir werden uns nicht wirklich Gedanken über den Charakter machen, weil wir ihn auch entfernen werden . Klicken Sie also auf diesen Charakter. Der beste Weg, dies zu tun, ist hier die perspektivische Ansicht aufzurufen. Und klicken Sie auf, fangen wir zum Beispiel mit der Vorderansicht an. Sie können dieses Zeichen vergrößern und nach unten ziehen. Einfach so kannst du sehen, dass die Kapsel nicht wirklich den ganzen Charakter ausfüllt. Also werde ich auf die Kapsel klicken. Und die Kapsel auf halber Höhe, ich werde sie leicht vergrößern, etwa 93 oder so. Klicke auf den Charakter. Ich werde tatsächlich zur rechten Ansicht wechseln. Ich denke, es ist viel einfacher, diesen Charakter anzusehen und einfach zu ziehen. Also der Fuß hier ist unten. Sie können sich vorstellen, dass das der Boden ist. Der Boden ist hier. Wo es auf diesen Punkt trifft, werde ich es nach unten ziehen. Also ist der Fuß einfach so im Boden. Es muss nicht hundertprozentig genau sein. Sie können es später jederzeit anpassen. Aber das ist jetzt einfach ein netter Anfang. Es muss nicht wirklich das Ganze füllen. Kollisionskapsel. Diese Kapselkomponente wird normalerweise für eine Kollision verwendet. zum Beispiel in zwei D-Spielen, drei D-Spielen, Wenn du zum Beispiel in zwei D-Spielen, drei D-Spielen, den Spieler treffen willst, wird er durch diese Kapselkomponente getroffen. In unserem Mehrspieler-Ego-Shooter werden wir jedoch ein fortschrittlicheres Kollisionssystem für Arme und Beine usw. entwickeln ein fortschrittlicheres Kollisionssystem . Denn du kannst in diesem Spiel sehen, ob wir diese Kapsel als Kollision haben , wenn du den Spieler triffst. Man kann den Spieler tatsächlich treffen wenn die Kugel hier abgeschossen wird. Und das macht nicht wirklich Sinn. Also werden wir ein fortschrittlicheres System zur Erkennung von Treffern entwickeln. Damit der Spieler nur dann getroffen wird, wenn er tatsächlich am Arm getroffen wird und nicht hier draußen. Dieser ist vorerst nicht wirklich wichtig. Es muss nicht ganz präzise sein, aber ich möchte es in der richtigen Ansicht sehen Machen Sie es einfach so gut wie möglich , dass es so auf den Boden trifft. Wenn du zur Vorderansicht gehst, kannst du versuchen, die Kapsel etwas zu verkleinern. Es geht um seinen Körper, einfach so. Okay, lass uns jetzt auf Compile klicken. Gehen wir zur Terrorismusbekämpfung. Mal sehen, wie es aussieht. Wenn ich zur richtigen Ansicht gehe. Vorderansicht, schauen Sie sich das an. Sieht gut aus. Wenn ich zur Terroristenliste gehe, schaue ich mir einfach die Perspektive an. Nehmen Sie die richtige Ansicht ein. Schauen Sie sich einfach die Terrorabwehr an Dieser sieht auch gut aus. Sie können sehen, dass wir das Ganze hier innerhalb der Spielerbasis gemacht haben, und jetzt werden sie auf alle zukünftigen Charaktere angewendet , die wir erstellen. Nehmen wir an, du möchtest in Zukunft einen weiteren Charakter erstellen. Sie müssen nur mit der rechten Maustaste hier klicken und eine neue Blueprint-Klasse für Kinder erstellen Nehmen wir zum Beispiel an, wir nannten es EP und es gibt einen Terroristen namens Phoenix Ein neuer Charakter, in den du gehen kannst und du kannst auf diesen Typen in diesem Netz klicken und dann kannst du ihn in diesen Phoenix-Charakter ändern. Diese weibliche Figur könnte zum Beispiel Phoenix sein. Und Sie können sehen, wie einfach es ist, neue Charaktere zu erstellen. Alle Einstellungen werden übernommen. Nehmen wir an, für diesen Charakter gibt es einige Einstellungen , die geändert werden müssen. Dann kannst du einfach in diesen Charakter gehen und diesen Charakter einfach anpassen. Sie können die Blueprint-Klassen für Kinder problemlos anpassen Blueprint-Klassen für Kinder problemlos anpassen Sie müssen sich nicht nur auf die Basiseinstellungen des Players verlassen. Sie können jeden von ihnen anpassen, wenn Sie möchten. Sie können jedoch sehen, dass es wirklich nett ist, dass wir die Grundeinstellungen ( Standardeinstellungen) bereits mitgeliefert haben Standardeinstellungen) bereits mitgeliefert was uns die Arbeit erleichtert. Lassen Sie uns jetzt alles schließen. Ich werde diesen löschen. Das war nur, um es dir zu zeigen und ich gehe zurück in die Spielerbasis, wir müssen auch eine Kamera hinzufügen, weil der Charakter gerade da ist. Wir haben jedoch keine Kamera die der Spieler hindurchschauen kann. Wir klicken hier auf das Mesh, gehen zu D. Dann fügen wir etwas hinzu, das man Frühlingsquelle nennt. Der Arm ist nur ein Halter für die Kamera. Klicken Sie auf die Feder, gehen Sie zu D und suchen Sie dann nach der Kamera. Dann können Sie diese Kamera auswählen. Jetzt können Sie sehen, dass wir einen Federarm haben und im Inneren des Federarms befindet sich eine Kamera. Wenn ich jetzt auf die Feder klicke, klicke ich auf meiner Tastatur für das Drehwerkzeug und dann drehe ich die Kamera so, und dann drehe ich dass sie sich hinter der Figur befindet. Vorerst. Ich werde es einfach hochziehen. Nur so etwas wie, das ist momentan nicht wirklich wichtig. Wir werden die Kamera später anpassen. Aber im Moment möchte ich nur meinen Charakter sehen , wenn ich im Spiel bin. Was du tun kannst, ist, dass du es hier sehen kannst, wenn du zum Beispiel. Jetzt können Sie sehen, dass es tatsächlich auf beide angewendet wird, die Terroristen und die Terrorismusbekämpfung , weil sie Kinder sind Sie können sehen, dass beide jetzt einen Federarm haben, sowohl der Terrorist als auch der Antiterrist Aber was du tun kannst, ist Level zu ziehen zum Beispiel die Thekenterrasse anzuklicken und in das Wenn du auf den Charakter klickst, kannst du sehen, dass du hier eine Ansicht hast. Und das liegt daran, dass du gerade eine Kamera hinzugefügt hast. Sie können sehen, wie dieser Charakter von hinten aussieht. Was ich normalerweise mache, hier in der Spielerbasis, werde ich auf den Federarm klicken. Und ich werde die Armlänge auf etwa 600 einstellen , also ist sie ein bisschen weit vom Charakter entfernt. Und dann klicke ich auf den Charakter und du kannst sehen, wie er aussieht. Ich möchte meinen Ego-Shooter zuerst auf diese Weise und später entwickeln . Es ist sehr einfach. Der Unterschied zwischen einem Third-Person-Shooter und einem Ego-Shooter besteht lediglich darin , dass Sie auf den Federarm klicken und die Zielarmlänge auf Null setzen können . Und dann betrachtest du dieses Spiel tatsächlich als First-Person-Modus. Aber jetzt, da wir die Spielerbewegung machen, würde ich gerne mit einer Zielarmlänge von 600 beginnen , weil wir dann die gesamte Bewegung sehen können , die wir machen, und wir können sehen, ob wir die Dinge richtig machen. Das war es fürs Sitzen des Spielers. Denken Sie daran, Ihre gesamte Arbeit zu kompilieren und zu speichern. Und lassen Sie uns mit der nächsten Lektion fortfahren. 15. 3.04 Spielmodus und Spieler-Controller: Jedes Spiel, das du erstellst. Egal um welches Spiel es sich handelt, du hast immer einen Spielmodus und einen Player-Controller. Lass uns auf den Blueprint-Ordner klicken. Bevor ich irgendwas mache, lassen hier einen neuen Ordner erstellen und ihn Player nennen Ich nehme sie alle hier und füge sie hinzu und verschiebe sie in den Player-Ordner. Also sind wir hier draußen im Blueprint-Ordner etwas besser organisiert Lassen Sie uns mit der rechten Maustaste klicken und eine neue Blueprint-Klasse erstellen. Wählen wir einen Player-Controller aus. Bei einem Player-Controller erstellen wir in der Regel erstellen wir in der die Benutzeroberfläche und dann spawnen wir auch Dinge darin. Wenn der Spieler zum Beispiel eine Waffe in die Welt fallen lässt, spawnen wir diese Waffe in der Welt, Dinge innerhalb des Player-Controllers erscheinen und auch die Benutzeroberfläche befindet sich innerhalb des Player-Controllers und auch die Benutzeroberfläche befindet sich innerhalb des Lass uns weitermachen und klicken und einen Player-Controller erstellen. Und normalerweise gebe ich ihnen Präfix EC für Player-Controller, dann nenne ich es den Namen des Spiels. Das Spiel ist Counterstrike, ich nenne es einfach Under Strike klicke dann erneut mit der rechten Maustaste Gehe zur Blueprint-Klasse und erstelle dann einen Spielmodus Und normalerweise ist der Spielmodus dazu da, er erstellt die Regeln und die Punktzahl der Spiele Zum Beispiel, wie viele Sekunden pro Runde und was der Spielmodus ist, zum Beispiel Capture the Flag und so weiter. Also mach weiter und erstelle den Spielmodus, und nennen wir ihn GM für Spielmodus. Und wieder werde ich es den Namen des Spiels Hound, A Strike nennen den Namen des Spiels Hound, A Strike Ich möchte also, dass du auf diesen Spielmodus doppelklickst. Und wir brauchen hier einige Grundeinstellungen. Im Spielmodus können Sie sehen, dass wir in der Standardklasse Standardwerte haben, wir haben die Player Controller-Klasse Dies ist nur der standardmäßige Unreal Engine Player Controller. Wir wollen darauf klicken und es unser eigenes Gesetz zur Spielerkontrolle ändern , das wir gerade erstellt Das Gleiche gilt für die Standardklasse. Später werden wir niemanden mehr haben, wir werden keinen auswählen. haben wir jedoch nicht wirklich Derzeit haben wir jedoch nicht wirklich einen Bildschirm zur Charakterauswahl. Ich möchte einfach als Terrorist oder Anti-Terrorist erscheinen oder Anti-Terrorist Ich wähle einfach Terrorismusbekämpfung aus. Später werden wir es entfernen, weil wir einen Charakterauswahlbildschirm haben werden einen Charakterauswahlbildschirm und du auswählen kannst, als was du spawnen möchtest Aber für den Moment spawnen wir einfach als Anti-Terrorist , weil wir keinen Bildschirm Charakterauswahl haben Lassen Sie uns ihn jetzt schließen. Gehen wir zu den Bearbeitungs- und Projekteinstellungen. Hier haben wir die Karten und Modi. In Karten und Modi musst du den Spielmodus ändern. Im Moment ist es auf die Spielmodus-Basis eingestellt, was nur der grundlegende Spielmodus für Unreal Engine ist Ich möchte es jedoch in unseren eigenen benutzerdefinierten Spielmodus ändern. Und wenn Sie auf diesen kleinen Pfeil für den ausgewählten Spielmodus klicken , stellen Sie nur sicher, dass die Standardpunktklausel die von uns gewählte Terrorismusbekämpfung ist und dass der Spieler-Controller auch unser eigener ist. Wenn du willst, hast du bemerkt du beim Schließen und Öffnen der Engine die Standardkarte der offenen Welt kommst. Sie können dies auch innerhalb von Karten und Modi ändern. Die Startkarte des Editors, ich kann sie so ändern, dass sie diese Map ist, diese Map, die wir auch für die Standard-Map des Spiels erstellt haben, wir können sie auch in diese ändern. Okay, lassen Sie uns das schließen. Als letztes klicken Sie auf die Welteinstellungen. Wenn Sie die Registerkarte jetzt nicht sehen können, können Sie auf Fenster und dann auf Welteinstellungen klicken, sie zu sehen. Also mach weiter und klicke auf Welteinstellungen und klicke bei der Überschreibung des Spielmodus auf diesen Modus und wähle unseren Spielmodus wie folgt aus. Es ist sehr wichtig , dass du all das tust , weil du den Spieler sonst nicht innerhalb der Welt spawnen kannst den Spieler sonst nicht innerhalb der Welt spawnen Wenn ich diesen Spieler lösche, ist das nur jemand, den ich gerade in der vorherigen Lektion platziert Wir müssen einen Spieler starten bevor wir hier drinnen spawnen können Ich klicke hier oben und gehe zu den Grundlagen und wähle einen Spielerstart Ich klicke auf G, um die Symbole zu sehen. Ich werde es einfach so nach unten bewegen, in die Welt. So etwas wie das hier. Hier kannst du sehen, wenn du es unter die Erde legst, wird es schlechte Größe sagen. Achte nur darauf, dass es über dem Boden ist. Etwas wie das hier. Jetzt kannst du auf Play klicken und das sollte deinen Charakter erscheinen Wenn es nicht erscheint, schauen Sie sich dieses Video bitte noch einmal an. Vergewissere dich, dass sich der Spielmodus innerhalb der Welt, die Einstellung in den Projekteinstellungen usw. befindet Aber jetzt kannst du sehen, dass wir als Charakter spawnen, und wir klicken auf Spielen Und es sieht tatsächlich cool aus. Das ist Lumen Man kann die Lumenbeleuchtung sehen, tatsächlich nimmt der Wolf sie von Okay, jetzt haben wir den Spielmodus und den Player-Controller hinzugefügt Und lassen Sie uns weitermachen und den Eingabe-Mapping-Kontext erstellen und Bewegung für den Spieler hinzufügen. 16. 3.05 Input-Mapping-Kontext: Lassen Sie uns mit dem Eingabe-Mapping-Kontext beginnen dem Eingabe-Mapping-Kontext in dem wir die Spielerbewegung hinzufügen können Lassen Sie uns weitermachen und in den Player-Ordner gehen. Hier klicke ich mit der rechten Maustaste und erstelle einen neuen Ordner namens Input. Ich habe diese Eingabe einfach so hier falsch geschrieben einfach so hier Lassen Sie uns es öffnen, mit der rechten Maustaste klicken, zu Input gehen und diesen so genannten Eingabe-Mapping-Kontext erstellen diesen so genannten Eingabe-Mapping-Kontext Normalerweise habe ich IMC als Präfix aufgerufen und ich werde es einfach Standard nennen Bevor wir das benutzen können, kannst du sehen, ob ich es öffne, es ist leer Wenn ich zum Beispiel hier auf dieses Plus klicke, um meiner Bewegung eine Taste hinzuzufügen , siehst du, dass dort „Keine“ steht und ich nichts auswählen kann. Das liegt daran, dass es eine Eingabeaktion will. Also hier unten, lass uns mit der rechten Maustaste klicken, zur Eingabe gehen und Eingabeaktion auswählen. Das werden wir Bewegung nennen. Was diesen betrifft, werde ich ihn öffnen. Diese Eingabeaktion, das Einzige, was wir hier wirklich ändern müssen , ist der Wertetyp. Der Wertetyp, Sie können darauf klicken und Sie können sehen, dass Sie diese verschiedenen Optionen haben. Wir werden unseren Charakter innerhalb des Spiels vorwärts und rückwärts bewegen unseren Charakter innerhalb des Spiels vorwärts Wenn ich den Charakter hier hineinlege, bewegt sich der Charakter hin und her Das ist eine Achse. Der Charakter wird sich nach links und rechts bewegen. Das ist die zweite Achse. Deshalb werde ich eine Achse mit zwei D wählen, weil wir uns vorwärts, rückwärts und auch links und rechts bewegen , was die zweite Achse ist Dann werde ich hier speichern. Kehren wir zum Eingabe-Mapping-Kontext zurück. Jetzt können wir hier oben klicken und unsere Eingabeaktion hinzufügen , die wir gerade gemacht haben. Okay, lassen Sie uns das vorerst minimieren. Anstatt hier musst du einen Schlüssel zuweisen. Ich möchte mit meiner W-Taste weitermachen. Was Sie tun können, ist hier oben zu drücken und nach zu suchen. Und dann kannst du sehen, dass das die Tastatur ist. Sie können das W auswählen. Eine weitere einfachere Methode ist, wenn Sie hier oben auf das Plus klicken. Jetzt möchte ich mit meiner S-Taste rückwärts gehen. Anstatt hier drüben zu klicken und schreiben und Ihre S-Taste zu finden Manchmal kann es einige Zeit dauern. Sie können lediglich auf dieses Symbol und dann auf die Tastatur klicken, und dann auf die Tastatur klicken der diese Taste zugewiesen wird. Um mich nun nach links und rechts zu bewegen, gehe ich zu zwei davon hier für rechts, ich werde hier klicken und links auf D klicken. Ich werde hier klicken und auf meiner Tastatur auf A klicken. Jetzt habe ich diese Schlüssel. Ich möchte auch hinzufügen, ob ich die Mausbewegung hinzufügen möchte . Ich werde eine neue Eingabeaktion erstellen. Ich gehe hier runter, klicke mit der rechten Maustaste, gehe zur Eingabe und erstelle eine neue Eingabeaktion. Ich nenne das hier Look, suche wieder mit der Maus nach diesem, ich öffne die Eingabeaktion. Und ich werde den Wertetyp auf Achse zwei D ändern, weil ich nach oben und unten schauen werde. Das ist eine Achse. Und die zweite Achse schaut nach links und rechts, Achse zwei D. Ich werde auf Speichern klicken. Und zurück zu meinem Eingabe-Mapping-Kontext Jetzt kann ich hier oben auf das Plus klicken und meine neue Eingabeaktion für diese hinzufügen. Klicken Sie jetzt hier darauf und suchen Sie nach einer Maus. Und du hast diese Maus namens Maus XY2d. Fügen Sie jetzt auch einfach die Maus X und fügen Sie eine weitere hinzu und fügen Sie die Maus Y hinzu. Das können Sie auch und fügen Sie die Maus Y hinzu. tun Das ist dasselbe, aber um es übersichtlicher zu machen, klicke ich einfach hier und suche nach der Maus und füge diese Maus Xy hinzu, weil wir das auch tun können und es wird viel sauberer im Code Was wir nun mit der Bewegung hier mit dem WK machen wollen , wir bewegen uns vorwärts mit dem K, wir bewegen uns rückwärts Im Moment bewegen sie sich jedoch beide vorwärts. Was wir tun müssen, damit sich der SK rückwärts bewegt, ist in den Modifikatoren dass Sie auf das Plus klicken müssen Dann musst du hier unten diesen auswählen, der Negate heißt. Das invertiert deine Eingabe. Wenn Sie darauf klicken, bewegt es sich rückwärts. Wenn Sie dieses Negieren hinzugefügt haben, bedeutet Negieren nur, dass es das Gegenteil von dem macht , was die Wir müssen hier unten dasselbe tun. D bewegt sich eigentlich nach rechts, also nach links und rechts. Was wir auch in den Modifikatoren tun müssen, wir müssen hier klicken und den Weltraum auswählen Wir müssen dasselbe für die Linke tun. müssen wir auf die Modifikatoren klicken und den Weltraum auswählen Nun zu links und rechts, das D geht nach rechts und das A nach links Jetzt müssen wir für die linke Seite auch diesen Modifikator namens Nick Gate hinzufügen , genau wie zuvor Es wird in die entgegengesetzte Richtung gehen von dem, was das D tut. Also lass uns weitermachen und auf Speichern klicken. Alles sieht gut aus. Und jetzt sind wir bereit, diesen Eingabe-Mapping-Kontext zu unserem Charakter hinzuzufügen . Denn jetzt haben wir alles hinzugefügt. Alles sieht gut aus. Wenn wir eine Kiste mit der Bewegung bekommen, können wir jederzeit hierher zurückkehren und sie ändern. Aber im Moment haben wir das. Und lass uns diesen Charakter löschen. Und lass uns mit der nächsten Lektion fortfahren. 17. 3.06 Hinzufügen des Input-Mapping-Kontexts: Bevor wir den Eingabe-Mapping-Kontext verwenden und dem Charakter Bewegung hinzufügen können , müssen wir dies zu unserem Blueprint Clauss hinzufügen . Lass uns weitermachen und das tun Gehen wir zum Spieler und gehen wir in die Spielerbasis hinein. Hier drinnen werden wir die Bewegung hinzufügen. Wenn wir die Bewegung hier hinzufügen, wird sie auch auf die Kinder angewendet. Im übergeordneten Plan Claus, die Spielerbasis. Gehen wir zum Event-Graph. Innerhalb des Ereignisdiagramms können Sie klicken und die rechte Maustaste gedrückt halten , und Sie können hier hin und her schwenken. Lassen Sie uns nun weitermachen und all diese auswählen. Und drücken Sie das Kabel auf der Tastatur. Und fange von vorne an als Erstes, was ich schreiben werde. Klick. Und wenn Sie click schreiben, können Sie zwischen verschiedenen Funktionen und Ereignissen wählen. Das erste Event, das wir erstellen werden, heißt Begin, Play, Play. Fahren Sie fort und wählen Sie das Event „Begin, Play“ aus. Und was das bedeutet, ist, was passieren sollte, wenn ich anfange, das Spiel zu spielen? Du kannst hier Code schreiben, wenn ich von diesem Ausführungs-Pin ziehe und loslasse. Und ich schreibe print und verwende diese Print-Zeichenfolge. Das ist also die einfache, einfachste Funktion, die wir in Unreal Engine haben In Blueprints wird dadurch nur ein Teil des Textes auf dem Bildschirm gedruckt Wenn ich jetzt kompiliere, klicke ich auf Play. Sie können sehen, dass hier oben Hallo steht. Wenn ich erneut auf Abspielen klicke, siehst du, dass dort Hallo steht. Das sagt also nur, was passieren soll , wenn ich anfange, das Spiel zu spielen? Was wir tun wollen, ist , den Mapping-Kontext hinzuzufügen. So wie Sie das tun, müssen Sie zuerst die Player-Controller-Referenz abrufen. Um das zu tun, schreiben wir click und suchen einfach nach Controller. Sie können diesen Controller namens Yet Controller auswählen. Wir bekommen den Controller, aber dieser ist nur der grundlegende Standard-Player-Controller in Unreal Engine Wir müssen gegenüber Unreal Engine angeben, dass wir tatsächlich über diese benutzerdefinierte Spielersteuerung sprechen , die wir Wir machen das so, dass wir von hier aus Verträge abschließen. Wir können sagen, dass Cast Two, Cost Two bedeutet, dass wir versuchen, die Referenz für diesen Player-Controller zu bekommen . Ich kann von hier wegziehen und sagen, kostet zwei und dann musst du ihm den Namen des Player-Controllers geben . Spieler-Controller, PC. Counterstrike haben wir es genannt. Also mach weiter und wähle es aus. Jetzt können wir hier auf alles zugreifen. Sagen wir im Player-Controller. Wenn ich zum Beispiel eine Variable hinzufüge, nenne sie einfach Hallo oder so ähnlich. Irgendwas zufälliges Klicken auf Kompilieren innerhalb der Spielerbasis. Jetzt kannst du sehen, ob ich von hier ziehe und Hallo schreibe, ich kann die Variable sehen, die ich gerade erstellt habe. Beim Casting kannst du jetzt auf alles innerhalb dieses Player-Controllers zugreifen dieses Player-Controllers , weil du einen Verweis darauf hast Das nennt man Blueprint-Kommunikation Denn jetzt seid ihr in der Spielerbasis und kommuniziert mit dem Player-Controller und ihr könnt auf alles zugreifen, was sich darin befindet. Das einzige, was wir hier drinnen machen wollen , ist, dass wir ziehen wollen. Und dann haben wir es verbessert, ich erinnere mich nie an diesen Namen, er ist so lang. Verbessertes Subsystem für lokale Spieler mit Eingabe. Schreiben Sie einfach Enhanced und wählen Sie es hier aus. Aus diesem ziehen wir die Maus und sagen Mapping-Kontext hinzufügen. Fahren Sie fort und fügen Sie den Mapping-Kontext hinzu. Und denken Sie daran, Ihren Code zu verbinden, sonst funktioniert er nicht, weil er vom Event ausgeht und diese Play-Controller-Referenz erhält. Und dann wird es diesen Mapping-Kontext zu diesem Blueprint hinzufügen diesen Mapping-Kontext zu diesem Blueprint Und denken Sie daran, dass Sie im Mapping-Kontext hier klicken und den von Ihnen erstellten Mapping-Kontext auswählen Fahren Sie fort und klicken Sie auf Kompilieren. Und das ist es tatsächlich. Jetzt haben Sie dem Player den Mapping-Kontext hinzugefügt und können nun Ereignisse verwenden und die Bewegung erstellen. In der nächsten Lektion werden wir jedoch über Blueprint-Schnittstellen sprechen Ich mag Casting nicht wirklich, weil beim Casting in der echten Engine heiße Referenzen erzeugt werden , wenn man das Spiel startet Nehmen wir zum Beispiel an, Sie haben ein vollständiges Spiel erstellt. Sie haben zum Beispiel 100 Baupläne in Ihrem Jetzt ist es auf Steam veröffentlicht. Was jedoch die Hot References angeht: Wenn ein Spieler dein Spiel öffnet, Wenn ein Spieler dein Spiel öffnet bevor es das Hauptmenü und alles andere lädt, werden zuerst die Hot References geladen. Wenn Sie, sagen wir, 100, 200 in Ihrem Casting-Spiel haben , wird das Ihr Spiel verlangsamen, weil es alle Hot References laden muss. Es muss all diese zuerst laden. Es kann dein Spiel ausführen. Ich sage nicht, dass du es niemals benutzen solltest, denn es gibt Fälle, in denen es lächerlich ist, es nicht zu benutzen. In diesem Fall mache ich normalerweise gerne eine Blueprint-Oberfläche Und von dort aus können wir mit anderen Blueprints kommunizieren , ohne heiße Referenzen zu erstellen Also lasst uns das tun, lasst uns unser Spiel optimierter gestalten. Und ich versuche dir auch zu zeigen, wie ich es normalerweise auf fortgeschrittene Weise machen würde, und ich möchte dir nicht wirklich schlechte Methoden beibringen. Versuchen wir vorerst, das Casting zu vermeiden, und fahren wir mit der nächsten Lektion fort in der wir diesen Teil ersetzen können. 18. 3.07 Blueprint-Schnittstelle: Blueprint-Schnittstellen werden anstelle von Kostenrechnungen verwendet. Für eine Blueprint-Kommunikation verwenden wir in der Regel Blueprint-Schnittstellen , um Kosten Und wie ihr hier im Player sehen könnt , haben wir das in der Spielerbasis gemacht. Um zu vermeiden, dass Referenzen versteckt werden, die im Spiel vor dem Hauptmenü geladen werden müssen und das Spiel verlangsamen, haben wir eine Blueprint-Oberfläche erstellt, um diese im Spiel vor dem Hauptmenü geladen werden müssen und das Spiel verlangsamen, haben wir eine Blueprint-Oberfläche erstellt, haben wir eine Blueprint-Oberfläche erstellt Lass uns weitermachen und eine erstellen. Und lassen Sie uns sehen, worum es geht. Drüben im Blueprint-Ordner werde ich schreiben, klicken und einen neuen Ordner erstellen Und ich werde dieses eine Interface oder Interface nennen. Und lass uns in den Ordner hier drinnen gehen. Lass uns schreiben, klicken, zu Blueprint gehen und Blueprint-Oberfläche auswählen Normalerweise nenne ich Schnittstellen T als Präfix Im Moment müssen Sie es so nennen , auf das Sie sich beziehen möchten. Ich versuche, auf meinen Player-Controller zu verweisen. Ich werde das One Play Controller nennen. Ich werde hier reingehen und das ist das Blueprint-Interface Denken Sie daran, dass Blueprint-Benutzeroberflächen für Anfänger normalerweise schwierig sind, aber versuchen Sie, sie zu verstehen, und es ist tatsächlich sehr einfach zu Versuchen wir einfach, eine zu erstellen und zu sehen, was innerhalb einer Blueprint-Schnittstelle passiert Du hast diese Aussicht, du kannst hier drinnen wirklich nichts machen Du kannst nichts ziehen oder irgendetwas tun. Das einzige, was Sie tun können , ist hier in den Funktionen, Sie können eine Funktion erstellen. Die Funktion, die ich jetzt machen möchte wenn Sie auf der Tastatur auf zwei klicken, können Sie den Namen ändern. Ich möchte es nur Get Player Controller Ref nennen. Ich versuche mit dieser Funktion, Player-Controller-Referenz zu bekommen. Damit ich dieses Casting hier drüben vermeiden kann . Ich werde auf diese Funktion klicken, die ich gerade erstellt habe. Ich werde hier eine Ausgabe erstellen. In den Ausgaben wähle ich die Blueprint-Klasse aus, auf die ich verweisen möchte. Jetzt versuche ich, auf meinen Player Controller PC Counterstrike zu verweisen meinen Player Controller PC Counterstrike So haben wir es genannt. Und wählen Sie die Objektreferenz aus. Wählen Sie hier in den Variablen die Blueprint-Klasse aus , auf die Sie verweisen möchten. Ich werde das Player Controller nennen. Und jetzt ist diese Funktion fertig. Sehr einfach. Denken Sie daran, hier zu drücken und zu kompilieren. Sehr wichtig und mach weiter und spare. Jetzt haben wir diese einfache Funktion. Jetzt können wir damit den Controller öffnen . Wenn ich zu den Blueprints gehe und den Player-Controller hier öffne , öffnen wir den kompletten Blueprint-Editor und wählen dann Klasseneinstellungen In den Klasseneinstellungen hier unten kannst du jetzt die Blueprint-Oberfläche hinzufügen Lass uns hier klicken und nach T suchen. Hier ist es, das Interface, das wir gerade erstellt haben. Fahren Sie fort und wählen Sie es aus. Wenn Sie die Blueprint-Oberfläche auswählen, Sie möglicherweise fest, dass Sie hier links diese Registerkarte sehen Nun, das ist eine neue Registerkarte, die gerade erschienen ist und als Schnittstellen bezeichnet wird Hier können Sie die Funktion sehen, die wir gerade in dieser Blueprint-Oberfläche erstellt Jetzt ist sie erschienen, wenn Sie die Blueprint-Schnittstelle hinzufügen. Wenn Sie auf diese Funktion doppelklicken und sie aufrufen, können Sie diese Variable jetzt hier setzen Wir haben diese Spielersteuerungsvariable erstellt, aber im Moment ist sie leer. Was wir tun müssen, müssen wir daraus ziehen. Und dann schreiben wir selbst. Was heißt das? Lass es mich tatsächlich noch einmal machen. Vielleicht ging es zu schnell. Drache von hier. Wenn du dich selbst schreibst und dann diesen auswählst, bekommst du einen Verweis auf dich selbst. Das heißt, lassen Sie mich eigentlich einfach wieder hierher zurückkehren. Wir haben hier die Blueprint-Schnittstelle erstellt und wir haben die darin enthaltene Funktion für die Variablen, die wir ausgewählt haben, die Variable, auf die wir verweisen wollten, hier Variable, auf die wir verweisen wollten Spielersteuerung Als wir das Interface über die Klasseneinstellungen hinzugefügt haben, erschien es hier innerhalb der . Die Funktion hier für diese Variable schreiben wir self. Das bedeutet, dass wir der Engine nur sagen , was diese Player-Controller-Variable ist. Denn wenn ich die Steuerung gedrückt halte und hier klicke und die Verbindung unterbreche, wird die Engine nie erfahren, was diese Variable ist. Wenn es so steht, ist es leer, die Variable ist leer und du bekommst Ära in deinem Spiel. Aber wenn wir eine Selbstreferenz machen, bedeutet das, dass diese Variable selbst ist. Denken Sie daran, dass wir uns im Player Controller befinden. Wir definieren im Grunde diese Player-Controller-Variable. Wir sagen der Engine, dass es dieser Player-Controller ist , in dem ich mich gerade befinde. Es ist das Selbst. Selbstreferenz bedeutet, was Eva, Blueprint-Klasse, in der ich mich gerade befinde, nämlich der Player-Controller Also haben wir es hier einfach definiert. Fahren Sie fort und kompilieren und speichern Sie, was wir jetzt tun können. Jetzt sind wir damit fertig. Jetzt können wir zum Player gehen und das hier löschen. Was wir jetzt tun können, ist, vom Controller zu ziehen und dann die Funktion zu schreiben , die wir sie genannt haben. Hier ist der Name. Holen Sie sich die Player-Controller-Referenz, ich kann von hier aus ziehen und sagen, Ebene abrufen . Und dann können Sie sehen, dass es auf der von uns erstellten Blueprint-Oberfläche hier angezeigt wird dass es auf der von uns erstellten Blueprint-Oberfläche Es heißt „ Player-Controller-Referenz abrufen“ Das ist die Funktion, die wir gerade gemacht haben, als am Ende Nachricht steht. Das heißt, sie kommt von einer Blueprint-Oberfläche Also mach weiter und wähle sie aus. Dieses Symbol hier bedeutet nur, dass es von einer Blueprint-Oberfläche stammt . Und jetzt haben wir es Jetzt vermeiden wir das Casting, wir vermeiden die harten Referenzen und unser Spiel ist auch in Bezug auf die Leistung optimierter. Sie können jetzt einfach weitermachen und es verbinden. Jetzt weiß es, dass dieser Player-Controller, auf den wir uns beziehen unser PC-Counter-Strike-Player-Controller ist Weil wir all diese Variablen im PC-Counterstrike selbst geschrieben haben, wissen wir jetzt, wovon wir hier sprechen Das mag zunächst etwas verwirrend sein , wenn Sie noch nie zuvor Blueprint-Schnittstellen verwendet haben, aber es ist sehr praktisch, um Casting zu vermeiden Wir haben gerade die Blueprint-Schnittstelle erstellt. Wir haben dann die Blueprint-Klasse ausgewählt , auf die wir verweisen möchten. Dann haben wir innerhalb der Blueprint-Klasse auf die wir verweisen möchten, Blueprint-Schnittstelle hinzugefügt und diese Dann haben wir hier drinnen eine Selbstreferenz gemacht. Und davon können wir es jetzt hier verwenden wo wir sagen können, holen wir uns den Controller und dann die Player-Controller-Referenz, einfach so, um Kosten zu vermeiden. In Ordnung, das war es also für die Blueprint-Oberfläche. In Zukunft werden wir mehr Beispiele haben. Wenn das ein bisschen schwierig war, werfen Sie bitte einen Blick auf meinen Discord-Server oder werfen Sie einen Blick auf Pixel Helmet.com. Ich freue mich sehr, Ihnen weiterhelfen zu Also lass uns weitermachen und auf Datei Alle speichern klicken. Und lassen Sie uns mit der nächsten Lektion fortfahren. 19. 3.08 Spielerbewegung: Nachdem wir dem Spieler nun den Eingabe-Mapping-Kontext hinzugefügt haben , können wir nun die Bewegung ausführen Wir müssen den Namen der Eingabeaktionen schreiben , die wir erstellt haben. Die erste, die ich erstellt habe, hieß IA Movement. Fangen wir mit dem an. Was Sie jetzt hier im Player tun können, Sie können IA Movement, den Namen der Eingabeaktion, schreiben, anklicken und schreiben . Und dann kannst du auf dieses Ereignis klicken, um es zu erstellen. Denken Sie daran, dieses Symbol bedeutet, dass es sich um ein Ereignis handelt. Also mach weiter und erschaffe es. Jetzt haben wir diese Veranstaltung und sie sieht ein bisschen komplex aus, aber nicht wirklich. Es sagt dir nur, wann das Ereignis ausgelöst, gestartet, läuft, abgesagt und abgeschlossen ist . Hier ist nichts zu komplex. Nun, wann wird dieses Ereignis ausgelöst? Das Ereignis wird ausgelöst. Wenn Sie zum Eingabe-Mapping-Kontext wechseln, denken Sie daran, dass wir Schaltflächen für unsere Bewegung hinzugefügt haben. Wenn ich auf W klicke, wird diese Bewegung ausgelöst. Jetzt schauen wir mal, ob das tatsächlich funktioniert. Denn wenn Sie diesen Code nicht hinzugefügt haben, wird die richtige Druckzeichenfolge nicht ausgelöst und ich drucke nur eine einfache Nachricht auf den Bildschirm. Wenn ich zum Beispiel auf „Abspielen“ klicke, kann ich auf „Abspielen“ klicken. Und wenn ich darauf klicke, kannst du sehen, dass es tatsächlich auf dem Bildschirm gedruckt wird. Wenn ich nun die Verbindung getrennt und meinen Eingabezuordnungskontext nicht hinzugefügt hätte meinen Eingabezuordnungskontext nicht hinzugefügt und ich auf Abspielen und dann auf klicken würde, können Sie sehen, dass nichts auf dem Bildschirm gedruckt wird und es nicht funktioniert Denken Sie daran, dies zu Ihrem Code hinzuzufügen. Okay, jetzt, wo das funktioniert, lass uns etwas Bewegung machen. Für die Bewegung des Spielers verwenden wir eine Funktion namens Bewegungseingabe hinzufügen, klicken mit der rechten Maustaste und schreiben Bewegungseingaben So fügt man einem Charakter Bewegung hinzu. Lass es uns jetzt verbinden. Nun fragt es dich, in welche Richtung möchtest du den Charakter bewegen? Jetzt machen wir den ersten. Bewege dich vorwärts und rückwärts. Was Sie tun können, klicken Sie einfach mit der rechten Maustaste und klicken Sie mit der rechten Maustaste. Aber bei Forward Vector ist das der Vorwärtsvektor und wir können ihn hier mit der Weltrichtung verbinden. Nun, wie bewegen wir uns rückwärts? Wir brauchen eigentlich nichts anderes. Das ist das Einzige, was wir brauchen. Woher weiß es, wann wir vorwärts und rückwärts gehen Das liegt an diesem Skalenwert. Der Skalenwert ist eins, er wird sich weiterentwickeln. Du kannst hier sehen, wenn ich auf „Abspielen“ klicke und ich darauf klicke, geht es vorwärts. Wenn ich jetzt draufklicke, bewegt es sich tatsächlich auch vorwärts weil dieser Skalenwert auf eins gesetzt ist. Wenn ich es auf minus eins setze und auf Hier abspielen klicke und dann auf, oder du kannst jetzt sehen, dass es sich rückwärts bewegt Wenn es eins ist, bewegt es sich vorwärts, und wenn es minus eins ist, bewegt es sich rückwärts Dies ist hier der Aktionswert. Wir können mit der rechten Maustaste darauf klicken und den Struktur-Pin teilen. Oder du kannst das nehmen und Vektor zwei D brechen. Das ist eigentlich dasselbe. Ich klicke einfach mit der rechten Maustaste darauf und sage Split-Struktur. Für dieses X können Sie es hier zum Skalenwert hinzufügen. Wenn Sie stattdessen auf klicken, bewegen Sie sich vorwärts. Wenn Sie auf klicken, bewegen Sie sich rückwärts, weil es minus eins sein wird Denken Sie daran, dass Sie im Eingabe-Mapping-Kontext hier den Modifikator für den geschrieben haben, wenn Sie nach hinten drücken, Sie Negieren geschrieben oder ausgewählt haben, wodurch die Bewegung einfach umgekehrt Das bedeutet, dass dieser Wert minus eins ist wenn Sie auf Okay klicken Das ist die Vorwärts - und Rückwärtsbewegung. Das ist jetzt für links und rechts fertig , sehr, sehr einfach Du kannst das hier kopieren und einfügen und verbinden. Dann kannst du für das Wort Richtung einen korrekten Vektor schreiben. Und du kannst es jetzt verbinden. Und jetzt können Sie es für das Y über dem Skalenwert verbinden . Denken Sie jetzt daran, Ihren Code zu organisieren. Sie können hier doppelklicken , um einen Umleitungsknoten zu erstellen. Versuche einfach organisiert zu bleiben. Doppelklicken Sie auch auf diesen. Versuche organisiert zu bleiben. Einfach so. Es ist immer schön, organisiert zu bleiben , weil Sie sich vorstellen können, dass Ihr Code später sehr umfangreich sein wird. Du kannst auch das Ganze auswählen und der Tastatur auf C klicken , um einen Kommentar zu erstellen. Du kannst zum Beispiel WASD-Bewegung und so weiter schreiben. Im Moment werde ich es nicht tun, ich werde es etwas später tun Ja, das war die Bewegung. Sie können jetzt kompilieren und auf Play klicken. Aber anstatt im Viewport zu spielen, denke ich, dass es für Sie einfacher ist wenn ich im Editor in einem neuen Editorfenster spiele, hier oben klicke, neues Editorfenster, und es wird so erscheinen Jetzt kann ich spielen, lass es mich einfach ein bisschen größer machen Klicke auf Play, um es größer zu machen. Sie können jetzt sehen, dass ich vorwärts gehe, wenn ich darauf klicke. ich mich rückwärts bewege Wenn ich mich rückwärts bewege und auf D klicke, bewege ich mich nach rechts Und wenn ich auf klicke, bewege ich mich nach links. Jetzt kann ich meinen Charakter mit meiner Tastatur bewegen. Sehr, sehr nett. Im Moment können wir die Maus jedoch immer noch nicht bewegen. Wir müssen auch den Code dafür hinzufügen. Sie können hier erneut mit der rechten Maustaste klicken. Wir nennen das IA Look Input Action. Wir müssen dieses Ereignis nutzen. Sie können jetzt mit der rechten Maustaste klicken und einen Look schreiben. Und dann können wir dieses Ereignis auswählen. Zum Suchen müssen wir etwas namens Add Your Input verwenden , das schaut nach links und rechts. Und dann haben wir den zweiten , Pitch Inputs genannt Dieser hier, der bewegt sich oder schaut auf und ab. Noch einmal ganz einfach, klicken Sie hier mit der rechten Maustaste und teilen Sie den angeschlagenen Stift auf. Mach weiter und verbinde das X hier und das Y hier. Und das war's für dieses ganz einfache, nach oben und unten mit der Maus nach oben und unten und links und rechts zu schauen. Lass uns kompilieren und lass uns auf Play klicken. Und ich werde meine Maus bewegen. Sie können sehen, dass ich es nach rechts und links bewegen kann. Ich kann es nicht auf und ab bewegen. Das ist tatsächlich im Federarm. Wenn ich auf den Federarm klicke, muss ich diesen mit der Bezeichnung Use upon Control Rotation wählen. Jetzt kann ich auf Play klicken. Und jetzt kannst du sehen, dass ich mich auf und ab, links und rechts bewegen kann . Wenn ich mich jedoch auf und ab bewege, ist es im Vergleich zu dem, was ich gewohnt bin, tatsächlich umgekehrt Ich bin es nicht gewohnt, mich so mit der Maus auf und ab zu bewegen. Ich bin es gewohnt, das Gegenteil zu haben. Gehen wir hier in der Maus zum Eingabe-Mapping-Kontext Xy. Für den Modifikator füge ich einen neuen Modifikator hinzu und negiere ihn mit der rechten Ich möchte meine Y-Bewegung für den Mausklick auf den kleinen Pfeil umkehren für den Mausklick auf den kleinen Pfeil Für das Negieren werde ich X und Z entfernen. Ich möchte X und Z nicht invertieren, ich möchte nur das Y invertieren. Also klicke ich wieder einfach auf Abspielen. Also klicke ich wieder einfach auf Abspielen Und wenn ich mich jetzt auf und ab bewege, ist es tatsächlich richtig. Wenn ich mich jetzt auf und ab bewege, ist es für mich richtig. Und wenn ich nach links und rechts schaue , ist das auch richtig. In Ordnung. Also das war die Bewegung. Und nochmal, wenn etwas das Gegenteil von dem ist , was du erreichen willst, kannst du jederzeit mit dem Negieren herauskommen und versuchen, die Bewegung kannst du jederzeit mit dem Negieren herauskommen umzukehren Und wenn alles stimmt, war diese Bewegung für unseren Charakter sehr, sehr einfach Wir können uns jetzt bewegen und mit der Maus schauen. Allerdings fehlt uns die Animation. Und damit werden wir in der nächsten Lektion arbeiten. Also mach weiter und speichere alles, und lass uns weitermachen. 20. 3.09 Importieren der Player-Animationen: Nachdem wir die Spielerbewegung abgeschlossen haben, sind wir nun bereit, einige Animationen auf dieser Website hinzuzufügen Ich habe für Sie einige Kursmaterialien beigefügt. Laden Sie die Gerichtsmaterialien herunter und Sie werden diesen Ordner mit den Kursmaterialien wahrscheinlich als SIP-Ordner erhalten . Stellen Sie einfach sicher, dass Sie den Inhalt aus dem Sip-Ordner extrahieren. Jetzt können wir hier in den Ordner Counter Strike Animations gehen. Dies ist ein Unreal Engine-Projekt. Ich habe alle Animationen für dich hinzugefügt , die du für das Spiel verwenden musst Wenn Sie einfach weitermachen und dieses Projekt öffnen, wenn Sie dieses Projekt geöffnet haben, werden Sie Folgendes sehen. Sie haben diesen Animationsordner. Darin befinden sich alle Animationen, die Sie für das Spiel benötigen. Sie haben einen gewissen Animationsversatz , wenn Sie mit der Waffe zielen und so weiter. In diesem Fall klicken wir mit der rechten Maustaste auf den Animationsordner und wählen dann Migrieren. Übrigens. Noch ein Tipp hier. Wenn Sie mit der rechten Maustaste auf eine Datei statt auf einen Ordner klicken, befindet sich die Migration unter Asset-Aktionen, und dann ist sie hier migriert. Dies ist der Fall, wenn Sie nur eine Datei migrieren möchten, wir aber den gesamten Ordner migrieren möchten. Klicken Sie mit der rechten Maustaste und migrieren Sie. Und klicken Sie einfach auf Okay, hier nochmal, lassen Sie uns es in unseren Inhaltsordner migrieren. Wenn du zum Multiply-Shooter gehst, ist das mein Ordner. Es ist innerhalb der Nachteile, Strike-Projekts und dann der Inhalt innerhalb des Inhalts. Wählen Sie auch hier nur den Inhaltsordner aus, wählen Sie einen anderen Ordner aus, sonst funktioniert es nicht. Fahren Sie einfach fort und wählen Sie den Inhaltsordner aus. Wählen Sie den Ordner aus, und es werden alle Animationen extrahiert oder in unser eigenes Projekt übertragen. Nachdem wir die Migration abgeschlossen haben, kehren wir zu unserem eigenen Projekt zurück Hier können Sie sehen, dass wir jetzt das Animationsprojekt haben und wir haben all diese Animationen, und wir haben all diese Animationen die wir migriert haben Jetzt werden wir all diese Animationen auf unseren eigenen Charakter übertragen diese Animationen auf unseren eigenen Charakter Und später können wir diese beiden Ordner löschen , die wir importiert haben. Außerdem werde ich diese beiden Ordner tatsächlich anklicken und sie in den Marketplace ziehen , nur um ihn etwas übersichtlicher zu gestalten. Manchmal, wenn Sie Ordner von einem Ordner in einen anderen ziehen und Sie auf dem Marktplatz sehen können, sind sie jetzt da. Sie sind jedoch immer noch hier und es sind nur leere Ordner. Es wurde nicht gelöscht. Was Sie tun können, Sie können sie auswählen, auf Ihrer Tastatur auf Löschen klicken und Sie können sehen, dass es sich um Objekt-Redirectors handelt Sie können das einfach ignorieren und weitermachen und es löschen. Jetzt können Sie sehen, dass es immer noch nicht gelöscht wird. Es passiert manchmal in Unreal Engine. Sie können mit der rechten Maustaste auf den Inhaltsordner klicken und dann auf Redirectors reparieren klicken. Anschließend können Sie erneut versuchen, den Inhalt zu löschen Wenn es nicht gelöscht wird, mache ich normalerweise einfach weiter und schließe das Projekt Und dann gehe ich hier in mein eigenes Projekt und den Inhaltsordner und lösche sie einfach von hier. Stellen Sie einfach sicher, dass Sie sie in den Marketplace-Ordner übertragen haben , wie Sie hier sehen können. Ich lösche einfach diese leeren Ordner aus dem Inhaltsordner und öffne dann meinen eigenen Ordner. Auch das passiert manchmal in Unreal Engine. Okay, hier sind wir wieder im Projekt und jetzt, wo wir unsere Animationen importiert haben, werden wir sie auf unseren eigenen Charakter übertragen Und dann werden wir diese beiden Ordner später entfernen , aber fahren wir mit der nächsten Lektion fort. 21. 3.10 Erstellen von IK-Rigs: Bevor wir die Animationen in unseren eigenen Charakter kopieren können, müssen wir ein sogenanntes K-Rig die Animationen in unseren eigenen Charakter kopieren können, erstellen Gehen wir zu den Bauplänen über. Gehen wir zum Player-Ordner, hier klicke ich mit der rechten Maustaste und erstelle einen neuen Ordner namens Animations Und dann können wir in diesem Ordner zu Animationen gehen. Hier unten sehen wir etwas namens K. Dann müssen wir es auf dem gelben Feld namens K Rig auswählen . Normalerweise nenne ich sie, nennen wir das eine Mannequin. Mannequin ist der Name des anderen Charakters, für den wir die Animationen von K Mannequin kopieren werden Animationen von K Mannequin kopieren werden Jetzt können Sie hier doppelklicken und wechseln. Und was Sie hier tun können, jetzt müssen Sie ein Skelettnetz auswählen , das Sie verwenden möchten. Ich werde hier dieses Mannequin verwenden , von dem wir die Artikel kopieren müssen Sie können weitermachen und dieses auswählen. Sie können sehen, dass es im Ordner References 01 heißt. Wenn Sie diese Informationen dort unten im Link sehen können, wenn Sie weitermachen und darauf klicken. Nun, das ist das Manikin Wir werden ganz einfach ein IK-Rig erstellen Hier in der IK-Rig-Oberfläche haben Sie alle Animationen, wie Sie sie hier im Asset-Browser sehen können Wenn Sie auf sie doppelklicken können, können Sie die Animationen hier im IK-Retargeting-Fenster sehen IK-Retargeting-Fenster Hier musst du die Knochen dieses Charakters angeben und dann müssen wir auch die Knochen unseres anderen Charakters angeben Und dann können wir auf diese Weise tatsächlich Animationen von diesem Charakter auf den anderen kopieren. Weil wir die Knochen definiert haben und Honoral Engine weiß, wie man die Animationen kopiert Jetzt klicke ich einfach auf Reset, damit sie stillstehen Hier im Vereinigten Königreich sind wir wieder im Visier. Was Sie tun müssen, ist, eine neue Kette zu erstellen. Die erste Kette, zu der wir gehen, nennen wir sie einfach Head. Mach weiter und nenne es Head. Im Moment müssen wir nichts auswählen, nur eine Kette. Einfach so. Okay, wir haben jetzt einen namens Head. Fügen wir weiterhin die anderen hinzu. Ich werde wieder gegen eine Kette fahren. Und dieser wird links, links heißen, und dann mach weiter und erstelle einen neuen namens Right. Dann erstelle ein neues, Leg left. Erstelle ein neues mit dem Namen Leg, richtig? Dann können wir einen neuen namens Spine und einen letzten namens Roots erstellen . Okay, das sind also alle Ketten, die wir erstellen müssen. Kopf, linkes, rechtes Bein, linkes Bein, rechte Wirbelsäule und Wurzel. Jetzt müssen Sie angeben, wo der Kopf beginnt und wo er endet, den Startknochen und den Endknochen. Was Sie hier tun können, und zwar auf sehr, sehr einfache Weise, jetzt weiß ich, wie es heißt. Wenn du hier nach Hals suchst, dann kannst du es hier auswählen und es endet mit dem Kopf. Jetzt weiß ich das, weil ich das 100 Mal gemacht habe. Wenn Sie jedoch neu hier sind oder wenn Sie einen neuen Charakter mit anderen Knochen haben , denn denken Sie daran, wenn Sie einen Künstler haben, der das für Sie individuell in einer Drei-D-Software macht , kann er es nennen, wie er will Du musst wissen, wie es heißt. sind nur die Namen der Knochen, die normalerweise in echten Motoren vorkommen. Ich weiß, wie sie heißen. Was Sie hier tun können, um ihre Namen zu sehen , ohne wirklich zu wissen, wie sie heißen. Hier kannst du auf „Den Charakter hier tatsächlich anzeigen“ klicken. Klicke auf Charakter und gehe zu Bones und wähle die gesamte Hierarchie aus. Dadurch kannst du alle Knochen für diesen Charakter sehen. Was du hier tun kannst, kannst du hier unten anklicken. Jetzt können Sie sehen, dass es Neck 01 heißt. Mein Kopf beginnt bei Hals 01. Wenn ich hier nach oben klicke, heißt das Kopf. Der Endknochen ist Kopf. Jetzt machen wir es für den linken Arm. Jetzt ist das hier der linke Arm. Wenn wir so stehen, ist das der linke Arm. Wenn du auf den linken Arm klicken kannst, fängt er am Gebärmutterhals an, links über dem Startknochen ist Levical links, das Es ist nicht wirklich das Ende hier an den Finger, sondern dort, wo die Hand anfängt Wenn du hier nach oben klickst, es Der Endknochen hier. Wählen wir aus, dass er gegangen ist, einfach so. War am Ende gegangen. Nun zur Rechten, es ist dasselbe. Es ist nur Levi Coal, oder? Und dann wieder Hand rechts für das Bein, du kannst es als Übung versuchen, du kannst es irgendwo hier oben anklicken. Das ist der Oberschenkel Das fängt beim Oberschenkel an. suche nach dem. Ich werde das einfach kopieren Oberschenkel links, und ich werde es hier am Bein rechts einkleben, sodass es am Oberschenkel links ist. Oberschenkel rechts Das Bein endet hier unten. Wenn du es anklickst, endet es am auswählenden Fuß links und hier unten, Fuß rechts. Jetzt der letzte, Wirbelsäule, das ist sehr einfach. Das ist die mittlere Wirbelsäule hier drüben. Es beginnt an Wirbelsäule eins und endet an Wirbelsäule drei. Dieser ist einfach. Wirbelsäule suchen, können Sie sehen, dass sie bei Wirbelsäule eins beginnt und bei Wirbelsäule drei endet. Die Wurzel wird einfach Wurzel genannt. Sie können nach Wurzeln suchen, nennen Sie sie auch hier einfach root. Wurzel, Wurzel. Das ist dasselbe, es ist nur der Knochen hier oben, der Wurzelknochen hier unten. Jetzt sind wir damit fertig, diesen Charakter erneut ins Visier zu nehmen. Und was Sie tun können, ist rechten Maustaste auf das Becken zu klicken. Sehr wichtig Klicken Sie nun mit der rechten Maustaste auf das Becken und wählen Sie Zielwurzel festlegen. Das wird diesen Charakter stabilisieren . Und mach weiter und klicke auf Sicher. Okay, jetzt, wo wir mit diesem fertig sind, können wir jetzt in den Animationsordner gehen. Finde deinen IK Ric, den du gerade gemacht hast. Sie können mit der rechten Maustaste klicken und das dann tatsächlich duplizieren. Lassen Sie mich diesen einen K-Spieler nennen. Das ist der Spieler eins. Anstatt hier irgendwas zu tun, können Sie jetzt einfach den Spieler auswählen. Jetzt kannst du zum Beispiel diesen männlichen Undaterroristk auswählen. Du musst es nicht noch einmal tun. Du kannst sehen, dass es schon da ist. Alles ist gut. Alles ist in Ordnung. Es ist bereits als Retarget-Route festgelegt , weil wir es für die andere getan haben Wir können dieses schließen, aber jetzt haben wir diese beiden IK-Anlagen. Nachdem das erledigt ist, fahren wir mit der nächsten Lektion fort und erstellen die IK-Retargeta 22. 3.11 Erstellen eines IK-Retargeters: Lassen Sie uns nun fortfahren und die IK-Targets erstellen. Schauen wir uns das mal an, zwei Animationen. Und wählen Sie dann erneut das K C. Und wählen Sie das zweite aus, das als IK Targeta bezeichnet wird. Denn jetzt sind wir bereit, die Animationen von einem Charakter auf einen anderen zu kopieren und so das K-Retarget zu erstellen Ich nenne es IKR. Nennen wir es vorerst einfach Player, IKR . Lass es uns öffnen. Jetzt werden Sie gefragt, von welchem IK Rick Sie Animationen kopieren möchten. Ich möchte Animationen von meinem Mannequin kopieren , auf dem wir die Animationen haben Und ich möchte Animationen einfach so auf meinen Player kopieren einfach so auf meinen Player Diese beiden Charaktere werden automatisch für Sie hinzugefügt. Jetzt überlappen sie sich hier im Zielnetz. Versetzt das X hier. Ich klicke und ziehe und verschiebe dieses Zeichen einfach aus dem Weg, etwa 175 hier auf der X-Achse. Damit ich beide sehen kann. Jetzt können Sie in der IK-Tageta sehen, ich kann jetzt alle Animationen hier unten in der Kette oder im Set-Browser sehen hier unten in der Kette oder im Set-Browser Im Ketten-Mapping können Sie die Ketten sehen , die wir erstellt haben, damit es korrekt funktioniert In der Regel wird das automatisch korrekt ausgeführt. Es wird lediglich sichergestellt, dass die Wurzel für die Zielkette, also diese, identisch ist, da die Quellwurzel mit der Wurzel und die Wirbelsäule mit der Wirbelsäule verknüpft ist usw. nur sichergestellt, dass beispielsweise das rechte Bein nicht mit der Wirbelsäule verknüpft ist. Das wird falsch sein. Sie müssen mit demselben Knochen oder derselben Kette kombiniert werden , die wir erstellt haben. Normalerweise macht Unreal Engine das automatisch korrekt. Gehen wir jetzt zum Acid-Browser über , das sind die Animationen Wenn du zum Beispiel auf einen von ihnen klickst , lass uns diesen einen Spaziergang auswählen, oder? Sie können sehen, dass es fast korrekt ist. Eigentlich werde ich diese Knochen entfernen , damit wir es besser sehen können. Wenn ich auf Character Bones klicke und erst jetzt auswähle , ist das fast korrekt. Die Arme sind allerdings sehr seltsam, sonst scheint alles andere richtig zu funktionieren. Wir können es fast kopieren aber wir müssen hier etwas korrigieren. Ich werde auf Stopp klicken. Ich glaube. Hier, ja, klicken Sie auf Stopp. Wir werden die Animation beenden. Der Grund, warum es nicht korrekt kopiert wird, ist, dass die Position für dieses Zeichen dieselbe Position für dieses Zeichen sein muss. Und Sie können sehen, dass sich der Arm nicht in derselben Position befindet. Deshalb läutet es eine Ära mit den Waffen ein. In dieser Animation werde ich auf Stopp klicken. Was wir tun können, ist, einen der Knochen auszuwählen. Klicken Sie erneut auf die Charakterknochen, alle in der Hierarchie. Ich kann also alle Knochen sehen, und hier sind sie für diese Knochen. Jetzt können wir auf den Bearbeitungsmodus klicken. Der Bearbeitungsmodus ermöglicht es uns, die Pose für diesen Charakter zu bearbeiten. Jetzt kannst du zum Beispiel einen der Knochen auswählen. Du kannst ihn einfach ausprobieren, diesen auswählen und versuchen, ihn zu drehen. Sie können sehen, dass dieser nicht der ist, den Sie drehen sollten. Sie können auf Strg Z klicken, um zurückzugehen, und Sie können das nächste auswählen. Der nächste hier. Wenn du es einfach runterdrehst, einfach so, glaube ich etwa 50 Grad. Ich denke, 40 Grad sind ein bisschen zu viel. Vielleicht können wir es auf diese Weise einfach mit -50 Grad versuchen. Beim anderen klicke ich auf denselben Knochen und drehe ihn dann einfach so um -50 Grad . Genau wie dieser Typ Sie können auch sehen, dass dieser Typ hier eine Rotation am Knochen hat. Ich muss es auch hier machen. Ich muss hier auf diesen Knochen klicken. Dann kann ich es vielleicht um 30 Grad drehen. Und versuche einfach, diese beiden zu vergleichen. Klicken Sie auch auf den anderen und drehen Sie ihn einfach so um 30 Grad. Versuche einfach, einen Blick von oben zu werfen und diese beiden Charaktere zu vergleichen. In Ordnung, ich denke, sie sehen gleich aus. Lass uns die Animation ausprobieren und sehen, ob sie tatsächlich funktioniert. Ich werde den Bearbeitungsmodus verlassen . Ich werde die Knochen wieder verstecken, nur um zu sehen, wie es ohne die Knochen aussieht. Und dann werde ich auf eine der Animationen klicken. wir zum Beispiel eine aus, Wählen wir zum Beispiel eine aus, auf der er läuft oder rennt. Das ist ein bisschen besser anzusehen. Sie können sehen, dass die Hände momentan ein Problem sind, und ich denke, das liegt daran, dass wir die Arme viel zu stark nach unten gedreht haben . Gehen wir noch einmal zurück in den Bearbeitungsmodus. Ich werde mir alle Knochen ansehen, dann klicke ich auf diesen Knochen und drehe den Arm ein wenig nach oben. Wahrscheinlich das Problem, wir haben es ein bisschen zu weit nach unten gedreht . Schauen wir uns das mal an. Gehen wir vom Bearbeitungsmodus zurück. Klicken Sie hier auf die Vorderseite, lassen Sie mich einfach den Knochen entfernen, damit ich sehen kann es aussieht, wenn ich andere Animationen ausprobiere. Sie können sehen, dass alles richtig funktioniert. Der Fehler hier ist jedoch, dass im Moment die Hände nicht wirklich richtig funktionieren. Nur um sicherzugehen, dass alles korrekt ist , werde ich die Animationen beenden und sie mir aus der perspektivischen Ansicht ansehen. Hier. Aus der richtigen Sicht. Schauen Sie sich nur diese beiden Charaktere an und stellen Sie sicher, dass alles richtig aussieht. Ich gehe auch zur Vorderansicht und stelle sicher , dass alles korrekt ist , um es besser zu sehen. Hier können wir erneut auf den Charakter, Bones und dann auf die gesamte Hierarchie klicken. So können wir alle Knochen sehen und hier sind sie. Sie können sehen, dass es einen kleinen Unterschied gibt. Wenn du auf einen der Arme klicken und dann den Fangmodus für die Rotation einstellen kannst , setze ich ihn auf fünf und gehe dann in den Bearbeitungsmodus Dann lass mich ihn hier einfach ein wenig drehen. Dann drehe ich es leicht , damit es fast in die andere Hand passt. So etwas hier. Du kannst auf den anderen klicken und auch nicht auf diesen, diesen hier oben. Und drehen Sie es so, dass es auch zum anderen passt. Jetzt können Sie zur perspektivischen Ansicht zurückkehren sich diese Charaktere ansehen. Sie können es sich auch von oben ansehen, um zu sehen, wie beide aussehen. Und wenn sie gleich aussehen, denke ich, dass sie größtenteils tatsächlich gleich aussehen. Gehen wir jetzt zurück zum perspektivischen Modus. Was wir tun müssen, ist , die Hände zu reparieren, weil sie nicht gut aussehen. Wir können einfach versuchen, eine Animation laufen zu lassen. Zum Beispiel der Weg zurück nach links. Und ich werde alle Knochen entfernen, damit ich es sehen kann. Sie können sehen, dass sie gut aussehen. Beide. Die Hände sind jedoch ein bisschen durcheinander. Also müssen wir das reparieren. Lass uns zur nächsten Lektion übergehen und die Hände reparieren , bevor wir die Animationen kopieren. 23. 3.12 Fixierung der Hände: Lass uns jetzt weitermachen und die Finger reparieren. Bevor wir die Animationen kopieren, doppelklicken wir hier auf dieses Mannequin-K-Rig Ich habe die Ketten bereits hinzugefügt. Sie können hier sehen, dass Sie auch Ketten für die Finger hinzufügen müssen. Wenn Sie möchten, dass die Finger genauso funktionieren wie die anderen Körperteile, fügen Sie einfach dieselben hinzu. Der Daumen hier, dieser Daumen hier. Und dann hast du den Zeigefinger, den Mittelfinger, den Ringfinger und dann das Rosa hier. Sie müssen sie hinzufügen, wieder alle, Daumen links, Daumen rechts, Zeigefinger links, Zeigefinger rechts, Mitte links, Mitte rechts, Ring, links, Ring, rechts und kleiner Finger links und kleiner Finger, rechts Fahren Sie einfach fort und fügen Sie sie hinzu . Ich werde dir nur die ersten beiden zeigen, wie du sie wiederfinden kannst, und dann füge ich den Rest hinzu. Den ersten hier, den Daumen, du kannst hier auf den ersten klicken. Du kannst sehen, dass das der Daumen 01 ist, oder? Du kannst hier klicken und nach dem Daumen suchen. Sie können sehen, dass es mit Daumen 01 beginnt. Dieser ist der linke. Wir müssen den Daumen auswählen. 01, Links, rechter Daumen. Es endet bei Daumen 03, links. Sie können auch hier klicken, um den Namen zu sehen, aber es ist sehr einfach für diese Finger, derselbe rechte Finger, Sie können nach Daumen suchen und den richtigen auswählen. Es endet bei 033, hier drüben mit dem Zeigefinger kannst du darauf klicken Es beginnt mit Index 01. Man kann es an den Händen sehen, sie sind eigentlich unkompliziert. Wenn du einfach hier klickst und nach Index suchst, siehst du den Index 01 für links, einen für rechts, 1203 für rechts 101203, links und rechts. Hier drüben im Mittelfinger kannst du auf den Mittelfinger klicken Es beginnt mit Mitte 01. Ich werde einfach weitermachen und sie alle hier hinzufügen. Jetzt habe ich alle hinzugefügt und wir können weitermachen und auf Speichern klicken. Und Sie können sie alle hier sehen. Genau wie das, was wir hier oben gemacht haben. Okay, was ich jetzt tun kann, ich kann das beenden. Anstatt das Gleiche hier drüben hinzuzufügen, werde ich es einfach löschen. Ich werde diesen einfach löschen. Und auf Okay klicken. Es wird dir tatsächlich eine Ära bescheren weil es zu diesem IK-Rig hinzugefügt wurde. Ich werde einfach auch dieses IK-Rig löschen. Jetzt heißt es, dass hier etwas läuft und ich bin mir nicht sicher, was es will. Ich versuche das Projekt zu retten. Klicken Sie auf den Inhaltsordner, korrigieren Sie die Weiterleitungen, kehren Sie zu den Player-Animationen zurück und versuchen Sie, sie zu löschen Lassen Sie uns diesen tatsächlich löschen. K Spieler werden mir das geben. Ich werde das Projekt tatsächlich schließen und versuchen, es erneut zu öffnen, um zu sehen, ob es funktioniert. Okay, hier sind wir wieder. Ich werde diesen löschen. Und da ist es. Manchmal gibt dir Unreal Engine zufällige Fehler Lassen Sie uns das IK-Ziel nicht löschen, sondern dafür sorgen, dass es hier bleibt. Ich mache einen Rechtsklick, dupliziere mein IK-Männchen und nenne es wie zuvor IK-Spieler, gehe hier rein und tausche dieses Modell einfach gegen unseren eigenen Anti-Terror-Gegner aus Einfach so, alles ist in Ordnung. Wir können sparen. Gehen wir zurück zum IK-Ziel. jetzt beim IK-Retarget sicher, dass das IK-Manikin die Quelle und das Ziel der Spieler ist die Quelle und das Ziel der Spieler Also sieht alles gut aus. Lass es uns nochmal versuchen. Versuchen wir, eine Animation auszuführen. Wenn wir zum Beispiel nach links zurückgehen. Und ich werde einfach alle Knochen verstecken , damit ich wirklich sehen kann, was passiert. Sie können sehen, dass es auch nicht gut aussieht. Ich vermute, dass die Ketten nicht kartiert sind. Wenn du auf das Ketten-Mapping klickst, so wie ich dir schon gesagt habe, müssen sie ähnlich sein, du kannst sehen, dass sie hier eigentlich nicht identisch sind, ich muss sie verknüpfen Anstatt es manuell zu machen, versuche hier oben zu klicken und dann auf Map All Exact zu klicken. Und du kannst sehen, dass es sie alle für dich abbildet. Lassen Sie uns jetzt sehen, wie es aussieht. Sie können jetzt sehen , dass es viel besser ist. Es hält es tatsächlich, genau wie der andere Spieler, und hält die Finger nicht einfach willkürlich. Hier sind sie, wir haben das Ketten-Mapping repariert. Jetzt können Sie sehen, dass die Hand dieses Spielers verdreht ist, wie Sie hier sehen können Hier drüben ist es verdreht. Es ist jedoch nicht wirklich dein Problem, es geht nur darum, wie der Charakter gemacht ist Sie können sehen, dass es an diesem Teil des Arms etwas durcheinander ist. Es ist in Ordnung. Es bist nicht wirklich du, der etwas falsch gemacht hat. Lass uns einfach ein paar Animationen abspielen, um sicherzugehen , dass alles korrekt ist, bevor wir weitermachen. Und wenn Sie es sich nur ansehen und alles sieht gut aus. Sie können sogar sehen, dass dieser Abzugsfinger richtig hält, genau wie dieser andere Abzugsfinger auch. Okay, wir können also immer sagen, wenn du willst, dass die Arme und Hände zu 100% wie dieser Spieler sind, genau wie ich es dir zuvor gesagt habe, du kannst zur Bearbeitung gehen, die Finger leicht bewegen, wenn du daran denken willst, auf die Charakterknochen und die gesamte Hierarchie zu klicken , und du kannst versuchen, sie ein bisschen zu verschieben , wenn es etwas gibt , mit dem du nicht zufrieden bist. Und dann kannst du weitermachen und einfach eine Animation abspielen. Schau dir an, wie es aussieht, aber ich denke, das sieht vorerst wirklich gut aus. Bevor du dir vorstellen kannst oder dich daran erinnern kannst, dass die Arme nach oben geflogen sind. Jetzt sind sie alle in Ordnung und die Finger funktionieren auch. Okay, damit wollen wir auf den Charakter klicken. Nochmals, ich werde alle Knochen verstecken , weil ich sie nicht mehr wirklich sehen muss. Und jetzt speichern wir das Projekt und fahren mit der nächsten Lektion fort, in der wir die Animationen kopieren. 24. 3.13 Retargeting der Animationen: Jetzt sind wir bereit, die Animationen zu kopieren. Gehen wir zu den IQ Targeta über. Hier kannst du sehen, wenn ich auf die Animationen klicke, genau wie in der vorherigen Lektion, alles funktioniert. Jetzt sind wir bereit, alle Animationen zu kopieren. Was du tun kannst, das ist sehr einfach. Sie können auf die erste klicken und nach unten gehen, die letzte auswählen und einfach auf die ausgewählten Animationen klicken. Jetzt müssen Sie einen Ordner auswählen , in dem Sie diese neuen Animationen speichern möchten. Ich werde tatsächlich einen neuen Ordner erstellen. Um besser organisiert zu bleiben, werde ich einen neuen Ordner erstellen und ihn Assets nennen. Das mache ich normalerweise für meine Spiele. Ich kann hier klicken und lass uns weitermachen und den neuen Ordner Animationen aufrufen. Und dann kannst du weitermachen und auf Exportieren klicken. Und jetzt exportieren wir diese Animationen hierher und jetzt ist es fertig. Wenn ich jetzt die Animationen minimiere und zu meinen Assets-Animationen übergehe, können Sie jetzt sehen, dass sie alle hier sind. Wenn ich einfach auf eine von ihnen klicke, kannst du sehen, dass sie mit unserem Charakter funktioniert. Das sieht wirklich gut aus. Nein, ich glaube nicht, dass es alle Animationen sind , die ich hier sehen kann. Und das liegt daran, dass sie nicht dasselbe Mannequin benutzen. Wenn ich zurück zum Spieler gehe und wenn ich zu meinem K-Targeta, diesem Manikin hier, zurückgehe , können Sie sehen, wenn ich mit der Maus darüber halte, dass es das Skelettnetz aus dem Referenzordner 01 verwendet aus Sie können hier gerade sehen, dass es sich nur um die Animationen für die Pistole handelt nur um die Animationen für die Pistole Ich kann sehen, dass wir hier im Ordner mit den Assets-Animationen alle Pistolenanimationen kopiert haben Sie können am Ende sehen, dass sie Pistole heißen. Wir haben jedoch mehr Animationen. Sie können sehen, wenn Sie in den anderen Animationsordner gehen , den wir importiert Sie haben das Unbewaffnete und auch das Gewehr Wir können sie nicht sehen. Und warum ist das so? Wir können nur die Pistolen sehen. Das liegt daran, dass die anderen tatsächlich andere Maniquins für das Gewehr verwenden andere Maniquins für das Wenn Sie einfach die Maus darüber halten, können Sie sehen, dass es das Skelett aus dem Ordner Referenzen 02 verwendet aus dem Ordner Referenzen 02 Tatsächlich verwendet es Was wir tun können, ist , zum K-Manikin hier drinnen zurückzukehren K-Manikin hier drinnen zurückzukehren Wir können auf diesen klicken. Wenn Sie die Maus einfach über die anderen Maniquins halten , die Sie haben, zum Beispiel über dieses, wird angezeigt, dass dieses aus dem Ordner Referenzen 02 Im Moment benutzen wir das Maniq aus den Referenzen 01 klicken auf das Fahren Sie nun fort und klicken Sie auf Speichern. Gehen wir zum K-Ziel über. Jetzt können Sie in den Animationen sehen , dass die Pistole immer noch da Was wir tun müssen, ist einfach auf diesen Pfeil zu klicken , um ihn zurückzusetzen Dann klicke ich erneut und wähle das IK-Mänkin aus. Und fahren Sie fort und klicken Sie auf Speichern. Jetzt können Sie sehen, dass es sich nicht mehr um die Pistole handelt, sondern um alle Gewehranimationen , sodass Sie alle Gewehranimationen auswählen Ausgewählte Animationen exportieren. Und ich werde sie erneut in den Animationsordner exportieren . Fahren Sie fort und exportieren Sie sie, wenn sie exportiert wurden. Ich gehe zurück zu meiner IK-Puppe. Ich wähle das Manikin aus dem Ordner References 03 aus, das du Ordner References 03 aus, das Geh zurück zur Ktageta. Ich werde hier oben erneut auf den Pfeil klicken , um ihn zurückzusetzen Dann wähle ich wieder das Mannequin aus und stelle sicher, dass am Ende UA steht , was unbewaffnet bedeutet Das sind alle unbewaffneten Animationen. Und du kannst darauf klicken, um zu sehen, wie es aussieht. Fahren Sie fort und wählen Sie alle erneut aus. Und fahren Sie fort und klicken Sie auf Ausgewählte Animationen exportieren und exportieren Sie sie erneut in den Animationsordner. Klicken Sie auf Exportieren. Jetzt schließen wir alles und werfen einen Blick auf den Animationsordner. Jetzt hast du alle Animationen hier. Du kannst also sehen, wenn du sie anklickst, sie sehen ein bisschen albern Und das liegt nicht daran, dass wir etwas falsch gemacht haben, es ist tatsächlich die Animation , die meiner Meinung nach ein bisschen albern aussieht, aber sie ist in Wir haben nicht wirklich bessere Animationen. Und diese sind kostenlos und wir können sie verwenden. Sie können hier also all diese Animationen sehen , wirklich, wirklich nett. Und wir können sie verwenden , um unser Spiel zu erstellen. Okay, jetzt funktioniert also alles für den Charakter. Und du kannst sehen, dass alles großartig aussieht. Und manchmal können wir einige dieser Animationen anpassen. Man kann sehen, wenn er auf den Boden schaut, es ist meiner Meinung nach viel zu viel auf dem Boden. Und das können wir später anpassen. Aber Sie können sehen, dass alles gut funktioniert. Und so kopiert man Animationen von einem Charakter zum anderen. wir also auf Speichern und fahren wir mit der nächsten Lektion fort. 25. 3.14 Einführung in die Mischräume: In Ordnung, also lasst uns weitermachen und einen Blend Space erstellen. Und ein Verschmelzungsraum wird nur verwendet, um zwei Animationen miteinander zu verschmelzen. Und das können wir im Animations-Blueprint verwenden. Später. Sie können sehen, dass ich gerade meinen Blueprint-Ordner eingefärbt habe , nur um ihn schneller zu sehen oder Denken Sie auch hier daran, dass Sie dies tun können indem Sie all diese Ordner Klicken Sie mit der rechten Maustaste auf Gehe zu Farbe festlegen, klicken Sie dann auf Neue Farbe und wählen Sie einfach die Farbe aus. So fügen Sie Ordnern Farben hinzu. Jetzt innerhalb des Blueprint-Ordners in den Animationen. Lass uns weitermachen und hier mit der rechten Maustaste klicken. Gehen Sie zu Animation und wählen Sie diesen sogenannten Blend Space aus. Auch hier können Sie in einem Verschmelzungsbereich zwei Animationen miteinander verbinden. Zum Beispiel die Leerlaufanimation und die Run-Animation. Diese können wir später im Animations-Blueprint verwenden. Lassen Sie uns weitermachen und es vorerst erstellen. Jetzt werden Sie aufgefordert, ein Skelett auszuwählen. Du musst das Skelett für deinen Charakter auswählen. Für diesen werde ich den MW-Stil wählen. Das ist der Anti-Terrorist und das ist der Terrorist. Ich werde den Anti-Terror-Modus wählen, weil ich mich daran erinnere, dass wir in den Animationen die Animationen tatsächlich auf diesen Anti-Terror-Gegner ausgerichtet haben Ich werde das Skelett für die Terrorismusbekämpfung auswählen. Ich nenne es BS für Blend Space. Dann nenne ich es einfach Run danach. Normalerweise nenne ich es zum Beispiel so, dass ich die unbewaffneten Blende-Spaces mache , weil wir später den Lauf mit dem Gewehr und den Lauf auch mit der Pistole machen Gewehr und den Lauf auch mit der Pistole Dieser heißt Run Armed. Doppelklicken wir darauf , wenn Sie es öffnen. Das ist der Blend Space. Hier auf der linken Seite haben Sie ein Detailfenster. Sie können Dinge wie die Animation, die Bewegungsgeschwindigkeit, die Bewegungsrichtung usw. glätten die Bewegungsgeschwindigkeit, die Bewegungsrichtung , aber damit werden wir später mehr arbeiten. Hier unten, sehr, sehr wichtig, Sie haben ein Diagramm. Und hier fügst du all deine Animationen hinzu. Hier mischen Sie die Animationen zusammen, und das werden wir in der nächsten Lektion auf der rechten Seite tun . Mach dir darüber nicht zu viele Gedanken. Drinnen haben wir nicht wirklich viel zu tun. Aber hier unten kannst du alle Animationen sehen. Wenn Sie einfach auf eine von ihnen doppelklicken , zum Beispiel auf diese, doppelklicken, können Sie alle Animationen hier in diesem Animationsplayer sehen . Wenn Sie darauf doppelklicken, können Sie sehen, dass Sie sich außerhalb des Blend-Bereichs befinden . Jetzt kannst du dieses Diagramm nicht mehr sehen, wenn du einfach herumblätterst. Sie können es entweder hier wieder öffnen , indem Sie hier klicken. Aber du kannst es jetzt auch mit den Animationen sehen. Du kannst es hier unten sehen. Das ist die Farbe für den Blend-Space. Sie können darauf doppelklicken und es wieder öffnen, einfach so. Sehr, sehr einfach. So machen wir das. Und wir können zum Beispiel auf eine Animation klicken und sie ziehen. Lassen Sie uns diese eigentlich nicht verwenden. Diese sind ein Offset. Lassen Sie uns diese Animationen verwenden. Wir werden später mit dem Ziel-Offset arbeiten. Lass uns einfach mit einer der Animationen arbeiten. Sie können klicken und ziehen, um sie im Diagramm zu platzieren. Und dann kannst du sehen, dass dieser Typ jetzt automatisch läuft. Und du kannst eine weitere Animation ziehen und sie einfach irgendwo platzieren. Und jetzt können Sie sehen, dass sie sich tatsächlich vermischen. Wenn Sie die Taste auf Ihrer Tastatur gedrückt halten und Ihre Maus einfach von hier nach hier bewegen, können Sie sehen, dass sie jetzt miteinander verschmelzen. Okay, wirklich cool. Vorerst war das nur eine Übung. Lass uns auf diesen klicken, auf der Tastatur auf Löschen klicken. Klicken Sie auf diesen, klicken Sie auf der Tastatur auf Löschen. Lass uns weitermachen und speichern. Und fangen wir mit der nächsten Lektion an, in der wir unbewaffnete Blend Spaces hinzufügen 26. 3.15 Unbewaffnete Mischräume: Jetzt sind wir bereit, die unbewaffneten Linsenräume zu erstellen . Fangen wir hier an. Womit ich normalerweise beginne , ist hier im Detailbereich. Wir haben eine horizontale Achse und eine vertikale Achse. Wenn Sie einfach auf die kleinen Pfeile klicken, können Sie all diese Informationen sehen. Normalerweise haben wir auf der horizontalen Achse die Bewegungsrichtung. Mach einfach weiter und nenne es Bewegungsrichtung. Sie können auch sehen, dass der Name geändert wird. Hier unten haben wir die Bewegungsgeschwindigkeit. Das ist die vertikale Achse. Nennen wir es Bewegungsgeschwindigkeit. Was nun die Bewegungsrichtung angeht, gehen wir von einem Minimalwert zu einem Maximalwert über. Das Minimum ist minus 180 Grad, das Maximum ist 180 Grad. So können wir uns um 360 Grad drehen. Nun zur Bewegungsgeschwindigkeit Normalerweise mache ich hier zum Beispiel das Laufen. Wenn wir zum Charakter übergehen, wenn wir auf den Spieler und dann auf die Spielerbasis klicken, klicken wir innerhalb der Spielerbasis auf die Bewegungskomponente. Du kannst hier sehen, dass die maximale Gehgeschwindigkeit, die auch die Laufgeschwindigkeit ist, momentan 600 beträgt. Normalerweise stelle ich sie auf etwa die Hälfte von dem ein, was hier geschrieben steht. Denn wenn Sie 600 schreiben, müssen Sie die Geschwindigkeit von 600 erreichen , bevor Sie vollständig zu dieser Animation übergehen können. Sie zur laufenden Animation übergehen möchten, schreibe ich normalerweise 300 denn wenn ich die Geschwindigkeit von 300 erreiche, was ich sehr schnell mache, weil meine volle Geschwindigkeit bei 600 liegt, dann gehe ich viel schneller zur Laufgeschwindigkeit über. Normalerweise mache ich es einfach niedriger als das, was es ist. Ich schreibe einfach 300 für diesen, für die Bewegungsrichtung. Ich werde hier die Rasteraufteilungen erhöhen , weil ich mehr als vier Animationen habe. Ich werde acht schreiben. Wir haben eine Bewegung in acht Richtungen. Sie können jetzt sehen, dass ich hier mehr Zeilen habe. Und so wollen wir es haben. Und das ist das Einzige, was du hier drinnen machen willst. Lassen Sie uns vorerst auf Speichern für dieses Detailfenster klicken. Nun hier in der Grafik, was Sie jetzt tun können, ist , dass wir die Run-Animation für die Unbewaffneten hier unten mit Geschwindigkeit Null machen wollen die Run-Animation für die Unbewaffneten hier unten mit Geschwindigkeit Null Hier haben Sie die Animation im Leerlauf bei einer Geschwindigkeit von Null Wir stehen einfach still. Wenn wir hier drüben nach Idle suchen, dieser heißt Idle Armed. Nehmen wir diesen. Untätig, unbewaffnet, lass es uns schleppen Und wir müssen es hier runterlassen, wo die Bewegungsgeschwindigkeit Null ist Wenn Sie nun beim Ziehen die Umschalttaste gedrückt halten, können Sie sehen, wie es im Raster einrastet . Und das ist es, was ich will Ich will es hier aufschreiben. Wenn du es platzierst, kannst du sehen der Charakter jetzt im Leerlauf befindet und eine Animation im Leerlauf Lassen Sie uns das nun erneut anklicken und ziehen. Halten Sie die Umschalttaste gedrückt, um es einzufangen. Klicken Sie einfach darauf und ziehen Sie es in all diese Rasterpunkte hier unten. Nehmen Sie einfach die Animation im Leerlauf bis hierher. Es ist nur die Animation im Leerlauf , weil die Geschwindigkeit Null ist. Jetzt hier drüben, wenn die Geschwindigkeit voll ist, nimm die Run-Animation. Wenn ich jetzt nur nach Run suche, sind wir im Unbewaffneten. Wenn du einfach hierher gehst, kannst du sehen, dass dieser Forward heißt B bedeutet rückwärts. B L bedeutet zum Beispiel hinten links und B R bedeutet hinten rechts und so weiter In diesem Fall wollen wir vorwärts rennen, aber da wir unbewaffnet sind, laufen wir hier vorwärts. Und du kannst dir vorstellen, dass dieser als unbewaffnet bezeichnet wird. Sie können diesen wieder ziehen, Umschalttaste gedrückt halten und ihn hier ablegen Wenn Sie nun die Strg-Taste auf der Tastatur gedrückt halten und die Maus bewegen, können Sie sehen, dass Sie von der Adle-Animation aus wechseln können von der Adle-Animation aus Und wenn Sie die Maus bewegen während Sie die Taste auf Ihrer Tastatur gedrückt halten, können Sie zu dieser wechseln Sie können sehen, wie es aussieht. Und genau das ist ein Blend Space. Jetzt hier drüben , ich werde auf diese Schaltfläche klicken, um dir die Namen der Beispiele zu zeigen, damit du sehen kannst, was ich platziert habe , und es wird auch für dich einfacher sein. Also hier drüben, anstatt nach Run zu suchen, werde ich einfach so nach Unarmed suchen Ich denke, es wird einfacher für mich sein und ich kann all meine Run-Unwaffen-Animationen sehen Also hier rechts, wir haben vorne rechts Dieser heißt vorne rechts. Ich werde es hier fallen lassen. Dann haben wir das Recht hier drüben. Dann nehme ich den, der rechts heißt. Lass es hier fallen. Dann ist dieser wieder da, oder? Ich nehme die Rückseite. Gleich am Ende, an der Ecke, ist die Rückenbewegung. Ich nehme die Rückseite und lege sie hier hin, damit Sie sehen können, ob ich die Kontrolle habe, und ich gehe langsam zu ihr über. Du kannst sehen, dass sich mein Charakter verändert. Einfach so, alles sieht richtig aus. Er geht rückwärts und dann geht er zurück. Denn dieser ist genau das Gegenteil davon. Das ist die linke Seite, also vorne links laufen. Also nehme ich diesen vorne links, halte die Umschalttaste gedrückt, platziere ihn und dieser ist links. Ich suche nach links und dann nach hinten links, diesen mit dem Namen „Zurück links“ und diesen, der wieder zurück gerufen wird. Genau wie in der anderen Ecke haben wir hier die Rückenbewegung und wir haben auch hier die Rückenbewegung. Weil wir uns um 360 Grad drehen. Ordnung, das ist also meine Animation und alles sieht richtig aus. Also so sollte es aussehen. Also haben wir die vordere Bewegung und dann haben wir die linken Bewegungen und die rechten Bewegungen. Und jetzt sind wir tatsächlich fertig mit dem Laufen auf dem Arm, sodass Sie die Kontrolle behalten können. Schau, wie es aussieht , wenn du übergehst. Jetzt musst du das auch mit den anderen machen. Also werde ich Ihnen nur noch ein kurzes Beispiel geben. Ich werde es einfach schnell durchgehen. Wenn du jetzt einfach zu den Spieleranimationen zurückkehrst, lass uns mit der rechten Maustaste klicken, zu den Animationen gehen einen neuen Blend Space erstellen. Wählen Sie den Charakter erneut aus, das Skelett, das wir erstellt haben, nennen Sie es PS. Dieses Mal nenne ich es Hocken, weil wir uns jetzt ducken Und nochmal, nenne es unbewaffnet. Bei letzterem klicken wir nochmal mit der rechten Maustaste. Gehen wir zur Animation. Gehen Sie zu Blend Space und wählen Sie das Skelett aus. Dieser läuft, weil wir jetzt laufen und ihn unbewaffnet nennen Den müssen wir auch machen. erneut auf die Hocke klicken , hier auf der horizontalen Achse, haben wir die Bewegungsrichtung Dann haben wir die Bewegungsgeschwindigkeit. Als Bewegung bewegen wir uns von minus 180 auf 180. Die Rastereinteilung ist acht, weil wir acht Bewegungen haben, die wir hier zusammenzählen müssen, um die Bewegungsgeschwindigkeit zu bestimmen. Auch dieser ist für das Hocken gedacht. Nun, das Hocken ist viel langsamer als die Gehgeschwindigkeit. Auch hier können Sie zur Spielerbasis zurückkehren, wenn Sie möchten Klicke auf die Bewegungskomponente und sieh dir die Duckgeschwindigkeit an Im Moment sind es 300. Ich werde es einfach auf 150 setzen, vorerst die Hälfte davon. Später werden wir all diese Bewegungen ändern, weil wir den Spieler im Spiel testen müssen und sehen müssen, wie schnell er läuft. Und wir können jederzeit hierher kommen und diesen Wert hier ändern, okay? Jetzt, wo wir das hier auf der rechten Seite haben, brauchen wir das, ist die Hocke drauf, bewaffnet in der Hocke Wir schreiben einfach Unterstrich, haben wir all diese Hockereien Der erste ist der ungenutzte. Den nehme ich, während ich untätig hocke. Ich nehme die Schicht und lege sie hier hin. Einfach die gleiche Hocke an all diesen Punkten hier unten im Leerlauf anklicken und ziehen all diesen Punkten hier unten im Leerlauf Denn auch hier ist die Bewegungsgeschwindigkeit Null. Wir sind nur im Leerlauf. Als Nächstes haben wir die Frontbewegung. Wir nehmen hier die Front an, unbewaffnet. Dann sind hier die richtigen Bewegungen. Dieser ist vorne, rechts, zieht vorne nach rechts. Die andere Seite ist vorne links, vorne rechts, vorne links Dann haben wir hier die rechte, die rechte und die linke ist auf der anderen Seite. Auf diesem ist hinten rechts, rückwärts nach rechts gezogen. Auf der anderen Seite ist hinten links. Und dann haben wir die Rückenbewegung auf diesen Seiten. Wir können wieder die Kontrolle behalten. Mal sehen, wie es aussieht. Alles sieht gut aus. Mach weiter und speichere. Und ich mache gerade den letzten und melde mich bei dir. Ordnung, hier bin ich mit dem Laufen fertig und kann die Beschriftungen aktivieren, sodass Sie sehen können , was ich zuvor gemacht habe. Die rechten Bewegungen, die linken Bewegungen und auch die Bewegungen im Leerlauf hier unten. Nichts Neues. Lass uns weitermachen und speichern und lass uns weitermachen und es schließen. Und hier haben wir alle Mischräume für die unbewaffnete Bewegung Später müssen wir es auch für das Gewehr und für die Pistole noch einmal neu erstellen, aber darüber sollten wir uns vorerst Gewehr und für die Pistole noch einmal neu erstellen, keine Gedanken machen Lassen Sie uns zum Animationsentwurf übergehen. 27. 3.16 Einführung in die Animations-Blueprints: Jetzt sind wir bereit, mit Animations-Blueprints zu arbeiten. Lassen Sie uns im Ordner Blueprints weitermachen. Ich gehe in den Player-Ordner. Animationsordner. Hier. Ich klicke mit der rechten Maustaste und gehe zu Animation. Und wählen Sie dann diesen sogenannten Animations-Blueprint aus. Jetzt müssen wir das Skelett für den Spieler auswählen , für den wir es machen Ich mache es gerade für diesen Cando Terris. Ich mache weiter und wähle das Skelett aus. Fahren Sie fort und klicken Sie auf Erstellen. Nennen wir es einfach einen MBP-Player. Jetzt doppelklicken wir und öffnen diesen Animations-Blueprint Ein Animations-Blueprint besteht aus zwei Teilen. Der erste Teil ist dieses Animationsdiagramm. dieses Animationsdiagramm fügen In dieses Animationsdiagramm fügen wir die Animationen und Sie können sehen, wenn Sie hier die rechte Maustaste gedrückt halten Sie können in diesem Animationsdiagramm herumblättern . Wir fügen die Animationen hier ein. Und der zweite Teil ist dieses Ereignisdiagramm. In das Ereignisdiagramm schreiben wir den Code für die Bewegung. Wir haben den Codeteil und dann haben wir den Animationsteil , in dem wir die Animationen hinzufügen. Fangen wir hier im Animationsdiagramm von vorne an. Sie können auf der rechten Seite sehen, dass Sie alle Animationen haben , die Sie hier sehen können. Sie können es sogar anklicken und in das Animationsdiagramm ziehen und Sie können sie einbinden und kompilieren und so weiter. Und Sie können sehen, wenn Sie es anschließen, Sie können sehen, wie sich der Player im Leerlauf befindet , und Sie können die Animation sehen Jetzt arbeiten wir mit Animationsüberblendungsräumen, nicht nur mit diesen Animationen hier. Lassen Sie uns diesen löschen. Anstatt hier einfach eine Animation einzufügen, klicken wir mit der rechten Maustaste und suchen nach State Machine Wählen wir diesen einen State Machine aus. Fahren Sie fort und benennen Sie diesen um. Ich nenne es unbewaffnete Bewegung, weil wir später Bewegung mit der Pistole und auch Bewegung mit dem Gewehr haben der Pistole und auch Bewegung mit dem Gewehr Nehmen wir das, verbinden es hier und kompilieren wir es. Und Sie können sehen, dass Sie eine Warnung erhalten , weil dieser gerade leer ist. Doppelklicken wir auf diese Zustandsmaschine wir hier erstellt haben. Wenn Sie hier klicken und ziehen, haben Sie nicht viele Dinge, die Sie hier tun können. Das Einzige, was wir tun wollen, ist einfach diesen Staat zu schaffen. Klicken Sie auf einen Status und nennen wir diesen einen Leerlauf. Und jetzt können wir sehen, dass Sie diesen Zustand haben. Wenn Sie jetzt hier auf diesen Status doppelklicken, können Sie jetzt die Animation hinzufügen. Lasst uns diese unbewaffnete Bewegung einfach hier starten. Das ist der, mit dem wir gerade arbeiten. Schließen wir es an und klicken wir auf Kompilieren. Jetzt können Sie sehen, dass die Ära jetzt verschwunden ist . Wenn Sie zum Animationsdiagramm zurückkehren möchten , können Sie hier nach oben klicken. Sie können sehen, dass Sie keinen Tab haben. Sie müssen nur hier oben klicken und schon sind Sie wieder im Animationsdiagramm. Sie können sehen, dass die Ära verschwunden ist. Wir haben die unbewaffnete Bewegung hier drinnen miteinander verbunden. Und wir haben diesen Zustand, den Leerlaufzustand Später werden wir weitere Staaten schaffen. Wenn Sie zum Beispiel auf einen Status ziehen, erstellen wir den Zustand Hocken und dann einen weiteren Status Vielleicht möchten wir den Walk-Status erstellen und so weiter. Aber vorerst nur der Idle-Run-Status. Drinnen haben wir diesen Blend-Raum, den wir zuvor geschaffen haben. Jetzt können wir sehen, dass der Verschmelzungsraum zwei Eingaben benötigt. Wenn ich zum Run-Bereich hier zurückkehre , kannst du sehen, dass wir die Bewegungsrichtung und die Bewegungsgeschwindigkeit erstellt haben . Das ist es, was es will. Sie will diese beiden Werte. Wenn ich hier zum Beispiel nur eine statische Zahl in die Bewegungsgeschwindigkeit schreibe , nehmen wir an, ich bewege mich mit einer Geschwindigkeit von 400. Und wenn ich kompiliere, kannst du sehen, dass der Charakter korrekt läuft. Wenn ich auch nur die Richtung ändere, zum Beispiel 90 Grad schreibe, können wir kompilieren, das funktioniert auch korrekt. In Ordnung, sehr cool. Nun, wir wollen hier nicht wirklich statische Zahlen, wir wollen sie durch Code im Event-Graph berechnen. Machen wir weiter und machen das in der nächsten Lektion. Lassen Sie uns vorerst einfach kompilieren und hier noch einmal 00 schreiben. Lass uns alles speichern und lass uns weitermachen. 28. 3.17 Bewegungsgeschwindigkeit und -richtung: Um die Bewegungsgeschwindigkeit und die Bewegungsrichtung zu berechnen, gehen wir zum Van-Diagramm Anstatt von hier aus zu beginnen, klicken wir jetzt mit der rechten Maustaste und suchen nach Initialisieren Und wählen Sie diese Option namens Blueprint Initialize Dieses Event ist, es ist wie das Begin-Play. Wenn du dich erinnerst, wenn ich zur Spielerbasis zurückkehre, verwenden wir dieses Spiel, das als Begin Play bezeichnet wird. Was sollte passieren, wenn ich anfange, das Spiel zu spielen? In Animations-Blueprints heißt das einfach Blueprint, Animation initialisieren Was passiert, wenn Sie diesen Blueprint initialisieren? Das ist hier dasselbe. Was Sie tun möchten, nehmen Sie diese Funktion hier und versuchen Sie, den Pfandbesitzer zu Lass uns von hier aus weiterleiten und sagen, dass es gültig ist. Und fahren Sie fort und wählen Sie dieses aus, bei dem das Fragezeichen gültig ist. Jetzt fragen wir, ob der Spieler gültig ist, ob der Spieler in der Welt erschienen Wenn der Spieler gespawnt ist, klicken wir mit der rechten Maustaste darauf, dass zu einer Variablen hochgestuft wurde, nennen ihn Spielerfigur und Verbindung zu dem her, der hier gültig ist Was wir hier einfach machen ist, dass wir diese Spielfigur fragen, ob dieser Spieler diesen Spieler auf der Welt erscheinen lässt Du kannst dir Counterstrike vorstellen. Wenn Sie eine Verbindung herstellen, müssen Sie auswählen ob Sie ein Terrorist oder ein Anti-Terrorist sein möchten Wenn der Spieler jetzt noch keinen Terroristen oder Anti-Terroristen ausgewählt hat, ist der Spieler noch nicht in der Welt erschienen Es macht keinen Sinn, all diesen Animationscode zu verwenden, wenn der Spieler noch nicht einmal gespawnt Wir überprüfen nur, ob der Spieler spawnt hat, ob der Spieler gültig ist, ob der Spieler innerhalb der Welt platziert ist Wenn nicht, wollen wir warten. Schreiben wir hier einfach Delay und wählen dieses Delay aus. Wir werden den Code um sagen wir 0,3 Sekunden verzögern. Wenn diese Verzögerung beispielsweise abgeschlossen ist, werden wir loslegen. Das ist wieder gültig, denn wenn der Code nicht gültig ist, wenn der Spieler noch nicht gespawnt ist, wollen wir hier nicht stecken bleiben. Wenn wir hier nichts hinzufügen, wird der Code einfach aufhören Und das will ich nicht, ich will, dass diese Spieler-Pon-Variable gesetzt wird, wann immer der Spieler wieder erscheint. Ich werde weiter überprüfen, ob der Spieler gespawnt ist. Ich werde den Code verzögern, wenn er nicht gültig ist , und dann werde ich ihn erneut ausführen Und jetzt können wir darauf doppelklicken, um neue Routenknoten zu erstellen, um ihn etwas übersichtlicher zu gestalten. So etwas in der Art. Hier verzögern wir den Code immer weiter, wenn der Spieler noch nicht gespawnt hat, bis der Spieler spawnt und es wird diese Spielerschmerzvariable erzeugen Jetzt können wir diese Spielerbauernvariable nehmen und sie hier platzieren Wenn du sie hier nimmst, kannst du entweder die Variable abrufen oder die Variable setzen Um es einfach schnell zu machen, können Sie die Steuerung gedrückt halten und sie hineinziehen, sodass sie automatisch abgerufen wird. Wenn du die Alt-Taste gedrückt hältst und es hierher bringst, wird die Variable gesetzt. Dies sind nur Abkürzungen Strg-Taste gedrückt und halten Sie die Alt-Taste gedrückt, während Sie sie ziehen. Okay, wir bekommen also diese Spielerbauernvariable. Klicken wir nun mit der rechten Maustaste auf diese Variable und konvertieren sie in eine validierte Variable. Nun, was das macht, ist, es jetzt hier zu verbinden. Wir überprüfen erneut, ob der Spieler gültig ist, ob der Spieler verpfändet wurde Nur um sicherzugehen, dass wir diesen Code nur ausführen , wenn der Spieler gespawnt ist Weil du sehen kannst, ob ich jetzt kompiliere, läuft der Code jetzt Und du kannst sehen, dass das unendlich läuft, weil wir noch nicht gespawnt haben Es wird aufhören zu laufen, wenn wir spawnen. diesen betrifft, so wird er immer ausgeführt, das Blueprint-Update, die Animation wird immer Und es ist immer nett zu überprüfen, ob der Spieler gespawnt ist , weil wir diesen Code nicht ausführen wollen, wenn ein Val-Spieler noch nicht gespawnt Okay, um nun die Bewegungsgeschwindigkeit zu berechnen, lasst uns mit diesem Spieler zuschlagen, Suchen wir nach Geschwindigkeit und holen wir uns das, was Geschwindigkeit heißt Das ist eigentlich das Einzige, was wir tun müssen. Wenn ich jedoch hier im Animations-Blueprint zurückkehre und in meinen Status „Leerlauf“ zurückkehre, können Sie das Plug-In sehen Es will die Eingabe, die es will, es ist eine Variable vom Typ Float Es ist kein Vektor. Sie können sehen, wenn ich zu meinem Entlüftungsdiagramm zurückkehre, das ist ein Vektor. Wir können es hier nicht wirklich einstecken. Was wir tun können, um einen Vektor in einen Float zu verwandeln, können wir aus diesem ziehen und nach der Länge suchen. Wir können diese Vektorlänge wählen, wodurch sie tatsächlich in eine Variable vom Typ Float umgewandelt wird. Wir können mit der rechten Maustaste darauf klicken und es jetzt zu einer Variablen heraufstufen und es Bewegungsgeschwindigkeit nennen. Jetzt verbinden wir es hier mit dem gültigen S. Und jetzt haben wir die Bewegungsgeschwindigkeit. Das ist eigentlich sehr einfach. So macht man es. Du ermittelst die Geschwindigkeit des Spielers. Wir haben die Vektorlänge gewählt , weil wir die Variable in eine Float-Variable umwandeln wollen . Und dann haben wir hier die Bewegungsgeschwindigkeit. Um nun die Bewegungsrichtung zu berechnen, können wir von hier aus ziehen und nach berechnen suchen. Und du kannst dir diese Methode ansehen, die als Richtung berechnen bezeichnet wird. Wie dieser hier jetzt, er verlangt nach einer Rotation. Was ihr tun könnt, ist, direkt vom Spieler Rotation zu suchen. Dieser bekommt die Rotation der Akte. Lassen Sie uns jetzt weitermachen und es anschließen. Wenn Sie mit Blueprint noch nicht vertraut sind, wissen Sie manchmal nicht, wie diese Funktionen heißen Wenn es zum Beispiel nach einer Rotation fragt, kannst du einfach von hier aus weiterleiten und Rotation schreiben Das habe ich gemacht , als ich angefangen habe. Als ich fertig war, habe ich einfach Rotation geschrieben und versucht zu lesen, was all diese Funktionen sind. Danach wähle ich aus diesen aus. Jetzt wird es eine Weile dauern, wenn du neu bist. Dies wird jedoch einfach immer wieder gemacht und es wird für Sie zum Muskelgedächtnis. Mach dir darüber keine Sorgen, übe einfach weiter. Wir bekommen die Schauspieler-Rotation, wir schließen das hier Wir berechnen die Richtung. Jetzt können wir mit der rechten Maustaste darauf klicken, daraus eine Variable machen und sie Bewegungsrichtung nennen. Jetzt haben wir auch die Bewegungsgeschwindigkeit und die Bewegungsrichtung berechnet . Lass uns weitermachen und kompilieren. Und jetzt haben wir diesen Code hier. Gehen wir hier in den Idle-Run-Status. Auch hier können Sie auf das Animationsdiagramm klicken. Sie können auch hier auf das Animationsdiagramm klicken. Oder gehen Sie hier drüben in den Ruhezustand , links, hier drinnen. Lassen Sie uns unsere Bewegungsgeschwindigkeit erhöhen. Stecken Sie es in die Bewegungsgeschwindigkeit und ziehen Sie die Bewegungsrichtung, stecken Sie es in die Bewegungsrichtung. Lass uns jetzt weitermachen und kompilieren. Bevor wir spielen können, können Sie sehen, ob ich jetzt spiele, nichts passiert, weil wir den Animationsentwurf im Player nicht verwendet haben den Animationsentwurf im Player nicht verwendet Gehen wir zur Spielerbasis. Gehe zum Viewpo, klicke auf den Player oder auf das Mesh. Hier drüben, hier oben siehst du den Animationsmodus. Benutze den Animations-Blueprint, das ist richtig. Die Animationsklausel, wir müssen unseren Blueprint auswählen und uns auf Compile klicken lassen Und jetzt können Sie sehen, dass der Player hier im Viewboard animiert ist Lass uns auf Play klicken und lass es uns ausprobieren. Wenn ich auf W klicke, um vorwärts oder rückwärts zu gehen, gehe ich auch zu den Seiten Ich wechsle zu allen anderen Websites. Sie können sehen, dass es richtig funktioniert. Fantastisch. Die Animationen, die wir angeschlossen haben, funktionieren korrekt. Was nun die Bewegungsgeschwindigkeit angeht, werden wir diese später ändern , also mach dir darüber keine Sorgen Ich kann auch sehen , dass der Spieler im Vergleich zur Umgebung tatsächlich sehr klein ist . Also müssen wir das auch reparieren. Aber darüber sollten wir uns vorerst keine Gedanken machen. Alles funktioniert richtig. Und lass uns zur nächsten Lektion und die Hocke erstellen 29. 3.18 Multiplayer-Crouch-Input: Lassen Sie uns nun die Eingabe für das Hocken im Spielerordner erstellen Hocken im Spielerordner Ich gehe in den Eingabeordner. Auch hier klicken wir mit der rechten Maustaste, gehen zu Eingabe und erstellen diese eine Eingabeaktion. Lassen Sie uns das nochmal Crouch nennen . Lassen Sie uns nun unseren Input-Mapping-Kontext hier öffnen Input-Mapping-Kontext hier Lassen Sie uns dieses neue Mapping hinzufügen. Jetzt haben wir das schon einmal gemacht. Ich werde es etwas schneller machen dieses Mal diese Hocke hier erstellen Für die Hocke klicke ich hier und benutze meine linke Steuertaste Jetzt können Sie eine beliebige Taste für die Auslöser auswählen . Ich werde hier auf das Plus klicken Und ich möchte nur, dass diese Hocken-Aktion ausgelöst wird , wenn ich die Taste drücke Denn wenn du das hier gedrückt nicht hinzufügst, läuft das tatsächlich sehr schnell, viele Male pro Sekunde Genau wie die Bewegung hier, wenn du keine Trigger hinzufügst, läuft sie einfach ununterbrochen. Dies wird jedoch nur einmal ausgelöst , wenn Sie darauf drücken. Und das macht den Code nur optimierter. Nicht nur gedrückt, ich möchte auch hier klicken und Freigegeben auswählen. Weil ich mich ducken möchte, wenn ich meine Taste loslasse, entweder gedrückt oder losgelassen Okay, lass uns weitermachen und das jetzt speichern . Lass es uns schließen. Gehen wir jetzt zurück zum Player. Und innerhalb des Players öffnen wir die Spielerbasis. Nochmals hier unten, Rechtsklick, Suche nach IA Crouch oder wie auch immer du die Eingabeaktion nennst . Wählen Sie hier die Veranstaltung Nun hier unten im Aktionswert musst du von hier aus ziehen und einen Zweig schreiben und ihn mit dem ausgelösten verbinden. Das Wahre hier wird abgespielt, wann immer du die Taste drückst. Wenn ich einfach von hier ziehe und eine Druckzeichenfolge schreibe und ich einfach gedrückt schreibe. Nun, es ist immer nett, Print-Zeichenketten hinzuzufügen , wenn Sie den Code debuggen Wenn Sie eine Ära in Ihrem Code haben, ist es sehr, sehr gut, Print-Zeichenketten überall im Code zu schreiben , sie zum Beispiel hier in der Mitte des Codes einzufügen, um zu sehen, ob sie funktionieren, und so sie zum Beispiel hier in der Mitte des Codes einzufügen, um zu sehen, ob sie funktionieren, und Es ist immer nett, mithilfe von Print-Strings zu debuggen. Jetzt können wir Syrien debuggen und sehen, ob es funktioniert. Wenn ich darauf drücke, sollte es gedrückt heißen. Wenn ich es loslasse, sollte es einfach veröffentlicht stehen. Wenn ich kompiliere, wenn ich jetzt auf Play klicke, wenn ich auf Control klicke, nur einmal, und wenn ich loslasse, heißt es jetzt veröffentlicht. Sie können die Pressemitteilung sehen. Pressemitteilung veröffentlicht. Okay. Jetzt funktioniert es richtig. Also können wir diese vorerst löschen und mit der nächsten Lektion fortfahren. 30. 3.19 Multiplayer-Crouch-Funktion: Ordnung, also lass uns weitermachen und hocken. Um in die Hocke zu gehen, musst du nun auf die Bewegungskomponente des Charakters klicken Suchen Sie hier oben einfach nach Crouch und klicken Sie auf diese Funktion namens Can Wenn du das nicht angekreuzt hast, kannst du dich nicht wirklich ducken und es wird nichts passieren Denkt daran, zur Komponente „ Charakterbewegung“ zu gehen, nach „Crouch“ zu suchen und diese Option, „Crouch“, auszuwählen Okay, jetzt klicken wir noch einmal auf dieses T it. Nun zur Hocke, wir können einfach weitermachen und hierher ziehen und Crouch sagen Das wird einfach perfekt für einen Einzelspieler funktionieren. Wir arbeiten jedoch mit dem Mehrspielermodus, sodass wir ihn über einen Server ausführen müssen. In Honorable Engine gibt es jetzt etwas , das als Client und Server bezeichnet wird Wenn du hier oben klickst und die Anzahl oder Anzahl der Spieler auf zwei setzt , und im Ith-Modus stellst du es so ein, dass es als Listen-Server abgespielt Wenn du hier auf Play klickst, kannst du jetzt sehen, dass sich zwei Fenster öffnen und wir arbeiten jetzt mit Multiplayer. In Honorable Engine haben Sie jetzt den Server und den Client Jetzt ist der Server das wahre Spiel. Und was heißt das? Der Server hat die Autorität des Spiels. Und das bedeutet, dass der Server tun kann, was der Server will. Nehmen wir zum Beispiel an, hier im Multiplikator-Shooter habe ich eine Waffe und schieße meine Kugeln auf diese Clients Jetzt kann ich auf dem Client die Blots abschießen, ich kann den Client treffen Allerdings der Client, wenn ich die Waffe mit dem Client abschieße , jetzt auf dem Server Dieser Code für das Abfeuern der Waffe. Es wird durch den Server gehen und dann wird der Server diese Information an den Client zurückschicken und dem Kunden sagen, okay, du darfst schießen. Warum macht es das? Und das dient eigentlich dazu, Betrug zu verhindern Jetzt ist der Server wieder das wahre Spiel. Das bedeutet, dass alle Clients hier mit dem Server verbunden sind. Der Server kann das Spiel so sehen, wie es ist, zum Beispiel, wo die Spieler stehen, was sie schießen, welche Waffen sie in der Hand haben. Für die Kunden müssen wir jedoch all diese Informationen vom Server zum Client senden . Wenn zum Beispiel jemand eine Waffe erbeutet, nehmen wir an, wir haben mehrere Kunden Und lassen Sie uns den Dollar später reparieren. Aber nehmen wir an, wir haben zum Beispiel vier Spieler Und wir klicken auf Play. Und sie werden alle auf meinem zweiten Monitor geöffnet. Also lass es mich einfach hierher ziehen. Nehmen wir an, ich bin hier, der Server, und all diese Clients spielen mit mir. Nehmen wir an, dieser Kunde hier vor mir wird eine Waffe plündern Nun, die Waffe, die dieser Kunde plündern wird, muss ich die Information schicken Zum Beispiel, wenn du eine AK oder eine Waffe plünderst, nur Agle zum Beispiel Ich muss diese Informationen vom Server an alle Clients senden vom Server an alle Clients Denn wenn Sie die Informationen nicht senden , kann eigentlich nur der Server sehen, dass Sie einen Deagle geplündert haben und die anderen Clients können nicht sehen, dass Sie einen Deagle halten Wenn du diese Informationen nicht von den Servern an die Clients sendest , wird es diesem Grund sagen wir, dass der Server das wahre Spiel ist, die Autorität des Spiels hat und dass alle Informationen hier auf dem Server enthalten sind. Und der Server muss wichtige Informationen an die Clients senden. Wenn zum Beispiel einer der Kunden eine Kugel abfeuert, sagt dieser Kunde Ich werde eine Kugel abfeuern. Und es wird diese Informationen an den Server senden. Jetzt wird der Server prüfen, ob dieser Client tatsächlich Kugeln hat ? Weil wir versuchen, Betrug zu verhindern. Es wird diese Informationen zurück an den Server schicken. Der Server wird prüfen, ob dieser Client Kugeln hat ? Dann wird der Service vielleicht sagen, ja, dieser Client hat tatsächlich Kugeln Dann wird er die Informationen an den Kunden zurückschicken und dann sagen, okay, du kannst schießen Jetzt haben Sie tatsächlich Kugeln und der Kunde kann schießen. So machen wir das hier in der Client-Server-Beziehung, der Server hat alle Informationen und der Client empfängt und sendet einfach Informationen um Cheaten zu verhindern In Ordnung, diese Gruppensitzung ist beendet. Sie können sehen, dass sie in einer Gruppensitzung diskutieren. Lassen Sie uns hier aufhören. Jetzt haben wir hier diese Ära, sehr, sehr einfach. Es heißt nur, Zugriff darauf zu haben, nicht zu versuchen, das zu lesen, lokales Spieler-Subsystem zu bekommen Und es ist tatsächlich hier oben. Wenn du einfach hier rauf klickst, kommst du hierher, da steht nur Achse ohne. versuchen, diese Eigenschaft hier zu lesen , müssen wir nur aus dieser ziehen und sagen, dass sie gültig ist. Und mach weiter und verbinde dieses mit dem Fragezeichen. Wir stellen nur sicher, dass die Spielersteuerung gültig ist. Und wenn es gültig ist, können wir weitermachen und diesen Code ausführen. Die Ära, die Sie hier erleben , ist darauf zurückzuführen, dass versucht wird, den Code auszuführen. Wenn die Spielersteuerung noch nicht gültig ist, erhältst du die Fehlermeldung, dass kein Zugriff möglich ist. Was axis none bedeutet, ist, dass es versucht, die Variable zu lesen, die Sie ausführen möchten. Access, diese Variable ist jedoch leer. Ich weiß nicht, wovon du sprichst. Lass es uns schließen. Lass uns nochmal spielen. Man kann sehen, ob ich einfach hier spiele und dieser Typ durch den Boden gefallen ist, weil sie alle übereinander spawnen Man kann sehen, dass die Ära vorbei ist. Ordnung, lassen Sie uns weitermachen bevor das Video viel zu lang wird. Gehen wir hier mit dem Crouch-Code hin. Hier im Crouch-Code möchte ich zuerst eine Funktion erstellen Lass uns hier oben eine Funktion erstellen. Wenn du auf das Plus dieser Funktion klickst, nenne ich sie Crouch Normalerweise schreibe ich vor meinen Funktionsnamen, damit ich später sehr schnell danach suchen kann später sehr schnell danach suchen Hier oben. Wenn ich sie hier drüben hinzufüge, sehe ich, dass es ein ist. Wenn ich nochmal zum Event-Graph gehe, kann ich diese Funktion hierher ziehen und einfach zwei davon anklicken. Verbinde eins mit dem Wahren und verbinde eins mit dem Falschen. Was wir tun wollen, ist, ein Goldbarren hinzuzufügen. Das ist so, weil wir hier hocken wollen und wir wollen hier hocken Ich klicke in den Eingaben auf diese Funktion, ich klicke auf das Plus und füge diesen Edelstein mit dem Namen u hinzu. Wie Sie sehen können, können Sie vor den Bullion-Variablen ein B hinzufügen und sie werden Dies geschieht normalerweise in C plus plus. Sie können später einfacher nach ihnen suchen. ein B schreiben, wird das nicht im Namen angezeigt, wenn Sie das für Bullins tun Nun zur Hocke. Ich werde das ankreuzen. Ich möchte mich also hier ducken, wenn ich versuche, mit meiner Steuertaste zu ducken , und wenn ich die Taste loslasse, will ich mich abducken, das soll das Wenn wir jetzt in diese Hockenfunktion gehen, wird es jetzt vielleicht ein bisschen schwierig Und das musst du innerhalb dieser Funktion ein bisschen üben innerhalb dieser Funktion ein bisschen Wir können jetzt mit der rechten Maustaste auf diese Crouch klicken und ich werde sie einfach zu einer lokalen Variablen heraufstufen und diese Crouch Local nennen Nun, was eine lokale Variable ist, sie ist einfach in dieser Funktion enthalten Sie sehen, wenn ich zum Ereignisdiagramm gehe, ist diese Funktion oder diese Variable nicht hier. Und wenn ich zur Funktion zurückkehre, können Sie sehen, dass ich die lokale Variable Crouch Local Diese Variable wird eigentlich nur innerhalb von hier verwendet und außerhalb nicht Nun, bevor wir etwas tun, möchte ich von hier wegziehen und sagen, Switch hat Autorität. Dieser Schalter hat Autorität. Sie können sehen, dass er zwei Ausführungspins hat. Der erste ist die Autorität und der andere ist die Fernbedienung. Denken Sie daran, dass ich Ihnen gesagt habe, dass der Server die Autorität hat. Die Autorität bedeutet nur, dass dies der Server ist , auf dem der Code ausgeführt wird. Remote bedeutet, dass dies der Client ist, der den Code ausführt. Wie ich Ihnen bereits gesagt habe, muss der Client den Code über den Server laufen lassen und prüfen, ob was der Client tut, legal ist, bevor wir den Code an den Server weitergeben können , um Cheaten zu verhindern. Aber vorerst machen wir es über den Server. Der Server kann einfach weitermachen und den Code problemlos ausführen, da der Server die Autorität über das Spiel hat. Wir wollen hier also überprüfen, ob das wahr oder falsch ist, weil wir es hier entweder auf wahr oder falsch setzen. Und dieser Goldbarren wird diese Variable hier setzen. Also nehme ich diese lokale Variable und ziehe sie von hier und schreibe einen Zweig und frage, ob das wahr oder falsch ist , und verbinde sie mit der Autorität hier. Jetzt kannst du es entweder so machen oder du kannst es so machen. Das ist in Ordnung. Das Gleiche. Ich möchte nur ein bisschen besser organisiert bleiben. Also verbinde ich es auf diese Weise. Wenn das Crouch auf true gesetzt ist, möchte ich einfach so ducken Wenn es nicht stimmt, möchte ich mich ducken. Suche einfach so nach Crouch. Sehr einfach Ich werde auch Variablen erstellen, die ich später im Animations-Blueprint verwenden werde Erstellen Sie hier eine neue Variable, ein neues Edelmetall namens Dann kannst du diese nehmen, du kannst sie von hier ziehen und sie auf true setzen Und ziehen Sie es hierher und setzen Sie es auf Fehler. Wir werden diesen später im Animations-Blueprint verwenden , damit wir die Animation wechseln können Jetzt haben wir den Server fertig gestellt. Du kannst sehen, ob ich auf Jetzt abspielen klicke und ich spiele als Server und ich renne hier. Ich klicke auf Steuerung. Man kann sehen, wie die Bewegungsgeschwindigkeit abnimmt , und zwar jetzt in der Hocke. Die Animation ist jedoch noch nicht angeschlossen, sodass Sie die Animation zum Hocken nicht sehen können Jetzt funktioniert sie tatsächlich. Was wir nun für den Client tun müssen, ist, diesen Code zuerst über den Server laufen zu lassen , um zu überprüfen, ob der Spieler cheatet oder nicht Gehen wir zurück zum Event-Graph. Lassen Sie uns mit der rechten Maustaste klicken und nach einem benutzerdefinierten Ereignis suchen. Lassen Sie uns ein benutzerdefiniertes Ereignis erstellen. Nennen wir dieses eine SRV für Server. Und ich nenne es Crouch. Weil ich das jetzt über den Server laufen lassen möchte. Lassen Sie uns innerhalb dieser Veranstaltung darauf klicken. Und jetzt können Sie Replikate sehen. Sie müssen nur hier oben klicken und das auf dem Server ausführen und dann auf Zuverlässig klicken Jetzt führen wir dieses Event hier über den Server durch. Gehen wir nochmal in die Hocke und verbinden es einfach Und verbinde dieses Mobbing mit hier. Und es wird diese Variable automatisch innerhalb dieses Events erstellen Jetzt lassen wir es tatsächlich über den Server laufen. Was wir tun müssen, ist , von der Fernbedienung aus zur Funktion hier zurückzukehren . Wir müssen es von hier aus nehmen und nach dem Server-Crouch-Event suchen , das wir gerade gemacht Für diese Eingabe verbinden wir sie einfach hier und erstellen einen hinteren Routenknoten, nur um ein bisschen organisiert zu bleiben Jetzt läuft es über den Server. Nachdem es den Server durchlaufen hat, kann es diesen Code nun zusammen mit dem Server ausführen. Okay, das war es. Wir können jetzt kompilieren, und das sollte gut funktionieren. Wenn ich auf Play klicke, bin ich jetzt der Server und ich klicke auf Control. Du kannst sehen, dass ich mich kauere, ich bewege mich langsam. Das Gleiche gilt für den Kunden. Ich kann mich bewegen und ich kann auf Steuerung klicken. Und ich bewege mich auch langsam. Sie können auf dem Server sehen, dass ich mich tatsächlich auch langsam bewege. Das bedeutet, dass es richtig funktioniert. Beide arbeiten langsam. Nur um es sehr, sehr schnell durchzugehen, könnte es zunächst etwas verwirrend sein. Wir haben diese Duck-Funktion entwickelt Wir haben das Bullion entweder zum Hocken oder zum Hocken hinzugefügt wenn wir die Taste drücken oder Innerhalb dieser Funktion haben wir im Grunde nur den Bullion hier draußen, der hier draußen Dann haben wir den Switch, der überprüft, ob es der Server ist , als den wir gerade spielen, oder der Client Wenn es der Server ist, kannst du einfach weitermachen und den Code ausführen Wenn du jetzt in die Hocke gehst, werden wir uns hier ducken gehst, werden wir uns Wenn Sie sich nicht ducken, werden wir uns ducken, je nachdem, welchen Wert Wenn du als Client spielst, musst du zuerst den Server durchgehen und beim Server nachfragen , was dieser Wert ist, den Es wird also über den Server laufen. Abhängig von dem Wert , den Sie eingegeben haben, wird es diesen Wert annehmen und entweder ducken oder auch auf dem Client ducken 31. 3.20 Crouching-Animations-Blueprint: Jetzt, wo das Hocken innerhalb unseres Blueprint-Charakters funktioniert, machen wir weiter und machen das innerhalb des Animations-Blueprints innerhalb unseres Blueprint-Charakters funktioniert, wir weiter und machen das innerhalb des Animations-Blueprints . Gehen wir zum Blueprints-Ordner, den Com-Player-Animationen . Und gehen wir zum Animations-Blueprint. Jetzt, wieder hier drinnen, können Sie zum Animationsdiagramm hier zurückkehren Sie können auf Ihren State Machine klicken. Hier drinnen müssen wir einen neuen Staat schaffen. Lassen Sie uns von hier aus zuschlagen und dann machen wir uns auf den Weg. Oder klicken Sie hier auf diesen einen Bundesstaat. Gehen wir nach rechts in die Hocke. Jetzt machen wir die Hocke Du musst es nicht hier runter schaffen. Du kannst es auch einfach hierher zur Seite oder hierher ziehen. Ich ziehe es einfach gerne hierher. Für die Hocke. Ich stelle mir vor, dass ich mich kauere und hier runter gehe Und dann können wir auf diesen Hockenzustand auf der rechten Seite doppelklicken diesen Hockenzustand auf der rechten Seite Wir haben ihn unbewaffnet ducken lassen. Wir können diesen Linsenraum in den Graphen ziehen und ihn dann verbinden Denken Sie daran, dass wir die Bewegungsrichtung und Geschwindigkeit bereits festgelegt haben , also können wir sie ziehen und hier einfügen. Dann lass uns kompilieren. Jetzt erhalten wir hier einen Fehler oder eine Warnung, weil wir den Übergang nicht gemacht haben. Gehen wir zurück in das Animationsdiagramm, Sie können zu Ihrer Zustandsmaschine zurückkehren. Und hier drinnen siehst du jetzt diesen Kreis. Und dieser Kreis ist eine Übergangsregel. Du musst dein Spiel erzählen. Wann möchtest du vom Idle-Run-Modus in den Crouch-Modus wechseln Du musst ihm einen Übergang geben. Wenn Sie jetzt hier doppelt darauf klicken, können Sie sehen, dass hier der Übergang ist, das Edelmetall, also müssen wir ihm eine Umstellung geben Und so wie Sie das machen, müssen Sie zuerst zum Event-Graph gehen und etwas Code eingeben, bevor Sie einen Übergang vornehmen können Man muss wissen, wann der Spieler hockt. Wenn du jetzt zu unserer Spielerbasis zurückkehrst, gehst du zurück in unsere Hockenfunktion. Wenn du nicht hier klickst. Wir haben diesen namens Crouch gemacht Dieses Goldbarren hier, denken Sie daran, dass es nicht das Lokal ist, das wir hergestellt haben Es ist diese eine globale Bullenvariable, die wir geschaffen haben. Diese können wir verwenden, um zu wissen, ob der Spieler hockt oder nicht, und wir können sie hier im Animations-Blueprint verwenden im Animations-Blueprint Zuerst müssen wir den Verweis auf den Spieler ermitteln. Im Moment ist das eine Spielfigur, aber wir brauchen einen Hinweis auf die Spielerbasis weil wir dieses Edelmetall jetzt hier verwenden müssen Gehen wir zurück und gehen zurück zum Interfaces-Ordner. Klicken wir mit der rechten Maustaste auf Gehe zu Blueprint und erstellen Sie eine neue Blueprint-Schnittstelle Nennen wir das in Layer-Base , weil wir uns auf die Spielerbasis beziehen wollen. Lass es uns öffnen. Und hier, innerhalb dieser Blueprint-Oberfläche, genau wie beim Player-Controller, können Sie, falls Sie sich nicht erinnern, falls Sie sich nicht erinnern, weitermachen und sich die Player-Controller-Oberfläche ansehen die Player-Controller-Oberfläche Als wir es hierher geschafft haben, war es eigentlich dasselbe. Du kannst hier klicken, auf zwei klicken, um den Namen zu ändern und „Spieler holen“ sagen, die Spielerreferenz zu erhalten. Du kannst es auch einfach Get Get Get Player Base Reference nennen. Das ist dasselbe. Dann kannst du hier in der Ausgabe auf diese Funktion klicken. Mach weiter und erstelle eine neue Variable. Denken Sie daran, dass Sie hier auswählen müssen, auf welche Eva Sie verweisen möchten. Wir versuchen, auf die BP-Spielerbasis zu verweisen. Fahren Sie fort und wählen Sie es aus. Lass mich diesen einen Spieler nennen. Ich kann jetzt kompilieren. Und ich gehe zur Spielerbasis. Gehen Sie zur Klasse, eigentlich in den Klassenvoreinstellungen, den Klasseneinstellungen hier, in den Benutzeroberflächen, klicken Sie auf Hinzufügen und suchen Sie nach der T-Spielerbasis Kompilieren Sie diesen und Sie werden dieses Interface sehen. Denken Sie daran, wenn Sie das nicht sehen, obwohl Sie es hinzugefügt haben, müssen Sie es innerhalb der Schnittstelle kompilieren , bevor Sie es sehen können. Es ist sehr wichtig, auf Spielerreferenz abrufen zu klicken. Und hier können wir wieder ziehen und selbst schreiben, genau wie zuvor. Denn denken Sie daran, dass wir in der Spielerbasis sind. Wir sagen nur , dass diese Variable hier diese Spielerbasis ist. Jetzt können wir zum gehen. Lassen Sie uns zuerst kompilieren. Jetzt können wir zum Animations-Blueprint gehen. Und hier haben wir schon die Spielfigur. Anstatt einfach von hier aus zu ziehen, lassen Sie mich einfach eine neue Variable erstellen Ich ziehe es einfach hierher und platziere es und klicke auf Holen Und ich werde es einfach hier verwenden, anstatt es von hier zu ziehen Ich denke, es wird ein bisschen chaotisch aussehen , wenn die Zeilen über dem gesamten Code liegen Lassen Sie mich es hier einfach als neues annehmen und Layer Ref sagen. Jetzt haben wir das hier, um Spieler Ref zu bekommen. Lass uns weitermachen und es verbinden. Jetzt können wir die Variable verwenden. Jetzt ziehst du von hier und duckst dich nach rechts. Eigentlich ein kleiner Trick, den ich dir zeigen möchte. Wenn du recht hast und die Bullion-Variable verwenden willst, findest du Bullion-Variable verwenden willst, hier unten immer Variablen Sie können sehen, dass dies die Crouch-Variable ist, die wir benötigen. Wenn Sie sie jedoch nicht sehen, können Sie jederzeit ein Leerzeichen setzen und eine Variable VAR für eine Variable schreiben Variable VAR für eine Variable sodass Sie alle Variablen sehen können Nur ein kleiner Trick , um es schnell zu finden. Wir bekommen diese Crouch-Variable, die wir gemacht haben. Jetzt kann ich mit der rechten Maustaste auf diese Variable klicken, die hier im Animations-Blueprint zu einer Variablen heraufgestuft wurde hier im Animations-Blueprint zu einer Variablen Und ich werde es einfach nennen, ist einfach so in der Hocke Oder du kannst eine Hocke einfach dasselbe nennen. Fahren Sie fort und verbinden Sie es und klicken Sie auf Kompilieren. Okay, jetzt ducken wir uns in die Hocke. Wir messen den Wert davon hier in der Spielerbasis. Wenn es also wahr oder falsch ist, nehmen wir diesen Wert und fügen ihn in diese Variable ein. Jetzt können wir diese Variable für die Übergangsregel verwenden. Wenn ich zum Animationsdiagramm, zu meiner Zustandsmaschine und zu dieser Übergangsregel zurückkehre , können Sie weitermachen und darauf klicken. Jetzt fragt es dich, wann sollte ich vom Leerlauf in die Hocke gehen? Und wir können es von hier ziehen und es hier einstecken. Wenn wir hocken, ist es wahr, dass wir hocken, dann wollen wir weitermachen und den Übergang machen Gehen wir jedoch zurück. Wir müssen darauf klicken und von hier aus ziehen. Und stecke es auch hier ein. Denn irgendwann müssen wir von der Hocke zurück in den Leerlauf gehen und auf die zweite Übergangsregel klicken Das bedeutet, vom Hocken zum Laufen zurückzukehren. Das ziehe ich mit rein und hier können wir N B schreiben und dieses Ding heißt N Bullion Im Grunde wollen wir damit sagen , wenn das Hocken falsch ist, dann wollen wir in den Laufmodus zurückkehren, weil wir nicht mehr Es wird falsch sein, wenn Evalu nicht hocken, weil wir es hier so eingestellt haben, dass es hier Lass uns weitermachen und kompilieren. Und jetzt können Sie sehen, dass alle Fehler verschwunden sind. Lassen Sie uns jetzt sehen, ob uns etwas fehlt. Wir haben hier alles an die Bewegungsrichtung und Geschwindigkeit angepasst Lass es uns eigentlich einfach ausprobieren. Lass uns auf Play klicken. Und ich werde auf klicken, eigentlich stecke ich hier als Spieler fest. Lass mich noch einmal auf Play klicken. Jetzt gehe ich. Als Spieler hier werde ich die Kontrolle behalten, um mich zu ducken. Und du kannst sehen, dass ich mich kauere. Es funktioniert Aber Sie können auf meinen anderen Bildschirmen sehen, dass ich nicht hocke. Das liegt daran, dass wir jetzt im Multiplikator arbeiten. Sie können sehen, dass ich als Server hocke, die anderen können es nicht sehen. Ich hocke Wenn ich diesen Client hierher nehme und mich in die Hocke nehme, können Sie sehen, dass der Server sehen kann, dass ich mich einfach so kauere können Sie sehen, dass der Server sehen kann, dass ich mich , wenn ich als Client hocke, aber wenn ich als Server hocke, kauere ich Die Kunden können jedoch nicht sehen, dass ich mich kauere. Und denken Sie daran, dass ich Ihnen in der vorherigen Lektion gesagt habe, dass wir im Mehrspielermodus arbeiten Und der Server muss die Informationen an den Client zurückschicken und den Kunden sagen: Hey, ich hocke jetzt, aktualisiere meine Animation Der Server muss die Informationen weiterschicken , sonst können sie nicht sehen, was ich mache Und genau das werden wir in der nächsten Lektion mit der Variablenreplikation tun . 32. 3.21 Variable Replikation: Richtig. Machen wir weiter und reparieren die Hocke Bevor ich das mache, klicke ich hier oben und wähle zwei Spieler Weil ich nicht ständig zu viele Spieler laden möchte . Wenn ich auf Play klicke, siehst du hier genau wie zuvor, wenn ich auf dem Server kauere, kann der Client das nicht sehen Ich hocke, ich, ich hocke auf dem Client. Der Server kann auf dem Server selbst sehen, dass Denken Sie daran, dass wir wie zuvor Informationen an den Kunden senden und dem Kunden mitteilen , dass ich gerade hocke Das ist sehr einfach zu bewerkstelligen. Wenn du also zu der Spielerbasis gehst, die sich duckt, ist das im Grunde das, was gerade im Animations-Blueprint schief läuft gerade im Animations-Blueprint schief Wenn wir zu den Übergangsregeln zurückkehren, haben wir diese Übergangsregeln, haben wir diese Übergangsregeln von diesem Goldbarren hier abstammen Dieses Edelmetall bestimmt, ob wir hier hocken oder nicht. Die Variable, diese Information hier drinnen, muss an den Kunden gesendet werden Wenn Sie darauf klicken, können Sie sehen, dass auch die Variablen repliziert werden können, nicht nur die Ereignisse, Sie können das Wir haben es schon einmal repliziert , um es auf dem Server auszuführen, aber Variablen können auch repliziert werden Wenn Sie auf diese Variable klicken, können Sie sehen, dass die Replikation hier auf „Keine“ gesetzt ist Aber wir müssen diese Informationen an den Kunden senden. Der Kunde hat auch die Information, ob wir uns ducken oder nicht, hier klicken und diese Einstellung so einstellen, dass sie repliziert Und es wird das Symbol hier oben haben , weil es Und jetzt kann ich auf Compile klicken. Nun, es ist sehr wichtig zu wissen, dass Variablen nur über den Server repliziert werden können Sie können hier niemals eine Variable verwenden. Nehmen wir zum Beispiel an, ich bin hier auf dem Client und füge es so ein, dann kannst du das nie tun. Es kann nicht über den Client repliziert werden, Variablen können nur auf dem Server repliziert werden Es ist sehr wichtig , sich daran zu erinnern, dass Sie keine Variable setzen und über den Client replizieren können, was niemals passieren wird Hier können Sie sehen, dass es über den Server läuft , weil wir haben, dass dieser Switch autorisiert ist und er sowohl über den Server läuft und repliziert als auch über den Remote. Er läuft tatsächlich auf dem Server, Er läuft tatsächlich auf dem Server weil er zuerst über den Server läuft, und dann replizieren wir Das war also eigentlich das Einzige, was wir tun mussten, einfach darauf klicken und es so einstellen, dass es repliziert wird Wenn wir uns jetzt beschweren könnten, wie Sie sehen, bin ich der Server Nun, wenn ich das nur ein bisschen maximiere. Damit du sehen kannst, ob ich als Server hocke, ich jetzt sowohl auf dem Client als auch auf dem Und wenn ich der Kunde bin und auch hocke, dann hocke ich auf dem Client und auf dem Server Manchmal ist es auch nett, hier oben zu klicken, Netzmodus zu wechseln und mit zwei Clients zu spielen Also mach weiter und spiel. Es ist immer schön, es auf beide Arten zu testen. Also als Server und Client, aber auch als Client und Client, um zu sehen, ob sie sich tatsächlich sehen können. Wenn ich auf dem Client hocke, kann mich auch der andere Client sehen Es funktioniert und lassen Sie uns zurückgehen und es so einstellen, dass es als Listen-Server abgespielt Lassen Sie uns vorerst alles speichern und mit der nächsten Lektion fortfahren. 33. 3.22 Animationsglättung: Wenn ich weitermache und das Spiel spiele, kannst du sehen, dass meine Animation nicht wirklich flüssig ist Wenn ich also herumlaufe, kann man sehen dass es sehr schnell genauso wie wenn ich hier hocke, es passiert einfach Plötzlich kann ich das tatsächlich ein bisschen glätten und es gut aussehen lassen Und es ist eigentlich nur eine Anpassung, die wir vornehmen müssen. Wenn du zum Player gehst und auf die Animationen klickst. Und du klickst zum Beispiel auf diesen Blend Space Run. Sie haben diesen hier unten namens Weight Speed. Wenn du es auf etwas sehr Niedriges stellst, zum Beispiel auf eins. Und du kannst auf Play klicken und du kannst sehen, was passiert. Sie können sehen, ob ich anfange zu laufen oder zu rennen, Sie können sehen, wie es zu dieser Laufanimation übergeht. Wenn ich aufhöre, geht es von Lauf zu Lauf zurück, es geht über. Sie können jetzt sehen, dass es sehr flüssig ist, wenn ich renne und anhalte. Also müssen wir es auf eine Zahl setzen, die gut aussieht, nicht zu viel Glättung Wenn Sie diese Zahl erhöhen, wird es weniger glatt sein Normalerweise ist etwas um die 56 wirklich gut. Fünf im Moment ist es viel besser als zuvor. Wenn du es auf etwa drei setzt, diese eine Gewichtsgeschwindigkeit, setzen wir es auf drei und klicken wir auf Play. Manchmal lege ich es nicht gerne zu viel runter, weil der Charakter irgendwie schwer anfühlt, wenn ich herumlaufe. Aber du kannst sehen, dass es sich jetzt viel mehr verändert als zuvor Ich denke, drei sind viel zu niedrig. Also können wir weitermachen und vier ausprobieren und auf Abspielen klicken. Und dann können wir herumlaufen und sehen, was passiert. Vier ist immer noch zu schwer. Ich denke, fünf war eine gute Zahl. Oder für das Glätten hier, wenn du einfach so rumrennst , sieht es gut aus Vielleicht sogar 5.5 Ich mag es nicht, wenn es hier viel zu niedrig ist, 5.5 Ich mag es nicht, wenn sich der Charakter viel zu schwer anfühlt Lass uns das mit den anderen machen. Klicken wir auf die Hocke, setzen die Gewichtsgeschwindigkeit auf 5,5. Und klicken wir auf The Walk, setzen wir die Gewichtsgeschwindigkeit ebenfalls auf 5,5 Lass uns weitermachen und auf Datei und Alles speichern klicken . Lass uns auf Play klicken. Und du kannst jetzt sehen, wenn ich renne, wenn ich hocke, es glättet auch Man kann den Unterschied beim Hocken tatsächlich viel besser erkennen. Ich glaube, wenn ich das Hocken nochmal auf Null sagen würde. Und wenn ich auf Play klicke, kannst du sehen, dass es sehr schnell übergeht Wenn ich in die Hocke gehe, ist das fast unnatürlich. Wenn ich es auf 5.5 setze und speichere und auf Play klicke. Wenn ich jetzt in die Hocke gehe und das mache, kannst du sehen, dass es viel geschmeidiger ist als zuvor Es fühlt sich nicht unnatürlich an. Nur eine sehr kleine Anpassung, mit der Ihre Animationen viel besser aussehen können Ihre Animationen viel besser aussehen , wenn Sie sie glätten. 34. 3.23-Multiplayer-Walk: Jetzt sind wir bereit zu laufen. Jetzt ist das Gehen dasselbe wie das Hocken. Wenn wir zum Spieler zurückkehren und zur Spielerbasis gehen, ist das eigentlich derselbe Prozess wie das , was wir hier mit der Hocke gemacht haben Versuche, das alleine zu machen, wenn du kannst, und versuche zu sehen, wie weit du ohne meine Hilfe kommst Es ist eine sehr nette Übung wenn du mit mir weitermachen willst Lass uns weitermachen und weitermachen. Ich werde mit der Eingabe weitermachen und eine neue erstellen. Gehen wir zu Input und klicken auf Input Action. Nennen wir das hier. Ich gehe. Und lass uns hier drinnen weitermachen. Hier drinnen müssen wir wirklich nichts tun. Gehen wir hier zum Eingabe-Mapping-Kontext. Lass uns auf das Plus klicken und es hier als Pfad hinzufügen. Beim Gehen halte ich die Umschalttaste gedrückt, klicke auf diesen und drücke die Umschalttaste auf meiner Tastatur. Was die Auslöser angeht, werde ich hier klicken, zwei Pluspunkte, und der erste wird gedrückt und der zweite losgelassen Diese Taste wird ausgelöst, wenn ich sie drücke, um zu gehen, und jedes Mal, wenn ich sie loslasse, um nicht mehr zu gehen Lassen Sie uns jetzt weitermachen und hier speichern. Und gehen wir zurück zur Spielerbasis hier drin. Ich schreibe, klicke und schreibe einen Spaziergang und wähle eine neu erstellte Eingabeaktion aus. nun, genau wie zuvor, Lassen Sie uns nun, genau wie zuvor, von diesem Goldbarren herausholen und einen Zweig aus dem Wahren schreiben einen Zweig aus dem Wahren Wir werden laufen, weil wir zu diesem Zeitpunkt die Umschalttaste gedrückt haben Wenn wir die Schicht loslassen, werden wir aufhören, aus der falschen Richtung hierher zu laufen. Lassen Sie uns wie zuvor eine neue Funktion erstellen. Ich nenne das One Walk. Gehen wir zurück zum Event-Graph. Ich ziehe diesen Pfad hierher und verbinde ihn hier. Und ziehe es noch einmal. Und verbinde es hier unten. Jetzt wieder, genau wie zuvor, brauchen wir einen Goldbarren, um entweder zu laufen oder aufzuhören Ich kompiliere und klicke auf die Eingabe und nenne das Ganze B-Walk Bei diesem Goldbarren setze ich den Wert auf „true“, wenn ich laufen will, und ich setze ihn auf „ fällt“, wenn ich aufhöre zu laufen Jetzt, genau wie zuvor, möchte ich es über den Server laufen lassen , wenn ich der Kunde bin Also werde ich mit der rechten Maustaste hier unten klicken und Server Walk sagen. Und denken Sie daran, die Replikate so einzustellen , dass sie auf dem Server laufen und zuverlässig Lassen Sie uns nun weitermachen und diesen Vorgang im Zusammenhang durchführen Nehmen wir diese Eingabe für das Edelmetall und fügen sie in das Ereignis ein, sodass diese Variable hier automatisch erstellt wird Okay, der Großteil ist fertig. Lass uns hier drinnen auf die Walk-Funktion eingehen. Klicken wir mit der rechten Maustaste darauf und machen wir daraus eine lokale Variable. Und diese können wir Walk Local nennen. Mach weiter und zieh von hier und sag, dass Switch Autorität hat. Jetzt wollen wir, genau wie zuvor, den Code zuerst über den Server laufen lassen. Wenn wir der Client sind, ziehen wir den Server Walk von hier und sagen wir, den wir gerade gemacht haben, und jetzt lassen wir ihn zuerst durch den Server laufen. Denken Sie daran, dies zu nehmen und es mit dem Walk zu verbinden. Doppelklicken Sie darauf, um einen Node zu erstellen und ihn ein bisschen übersichtlicher zu gestalten. Nehmen wir nun diese lokale Walk-Variable und fügen sie hier ein. Von hier aus, rechts, eine Filiale und lassen Sie uns sie verbinden. Weil wir uns fragen müssen, ist das wahr oder falsch? Denn wenn es wahr ist, wollen wir laufen. Wenn es Stürze sind, wollen wir aufhören zu laufen. Wir wollen vielleicht anfangen zu rennen. Mach weiter und verbinde alles, was es braucht, um so auszusehen. Von hier aus wollen wir im Grunde genommen, dass ihr in der Bewegungskomponente des Charakters sehen könnt , dass wir eine sogenannte maximale Gehgeschwindigkeit haben . Das ist genauso wie Laufen. Ich weiß nicht, warum es Gehgeschwindigkeit heißt, aber es ist eigentlich auch die Laufgeschwindigkeit für dieses Ding. Das ist es, was wir anpassen wollen, wenn wir gehen wollen und nicht. Wir müssen diese Bewegungskomponente des Charakters nehmen und von hier aus die maximale Gehgeschwindigkeit festlegen. Das wollen wir anpassen. Wir wollen es hier verbinden. Natürlich muss es nicht wirklich hoch sein. Wenn du jetzt zur Komponente Charakterbewegung gehst, ist die Laufgeschwindigkeit 600. Wenn wir laufen wollen, müssen wir es auf eine niedrigere Zahl reduzieren. Ich kann tatsächlich einfach mit der rechten Maustaste darauf klicken und das zu einer Variablen heraufstufen. Ich nenne das einfach Schrittgeschwindigkeit. Ich mag solche statischen Zahlen nicht. Lassen Sie uns diese Variable für die Gehgeschwindigkeit kompilieren und darauf klicken und sie auf etwas setzen wie, lassen Sie uns sie einfach auf 100 oder vorerst nur 200 setzen, eine Zufallszahl. Wir werden es später ändern , wenn wir nicht mehr laufen. Nehmen wir das einfach und fügen es hier ein. Lassen Sie uns das wieder zu einer Variablen heraufstufen und diese zum Beispiel eine Laufgeschwindigkeit nennen . Geh und leg es hier hin und verbinde die Wasserfälle damit. Wenn wir nicht mehr laufen, werden wir es auf unsere Laufgeschwindigkeit zurückstellen. Und klicken Sie auf die Laufgeschwindigkeit. Denken Sie daran, den Standardwert festzulegen. Fahren Sie fort und kompilieren Sie. Zuerst werden Sie aufgefordert, den Blueprint zu kompilieren Fahren Sie fort und kompilieren Sie es und setzen Sie es auf 600, genau wie die Standardeinstellung Und jetzt laufen wir wieder. Jetzt, genau wie früher, brauche ich ein Goldbarren das ich in meinem Animationsplan verwenden kann. Ich werde hier ein neues Goldbarren herstellen, Bullet Walk. Jetzt kann ich diesen Pull-In nehmen und ihn beim Gehen auf True setzen Und ich kopiere es und füge es hier ein. Und setze es auf „Falsch“ , wenn ich nicht gehe. Denken Sie jetzt daran, dass dies repliziert werden muss , damit der Kunde weiß, ob dies wahr oder falsch ist , damit der Animations-Blueprint weitermachen kann, und stellen Sie ihn so ein, dass er auch repliziert Damit sind wir fertig und müssen mit dem Animations-Blueprint fortfahren Aber lass es uns einfach ausprobieren. Lass uns auf Play klicken. Und wenn ich auf Shift klicke, siehst du, dass ich jetzt laufe. Ich gehe langsam. Die Animation müssen wir in der nächsten Lektion korrigieren. Aber wie du siehst, kann ich wieder rennen, wenn ich nicht mehr laufen lasse. Das ist sehr, sehr cool. Lassen Sie uns weitermachen und den Animationsentwurf erstellen. 35. 3.24 Blueprint für Walking-Animation: Nun zum Animations-Blueprint Gehen wir zur Spieleranimation und öffnen dort unseren Animations-Blueprint Denken Sie jetzt an die Zustandsmaschine des Animationsdiagramms. Lassen Sie uns von hier aus ziehen und einen anderen Zustand erstellen Nennen wir das einen Spaziergang. Lassen Sie uns nun auf diesen doppelklicken und ihn öffnen. Genau wie zuvor haben wir diesen Walk Blend Space geschaffen. Lass uns weitermachen und es hier verbinden. Und lassen Sie uns die Bewegungsrichtung ziehen und sie und die Bewegungsgeschwindigkeit als Variable einstecken . Und stecken Sie es auch ein. Lass uns weitermachen und jetzt klicken und kompilieren. Gehen wir wieder hierher zurück. Wie Sie sehen können, müssen wir, genau wie vor der Festlegung der Übergangsregel, zuerst zum Event-Graph gehen und das Edelmetall , das wir gerade hergestellt haben, von derselben Oberfläche hier abrufen Edelmetall , das wir gerade hergestellt von derselben Oberfläche hier Wir können ziehen und „Walk variabel“ sagen. Wir können dieses Goldbarren aus diesem Geschäft herausholen. Wir können Click schreiben und das zu einer Variablen hochstufen und sie zum Beispiel Is Walking nennen zum Beispiel Is Walking Wir können es Gehen nennen. Lassen Sie uns weitermachen und es verbinden. Doppelklicken Sie darauf, um eine Notiz zur Weiterleitung zu erstellen, sie zu organisieren, einfach so Lassen Sie uns kompilieren und gehen wir zurück zur Bewegung hier. Nun zur Übergangsregel Jetzt gehen wir vom Laufen zum Gehen über Wir können es schleppen, das ist, hier reinzugehen, einfach so. Wenn wir gehen, wollen wir vom Laufen zum Gehen übergehen. Lass uns weitermachen und kompilieren. Gehen wir wieder zurück. Wir müssen das von hier nach hier ziehen, denn jetzt wollen wir vom Gehen zum Laufen übergehen . Wenn wir nicht mehr laufen, ziehen Sie das und holen Sie es und sagen Mobbing, wenn Sie nicht mehr laufen, was bedeutet, dass das Mobbing beim Gehen falsch sein wird, dann wollen wir wieder anfangen zu rennen Geh raus und klicke und kompiliere. Jetzt wird das funktionieren. Wenn du auf Play klickst und auf die Shift klicken kannst, kannst du sehen, wie ich gehe. Und alles funktioniert super. Alles funktioniert. Sie können die Animation testen wenn etwas mit der Animation nicht stimmt. Sie haben den Mischbereich wahrscheinlich falsch eingegeben. Aber Sie können sehen, dass alles in alle Richtungen funktioniert. Derzeit gibt es jedoch ein Problem. Wenn du auf die Hocke klickst und gleichzeitig auf die Walk-Taste klickst, läuft es jetzt nicht, es bewegt sich nicht. Das liegt daran, dass du auch von hier nach hier ziehen musst, um Übergangsregeln zu erstellen Wenn Sie in der Hocke sitzen und weitergehen wollen , werde ich das einfach ein bisschen wegziehen , damit mehr Platz und mehr Organisation da Fahren Sie jetzt fort und klicken Sie auf diese Übergangsregel. Was sollte passieren? Wann sollte ich vom Gehen zum Hocken übergehen? Du kannst das als Laufen nehmen und es wieder hierher bringen, genau wie vor dem Mobbing Wenn ich nicht gehe, gehen wir gerade vom Gehen zum Hocken Also gehen wir nicht mehr. Ich gehe nicht mehr, aber ich hocke mich hin. Wenn das Hocken wahr ist, aber das Laufen falsch ist, und wir müssen von hier wegziehen und sagen, wählen Sie diesen Goldbarren aus, machen Sie weiter Wenn Sie nicht mehr laufen und sich ducken, machen Sie weiter und wenden Sie diese Übergangsregel weiter und Gehen wir zurück und schlagen von hier aus zu, von der Hocke zum Gehen , und doppelklicken wir von der Hocke zum Gehen darauf Nun, wann solltest du vom Hocken zum Gehen übergehen? Das ist, wenn ich nicht mehr hocke, diesen nehme. Wenn ich nicht mehr hocke, einfach so, gehe Ich möchte zum Gehen übergehen. Wenn ich nicht mehr hocke, sondern gehe, möchte ich übergehen möchte ich übergehen Wenn ich weitermache und auf „Jetzt spielen“ klicke, kannst du sehen, ob ich Wenn ich die Schicht halte, um zu gehen, und die Hocke loslasse, kannst du sehen, dass ich gehe Wir können auch vom Gehen zum Hocken übergehen. Sie können jedoch sehen, dass immer noch ein kleiner Fehler vorliegt. Sie können sehen, ob ich in die Hocke gehe, ob ich mich halte , ob ich gehe und ob ich gehe Aber wenn ich die Kontrolle halte, um mich zu ducken, kannst du sehen, dass meine Bewegungsgeschwindigkeit etwas höher ist , weil ich gerade in der Hocke bin. Es nimmt die Geschwindigkeit beim Hocken auf. Das ist etwas, was wir innerhalb unseres Spielers tun müssen, in der Spielerbasis hier drin, wir haben diese Lauf- und Gehgeschwindigkeit gesagt Wir nehmen hier automatisch diese Gehgeschwindigkeit an, wann immer wir gehen, auch wenn wir in der Hocke sitzen. Dies ist eine kleine Ära und ich möchte Ihnen später Aufzählungen vorstellen Und wir können dieses System viel cleverer machen, aber im Moment funktioniert alles Und lassen Sie uns mit der nächsten Lektion fortfahren. 36. 3.25 Multiplayer-Jump: Springt. Lass uns im Blueprints-Ordner weitermachen und zur Spielereingabe gehen Lassen Sie uns weitermachen und eine Eingabeaktion durchführen. Genau wie zuvor. Sie können hier mit der rechten Maustaste klicken, zu Eingabe gehen und eine Eingabeaktion erstellen. Nennen wir das einen Sprung nach innen. Wir müssen wirklich nichts tun, lassen Sie uns die Eingabeaktion beenden. Gehen wir stattdessen in den Kontext der Eingabezuweisung über und minimieren wir all diese, minimieren wir all diese damit wir sehen können, was wir tun. Lass uns hier oben auf das Plus klicken und den Sprung hinzufügen. Wenn du nach jump suchst und die Eingabeaktion auswählst , die du gerade gemacht hast. Was die Auslöser angeht, werde ich hier wie zuvor auf das Plus klicken und dann die Taste drücken. Immer wenn ich drücke, wählen wir die Leertaste. Also kann ich hier klicken und auf die Leertaste klicken. Wenn ich also auf die Leertaste klicke, wird diese Eingabeaktion ausgelöst. Nachdem dies hinzugefügt wurde, können Sie fortfahren und auf Speichern klicken. Schließen wir es und gehen wir zur Spielerbasis über. Innerhalb der Spielerbasis, in der wir alle unsere Bewegungen hier im Ereignisdiagramm haben, kannst du mit der rechten Maustaste klicken und nach einem Sprung suchen und dann dieses Sprungereignis auswählen. Für dieses Sprungevent wollen wir einfach von hier aus ziehen und mit der rechten Maustaste springen. Und dann können Sie diese Funktion namens Jump auswählen. Damit das funktioniert, funktioniert das eigentlich schon , wie Sie hier sehen können. Wir haben das alles beim Gehen und beim Hocken gemacht, aber der Sprung in der Unreal Engine ist bereits repliziert und im ist bereits repliziert Mehr als das musst du also nicht wirklich tun. Du kannst sehen, ob ich jetzt kompiliere und wenn ich auf Play klicke und du auf die Leertaste klickst, kannst du sehen, dass ich gerade springe. Die Animation ist nicht korrekt, weil wir im Animations-Blueprint nichts festgelegt haben Aber wie Sie hier sehen können, funktioniert es, wenn ich als Client springe funktioniert es, wenn ich als Client und wenn ich als Server springe, funktioniert es auch Jump inside of Wheel Engine ist bereits im Mehrspielermodus verfügbar. Mehr als das musst du eigentlich nicht tun. Bevor wir das tun, möchte ich nur sichergehen, dass der Spieler den Sprung-Button nicht spammen kann , wenn er sich bereits im Jump befindet. Denn du kannst hier sehen, ob ich von hier ziehe und Printstring schreibe. ist immer schön, einen Printstring zum Debuggen zu verwenden , damit wir kompilieren und auf Play klicken können Du kannst sehen, ob ich gerade meinen Space-Button spamme. Ich kann den Sprung spammen, obwohl ich in der Luft bin. Um das zu beheben, nur um es noch weiter zu optimieren, können wir diese Komponente der Charakterbewegung nehmen wir von hier wegziehen können und sagen, sie fällt ab. Das ist im Grunde genommen Hinweis darauf, ob der Spieler in der Luft ist oder nicht. Wir können das hier und jetzt sage ich, nicht wegen Goldbarren Wir wollen damit sagen, dass wir einfach springen wollen, wann immer mein Charakter nicht fällt Das bedeutet, dass der Charakter nicht in der Luft ist und ich deshalb springen möchte. Wenn der Charakter in der Luft ist, möchte ich nicht springen. Wir können es von hier wegziehen und daraus eine Verzweigung machen. Wir können das etwas wegziehen, damit wir mehr Platz haben , um damit zu arbeiten und es hier zu verbinden. Wir wollen damit sagen, wenn mein Charakter nicht fällt, also mein Charakter nicht in einem Sprung ist, dann wollen wir weitermachen und springen. Wenn du kompilierst und auf Abspielen klickst und den Sprung-Button spammst , schreiben wir hier eine Zeichenfolge , damit du sehen kannst, was vor sich geht. Lass uns kompilieren, speichern und spielen. Wenn ich meine Leertaste drücke, siehst du, dass ich sie nur dann spammen kann , wenn ich auf dem Boden lande. Es wird nur einmal ausgelöst. Dadurch wird das Spiel nur optimierter , nur um es hier etwas sauberer zu machen. Was Sie tun können, das ist natürlich optional, aber was Sie tun können, ist, über diese Knoten zu fahren und zu einer Funktion klicken und sagen, Collapse schreiben zu können . Nun springt diese Funktion, die Sie aufrufen können, zum Beispiel nicht. Anstatt es mit den Eingaben hier zu schaffen , mit Execution-Pins. diesem geht es im Grunde nur darum, Informationen zu erhalten Bei diesem geht es im Grunde nur darum, Informationen zu erhalten, wenn Sie hier auf diese Funktion doppelklicken, wenn Sie darauf doppelklicken und sie aufrufen. Und ich werde das nur ein bisschen organisieren. Sie sehen, wir bekommen gerade ein paar Informationen. Wir geben keine neuen Informationen ein, wir erfahren nur, ob der Spieler fällt oder nicht. Anstatt diese Ausführungs-Pins zu haben, ist das nicht wirklich sinnvoll für Funktionen, die nur Informationen abrufen. Wir können auf die Funktion klicken und Pure auswählen. Pure bedeutet nur, dass es sich um eine Funktion handelt, die Informationen abruft. Wir müssen es nicht durch den Code laufen lassen, weil wir hier nicht wirklich etwas Neues einstellen. Wir können sie einfach zusammenziehen. Und jetzt sagst du, wenn der Spieler nicht springt, kannst du weitermachen und springen. Und Sie können sehen, dass Sie die Dinge ein bisschen sauberer machen können , wenn Sie sie auf Funktionen reduzieren. Sie können also weitermachen und auf Compile and Play klicken und es einfach ausprobieren. Und alles funktioniert sowohl auf dem Client als auch auf dem Server. Und lassen Sie uns weitermachen und den Animationsentwurf erstellen. 37. 3.26 Blueprint für Jumping-Animation: Mach die Animation. Gehen wir zu den Animationen. Und innerhalb des Entwurfs der Spieleranimation. Jetzt hier drinnen werde ich tatsächlich hier klicken und mit der rechten Maustaste klicken und die Tabs auf der rechten Seite schließen, nur damit es sauberer ist Auch hier werde ich das Animationsdiagramm öffnen. Öffne die Zustandsmaschine , die wir hier drinnen gebaut haben. Für das Springen benötigen wir drei Staaten. Für den ersten kannst du von hier aus ziehen und einen neuen Status erstellen. Den werde ich Jump Start nennen. Dann kannst du von hier aus ziehen und einen neuen Status namens Jump Loop oder Jump Air erstellen. Und du kannst von hier aus ziehen und einen dritten Zustand namens Jump End erzeugen. Was nun das Sprungende angeht, kannst du es nehmen und es wieder mit dem Leerlauf verbinden. Jetzt haben wir drei Zustände und müssen ihnen die Animationen hinzufügen. Das funktioniert so, wenn ich springe, habe ich eine Startanimation. Wenn ich darauf klicke und in meinen Animationen einfach nach Jump Here suche, hast du diese Animation namens Jump Start Unarmed Achte nur darauf, dass es der unbewaffnete ist. Klicke und ziehe es hierher und verbinde es. Wenn Sie sehen möchten, wie die Animation aussieht, können Sie jederzeit darauf doppelklicken. Und so sieht es aus. Wir haben eine erste Sprunganimation, die wir durchgehen werden, bevor wir zu der Animation gehen, bei der wir uns in der Luft befinden. Lass uns wieder hierher gehen. Jetzt, wo wir das verbunden haben, gehen wir zurück, klicken auf den Jump Air und nehmen diesen Sprung namens Jump A unbewaffnet Und stell es für den letzten hier hin. Gehen wir zurück zum Sprungende. Lasst uns den Sprung unbewaffnet machen. Wenn ich ihn finde, springt dieser tatsächlich unbewaffnet ins Land. Wir können das nehmen und verbinden und weitermachen und kompilieren, okay Jetzt müssen wir, genau wie zuvor, diese Übergangsregeln festlegen Klicken wir auf die erste. Die erste, im Grunde genommen, wenn wir in der Luft sind, wie wir es hier in der Spielerbasis getan haben, wenn du zurückgehst, wie wir es hier für den Sprung getan haben, wenn der Spieler fällt, wenn der Spieler fällt, bedeutet das, dass wir in der Luft sind. Das bedeutet, dass wir tatsächlich springen wollen. Wir müssen zuerst in der Eventgrafik beginnen und programmieren, dass man hier als Spieler, genau wie in der Spielerbasis, daraus ziehen und die Bewegungskomponente des Charakters abrufen kann . Und dann kannst du von der Bewegungskomponente des Charakters ziehen und sagen, dass sie fällt. Wenn wir fallen, kannst du rechten Maustaste darauf klicken und daraus eine Variable machen und du kannst diese Variable „ist in der Luft“ nennen. Das heißt, wir sind im Sprung. Sie können es auch Jumping nennen, wenn Sie Now innerhalb des Animationsdiagramms kompilieren möchten . Gehen wir zurück zum Sprung hier. Diese Übergangsregel. Nehmen wir an, das ist in der Luft und verbunden. Jetzt sind wir versetzt, ich gehe wieder her. Wir wechseln zur Starthilfe , wann immer wir in der Luft sind Immer wenn wir hier auf die Leertaste klicken. Von der Starthilfe bis zum Sprung können wir darauf klicken. Die Funktion, die wir hier verwenden wollen , heißt Restzeit Wenn Sie mit der rechten Maustaste klicken und nach der verbleibenden Zeit suchen, diese Methode als Verhältnis zur verbleibenden Zeit bezeichnet. Stellen Sie einfach sicher, dass es sich um ein Verhältnis handelt. Du kannst es wegziehen und weniger sagen, weniger als hier und dann kannst du es verbinden. Was wir damit sagen wollen, ist, dass wir von einer Startanimation zur Sprunganimation übergehen wollen, eine Animation immer dann, wenn die verbleibende Zeit der Startanimation kürzer ist als die Zahl, die Sie hier eingeben. Wenn ich zum Beispiel 0,5 einfüge und kompiliere, fahren wir damit fort und ich kann dir später zeigen, was das macht. Gehen wir also zurück, um hier zu springen. Wenn ich auf die Übergangsregel zwischen Jump Air und Jump End klicke , aber diese hier, landen wir immer dann, wenn wir nicht mehr in der Luft sind. Weil du dir vorstellen kannst, dass der Spieler springt und der Spieler dann wieder auf dem Boden landet. Wenn der Spieler auf dem Boden landet, wollen wir diese Jump-End-Animation abspielen , wenn der Spieler nicht mehr in der Luft ist. Wir können also sagen nicht Goldbarren, und wir können das verbinden Wenn der Spieler nicht mehr in der Luft ist, wollen wir weitermachen und die Jump-End-Animation abspielen Für diese hier unten wollen wir, genau wie zuvor, ein Klick schreiben und nach dem Verhältnis der verbleibenden Zeit für das Sprungland suchen Verhältnis der verbleibenden Zeit für , wenn es kleiner als eine Zahl ist, die wir hier eingegeben haben. Dann wollen wir weitermachen und die Jump-End-Animation beenden und zum Add Run zurückkehren. Für diesen werde ich nochmal 0.5 schreiben und kompilieren, jetzt können wir weitermachen und es ausprobieren und sehen was passiert, wenn du hier auf Abspielen klickst und das Ganze maximierst. Wenn ich renne und springe, kannst du sehen, dass ich eine Startanimation habe. Ich habe auch eine Jump-Land-Animation. Sie können es klarer sehen, wenn ich diese Zahl auf einen sehr niedrigen Wert setze . Wenn ich auch zu diesem Wert zurückkehre und ihn auf einen sehr niedrigen Wert setze, können Sie sehen, wie auch zu diesem Wert zurückkehre und ihn auf einen sehr niedrigen Wert setze, es sich verändert. Wenn ich auf Play Jump klicke, gibt es eine Startanimation. Und es hat eine Jumpland-Animation. Und sieh zu, dass die Jumpland-Animation besser sichtbar ist. Jetzt sieht es so aus, als würde der Spieler auf dem Boden rutschen , wenn der Spieler landet. So steuerst du hier das Verhältnis für die verbleibende Zeit. Wenn du darauf klickst, die Animation umso schneller unterbrochen, je höher du den Wert setzt wird die Animation umso schneller unterbrochen, je höher du den Wert setzt. Wenn Sie es sehr niedrig einstellen, können Sie sehen, dass die Animation nicht schnell unterbrochen wird. Und es sieht so aus, als ob der Player rutscht. Wenn du es jedoch auf etwas sehr hohes stellst, zum Beispiel 0,9, springst du, kannst du sehen, dass der Spieler nicht mehr rutscht. Die Sprunganimation wird viel schneller unterbrochen. Wenn das eine höhere Zahl ist, musst du dich einfach hier hinsetzen und sowohl diese als auch diese Zahl anpassen . Für den Schnellstart müssen Sie nur mehrmals auf Play klicken, versuchen zu springen, zu sehen, was für Sie funktioniert, sehen, was gut aussieht, und versuchen, diese Zahlen anzupassen. Ich versuche, damit herumzuspielen, und die Zahl, die für mich am besten für den Schnellstart passt , ist 0,8. Wenn ich zum Sprungende zurückgehe, ist sie 0,9. Das ist richtig. Also lass uns auf Play klicken und sehen, wie es aussieht. Wenn wir jetzt springen, können Sie sehen, wie es aussieht. Sie können sie jederzeit etwas weiter anpassen, wenn Sie möchten. Aber ich denke, das ist eine gute Startrunde für den Sprung. Nun, was du auch tun kannst. Sie können hier sehen, ob ich auf Play klicke und herumlaufe und Shift-Taste gedrückt halte, um herumzulaufen, und ich auf Springen klicke. Die Animation wird nicht abgespielt. Das liegt daran, dass Sie nicht vergessen müssen, dass Sie den Spaziergang hinter sich lassen müssen. Sie haben noch keinen Übergang, den Sie vom Walk & Transition zum Jump-Start ziehen müssen. Sie können sich diese Übergangsregel genau wie zuvor ansehen. Genau wie bei dem, was Sie hier für den Leerlauf getan haben, verwenden Sie das Is in Air Bullion Du musst hier klicken und dasselbe benutzen. Wenn du in der Luft bist, kannst du vom Gehen zum Sprung übergehen . Ich bin mir nicht sicher, ob ich vom Hocken zum Sprung wechseln möchte, aber du kannst diese Mechanik zu deinem Spiel hinzufügen, aber ich möchte sie vorerst vom Hocken zum Sprung wechseln möchte, aber du kannst diese Mechanik zu deinem Spiel hinzufügen, nicht hinzufügen Ich glaube nicht, dass ich es so haben werde. Sie können also auf Jetzt abspielen klicken gehen und die Umschalttaste drücken, Sie können auf Leertaste klicken. Und Sie können jetzt sehen, wie es auch beim Gehen zur Sprunganimation übergeht. 38. 3.27 Einführung in die Aufzählungen: Im Moment möchte ich etwas mit der Bewegung etwas mit der Sie können sehen, ob ich auf Shift klicke und gehe und wenn ich die Taste gedrückt halte, können Sie sehen, dass ich mich nicht wirklich ducken kann , während ich die Schicht gedrückt halte Wenn ich die Umschalttaste gedrückt halte, um zu gehen, und gleichzeitig die Kontrolle behalte, kauere ich mich nicht wirklich Ich muss Shift drücken und dann Shift loslassen und dann C drücken. Das gefällt mir nicht wirklich Ich mag es zum Beispiel, wenn du auf Crow klickst und gleichzeitig Shift drückst, dann läuft es hier so Aber das macht es gerade nicht. Ich muss den Knopf loslassen und dann kann ich laufen. Und ich muss den Walk-Knopf loslassen. Und dann klicken Sie weiter, auf die Hocke, bevor ich mich ducken kann. Und das will ich nicht wirklich tun. Lassen Sie uns das beheben und das System etwas fortschrittlicher machen , damit es solche Eingaben aufnehmen kann. Was wir dafür verwenden werden, sind Aufzählungen. In diesen Lektionen möchte ich Ihnen nur Aufzählungen vorstellen Sie können zum Blueprints-Ordner zurückkehren und mit der rechten Maustaste hier klicken und einen neuen Ordner erstellen und diesen Enoms oder Aufzählungen nennen Das liegt an dir. Sie können mit der rechten Maustaste auf diesen Ordner klicken, eine neue Farbe festlegen und einfach dieselbe Farbe wie zuvor in diesem Ordner verwenden . Klicken wir mit der rechten Maustaste, gehen Sie zu Blueprint und wählen Sie diese Option aus , die als Aufzählung bezeichnet wird Machen Sie weiter und erstellen Sie es, und ich nenne es als Präfix und ich werde es Bewegungsstaaten nennen Und Sie können es öffnen und Sie können sehen eine Aufzählung im Grunde nur eine Liste von Elementen ist Sie können hier klicken, um einen Artikel hinzuzufügen. Wenn ich nur ein paar Mal hier klicke, können Sie sehen, dass es eine Aufzählung handelt, die nur eine Liste von Elementen ist, die Sie erstellen können Es kann eine Liste von allem sein, zum Beispiel eine Liste von Lebensmitteln, eine Liste von Waffen, eine Liste von eine Liste von Denn wir machen hier nur eine Liste von allem, was du dir wünschst Es kann sich auch um eine Liste von Gegenständen handeln, die du plündern kannst, oder um eine Liste der Teile, die du in deinem Spiel hast Alles, wovon du eine Liste erstellen kannst, kannst du hier erstellen Wenn Sie auf diese Symbole klicken, können Sie die Listenelemente entfernen. Für den ersten erstellen wir einfach eine Liste von Bewegungszuständen. Der erste Bewegungszustand , den wir haben, läuft. Dann kannst du wieder hier nach oben klicken. Dann gehen wir spazieren. Nun, es muss nicht wirklich in einer bestimmten Reihenfolge sein. Sie können zum Beispiel zuerst laufen und/oder zuerst laufen und so weiter. Aber im Moment haben wir das Laufen und Gehen, und wir haben auch das Hocken , und du kannst weitermachen und sparen Also sehr, sehr einfach und Aufzählung ist nur eine Liste In diesem Fall erstellen wir eine Liste der Bewegungszustände, und wir werden diese in der nächsten Lektion verwenden , um das System für die Bewegung etwas fortschrittlicher zu gestalten System für die Bewegung etwas fortschrittlicher 39. 3.28 Umschalten von Bewegungsvariablen in Enums: Nachdem wir die Aufzählung erstellt haben, klicken wir auf den Player Gehen wir in die Spielerbasis hinein. Gehen wir jetzt zurück zum Event-Graph hier. Und ich werde diesen Tab zur Seite ziehen. Es hat also ein bisschen mehr Struktur wie diese für den ersten. zum Beispiel für die Hocke zur Crouch-Funktion Gehen wir zum Beispiel für die Hocke zur Crouch-Funktion Hier drinnen können Sie sehen, wie wir uns ducken und wir setzen dieses Goldbarren auf C und ducken uns Wir werden dieses System etwas fortschrittlicher machen, sodass es mehrere Eingaben verarbeiten Lassen Sie uns weitermachen und diese Goldbarren vorerst löschen. Ich ziehe das nach unten, damit ich mehr Platz habe, um eine neue Variable zu erstellen Diese Variable nennen wir Bewegungsstatus für den Variablentyp. Anstatt nur diese Standardvariablen zu erstellen, kannst du auch Variablen für alles innerhalb des Spiels erstellen. Sie können zum Beispiel aus der Aufzählung, die wir gerade erstellt haben, eine Variable machen aus der Aufzählung, die wir gerade erstellt haben, eine Variable Wenn Sie nur nach Bewegungszuständen suchen, können Sie hier sehen, dass dies die Aufzählung ist, die ich gemacht habe Stellen Sie einfach sicher, dass Sie nach dem Namen suchen , wie Sie ihn geschrieben haben, nach der Datei. Staaten der Bewegung. Sie können hier sehen, wenn ich zur Aufzählung zurückkehre, heißt es Bewegungszustände Jetzt habe ich das als Variable und ich kann klicken und kompilieren Sie sehen, wenn ich mir hier den Standardwert ansehe, können Sie hier den Listenpunkt für die Aufzählung festlegen Sie können es auf einen dieser Zustände einstellen, wenn Sie rennen, wenn Sie gehen, wenn Sie hocken und so Du kannst es anklicken und hierher ziehen und Set schreiben. Sie können die Aufzählung auch hier sehen. Sie können es auf eines dieser Listenelemente setzen. Sie können sehen, dass das sehr gut ist und wir werden es später auch für die Widgets verwenden. Wenn wir die Benutzeroberfläche erstellen, können wir eine Liste der Benutzeroberflächen erstellen. Zum Beispiel Hauptmenü, Pausenmenü, Escape-Menü. Wir können das Spiel zur Haupt-Benutzeroberfläche machen. Auf diese Weise können Sie eine Liste von allem erstellen , was hier wirklich nützlich ist. Anstatt es einfach so als Standardvariable zu haben, möchte ich ihr mehrere Werte geben. Sie können sehen, ob ich eine Verbindung hergestellt habe, ich möchte gehen Anstatt nur in die Hocke zu gehen, setzen Sie diese Variable stattdessen auf Gehen Aber das wird genauso sein wie zuvor, es gibt keine wirkliche Änderung Du stellst es nur auf Laufen und nicht auf Laufen. Und du stellst es auf Hocken und nicht auf Hocken. Jetzt möchte ich, dass es mehrere Eingaben hat . Was du tun willst. Stattdessen möchte ich darauf klicken, auf den Typ hier, von welchem Variablentyp es sein soll. Und ich werde ein Array anstelle einer einzelnen Variablen auswählen . Was nun ein Array mit einer einzelnen Variablen oder einer einzelnen Variablen verglichen wird , Sie können es nur auf einen Wert setzen. Wenn ich es zum Beispiel so einstelle, dass ich beim Gehen drüber laufen soll, überschreibt das den Wert, den ich hier eingestellt habe. das Hocken für das Array angeht, können Sie es sich als eine Box vorstellen in der Sie mehrere Eingaben haben Du kannst sehen, ob ich kompiliere. Und wenn du es in ein Array umschaltest und hier auf dieses Plus klickst, kannst du sehen, dass du mehrere Eingaben haben kannst. Man kann das Laufen, das Gehen und das Hocken gleichzeitig in einer Reihe haben , man kann es sich als eine Kiste vorstellen Und du legst all diese Werte in das Feld. Wenn Sie jedoch nur eine einzige Standardvariable haben, ist es nur ein Element, das Sie entweder auf Gehen, Hocken usw. einstellen können entweder auf Gehen, Hocken usw. einstellen Aber was die Arrays angeht, können Sie es sich wieder wie eine Box vorstellen Sie legen im Grunde all diese Elemente in Ihre Box, und Sie haben all diese Werte für Sie gespeichert Eine andere Verwendung für ein Array ist zum Beispiel, welche Artikel haben Sie in Ihrem Inventar? Du kannst zum Beispiel eine Traube haben, du kannst einen Schild haben und so weiter. Sie können also mehrere Gegenstände in Ihrem Inventar haben. Sie können sehen, dass Arrays sehr nett sind, oder wenn Sie mehrere Artikel haben, die Sie vorerst speichern möchten, lassen Sie uns hier alles löschen Und lasst uns für das Hocken kompilieren. Ziehen wir das Hocken hier rein. Was wir verwenden wollen, ist, wenn Sie ziehen, können Sie sagen, das Array-Element für die Arrays setzen Wenn Sie nicht all diese Funktionen kennen, können Sie im Grunde einfach von hier aus ziehen und ein Array schreiben Ich mache das manchmal, wenn ich etwas vergesse oder von dem ich nichts weiß, du kannst Array schreiben. Und Sie können sehen, Sie können alle Funktionen für das Array sehen . Es kann löschen, es kann ein Objekt finden , nach dem Sie fragen , ob es ein Objekt enthält. Sie können einen Artikel finden. Sie können einen bestimmten Artikel erhalten. Sie können fragen, ob dieses Array leer ist, und Sie können etwas damit anfangen. Sie können die Länge des Arrays ermitteln. Sie können sehen, dass wir viele Funktionen haben , die Sie für das Array verwenden können. Die Funktion, die wir verwenden werden, heißt Set Array Element. Wir werden einen Artikel festlegen. Jetzt kannst du diesen auch verwenden, wenn du hier einen Text ziehst und schreibst, zum Beispiel „Hinzufügen“. Und du kannst das Hocken schreiben. Wenn wir hocken, fügen wir das Hocken hinzu, den Gegenstand Dieser funktioniert jedoch hervorragend im Einzelspielermodus, aber ich habe viele Probleme damit im Mehrspielermodus Manchmal wird es nicht hinzugefügt und ich versuche stundenlang, meinen Code zu debuggen, und es ist eigentlich nur dieser, der ausfällt An deinem Code ist nichts falsch. Dieser ist wirklich schlecht im Mehrspielermodus zu verwenden, er hat viele Fehler, also werde ich ihn löschen und diesen verwenden. Wenn Sie Elemente hinzufügen möchten, verwenden Sie stattdessen dieses Sit-Array-Element , um es zu verbinden. Ich möchte festlegen, wann ich in die Hocke gehe. Ich möchte das Objekt auf „Hocken “ einstellen Ich mache das, was ich hier mache, quasi per Code. Wenn ich auf Crouch klicke, füge ich dieses Crouch zu meinem Array hinzu Okay, machen Sie weiter und stellen Sie sicher, dass Sie vorerst alle Standardwerte gelöscht haben Jetzt stellen wir also das Hocken ein. Nun zum Index. Sie werden nur gefragt, wo Sie das Hocken platzieren möchten Wenn Sie auf das Array und dann auf das Plus klicken, können Sie sehen, dass Sie eine Indexnummer haben Und wenn ich erneut auf das Plus klicke, kannst du sehen, dass du eine weitere Indexnummer hast. Arrays beginnen bei Index Null, und je mehr Elemente Sie hinzufügen, desto mehr wird sie erhöht Es wird Index eins, Index zwei, Index 345 usw. Es beginnt also bei Index Null. Es beginnt nicht bei Index eins. ist sehr wichtig, es jetzt für den Index zu wissen , anstatt ihn einfach zu haben, da dies ein Problem sein wird. Denn wenn wir das nehmen und es kopieren und in das Walking einfügen, setzen wir den Walk auch auf Index Null. Sie können hier sehen, dass es sich überschneidet, wenn ich gehe, sagen wir, sagen wir, ich hocke hier. Ich drücke auf die Hocke und lösche alle anderen Diesen werde ich genauso löschen wie diesen. Im Moment hocke ich. Es hat das Hocken zu meinem Index Null hinzugefügt das Hocken zu meinem Index Null Wenn ich jetzt gleichzeitig auf das Gehen klicke, überschneidet sich mein Hocken hier, der Wert für das Hocken, weil es ihn auf den Index Null setzt, anstatt meine Werte zu anstatt Was Sie tun können, ist, daraus zu lernen und zu sagen: Letzter Index . Es wird sich ansehen, was Ihre letzte Indexnummer ist. Im Moment ist meine letzte Indexnummer Null. Wenn ich diese Elemente hinzufügen würde, zum Beispiel so, wäre mein letzter Index drei. Es wird den letzten Index finden, den Sie daraus nehmen können Verluste sparen und ihm so einen hinzufügen. Und dann können Sie ihn dem Index hinzufügen. Was Sie im Grunde sagen, ist zum Beispiel die letzte Indexnummer drei zu finden zum Beispiel die letzte Indexnummer drei , inkrementiert um eins Hier möchten Sie diesen neuen Wert hinzufügen. Du überschneidest dich nie mit deinen alten Bewegungen. Ich werde das alles löschen. Kompilieren Sie jetzt und klicken Sie auf Passende Größe, da dies im Grunde Platz für den neuen Status schafft, den Sie hinzufügen werden. Okay, jetzt haben wir das hier. Nun zur Hocke Wenn wir nicht mehr in die Hocke gehen wollen, kannst du diesen Zustand nehmen und von hier ziehen und Und du kannst dieses Objekt namens Objekt entfernen auswählen und es hier verbinden Wenn wir nicht mehr hocken, wollen wir im Grunde genommen das Hocken von diesem Gegenstand oder aus diesem Array hier entfernen Hocken von diesem Gegenstand oder aus diesem Array hier Wenn wir uns ducken, fügen wir das Element dem Array hinzu, dem letzten Index plus eins, was bedeutet, dass wir das letzte Element, das wir hinzugefügt haben, nicht überlappen , was vielleicht Gehen oder Laufen usw. sein könnte Und wenn wir uns dann nicht mehr ducken, wollen wir es aus diesem Array entfernen , weil wir uns Okay, lass uns kompilieren. Lass uns das alles einfach hier kopieren und einfügen. Kopieren Sie es und fügen Sie es in das Walking ein. Ich werde die Bewegungsgeschwindigkeit und das Gehen löschen. Wir werden die Bewegungsgeschwindigkeit später hinzufügen. Machen Sie es auch hebeliger. Wir werden das alles löschen. Fügen wir diesen Code ein, verbinden ihn und wählen Sie für diesen Code stattdessen das Gehen aus. Wenn wir nicht mehr laufen, können wir das nehmen und sagen Objekt entfernen, genau wie zuvor und verbunden. Und du kannst das Gehen entfernen. Und mach weiter und organisiere es ein bisschen mehr. Richtig, wir haben das Gehen, jetzt fügen wir das Gehen hinzu. Stellen Sie nur sicher, dass Sie die richtigen Werte für das Gehen und auch für das Hocken haben. Hocken, ducken Wenn wir hocken. Wir werden den Gegenstand hinzufügen, wenn wir Wir werden den Artikel auch hinzufügen. Aber jetzt zum Laufen, wir haben nicht wirklich einen Ort, an dem wir es für das Laufen hinzufügen können . Was ich tun möchte, ist, dass ich es standardmäßig hinzufügen möchte. Wenn ich auf den Bewegungsstatus klicke, möchte ich hier auf das Plus klicken. Und ich werde einfach das Laufen als Standard hinzufügen. Denn wenn ich gehe oder wenn ich nicht hier hocke und nicht gehe, renne ich im Grunde herum Ich möchte nur diesen Bewegungsstatus als Standard haben. Wenn ich nicht gerade hocke und gehe, läuft es automatisch Sie können hier also sehen, wenn ich anfange zu laufen, wird dieser Spaziergang zum letzten Index plus Eins hinzugefügt, was Null plus Eins bedeutet Dadurch wird das Gehen hier nach unten hinzugefügt und es wird sich nie mit meinem Laufbewegungsstatus überschneiden. Jetzt, wo wir das abgeschlossen haben, sind wir tatsächlich mit diesem System fertig. Sie können sehen, dass es etwas fortgeschrittener ist, aber es wird viel besser funktionieren als zuvor. Und Sie können sehen, wenn wir eine Aufzählung durchführen, können wir die Anzahl der Variablen reduzieren, die wir erstellen Denn jetzt, wo wir uns ducken, können Sie weitermachen und auf Löschen klicken Das kannst du einfach löschen. Und zum Spazierengehen auch. Jetzt können Sie sehen, dass wir nur eine Variable für das Hocken und für das spätere Gehen Wenn du eine Sprint-Variable für dein Spiel erstellen möchtest, kannst du innerhalb der Aufzählung weitermachen, die Sprint-Variable hinzufügen und für den Sprint wieder, genau wie zuvor, weitermachen und sie zu einer Funktion für den Sprint machen Wie beim Hocken und Gehen können Sie den Sprint einfach so hinzufügen 40. 3.29 Wechseln der Animations-Übergangsregeln: Jetzt, wo wir mit diesem System fertig sind, kompilieren und speichern wir alles Lassen Sie uns das schließen und stattdessen zum Blueprint für die Spieleranimation übergehen stattdessen zum Blueprint für die Spieleranimation Jetzt bekommen wir hier ein paar Fehler, weil wir im Event-Graph des Animations-Blueprints die Punkte „Hocken“ und „Gehen “ gelöscht haben die Punkte „Hocken“ und „Gehen Animations-Blueprints Du kannst einfach weitermachen und diese löschen, das Hocken und das Gehen, weil wir sie nicht mehr brauchen Du kannst kompilieren und du kannst sehen, dass die Fehler weg sind. Was wir stattdessen hier verwenden wollen, können wir von hier aus steuern und Bewegungszuständen sagen , dass wir dieses Array verwenden wollen , das wir erstellt haben. Mach weiter und hol dir dieses Array. Sie können Lick it, das zu einer Variablen hochgestuft wurde, schreiben und es einfach hier im Animations-Blueprint als Bewegungsstatus bezeichnen es einfach hier im Animations-Blueprint als Bewegungsstatus Mach weiter und verbinde es. Und verbinde das Ist in Er damit. Und mach weiter und mach es einfach ein bisschen organisierter. Wenn wir jetzt kompilieren , erhalten Sie einen Fehler. Ich bin mir nicht sicher, was es hier wirklich will. Wenn ich einfach noch einmal kompiliere, kannst du sehen, dass es verschwunden ist. Ich weiß nicht, das war nur ein zufälliger Fehler. Gehen wir zum Animationsdiagramm über. Gehen wir in das Animationsdiagramm hinein. Jetzt wollen wir alle Bewegungszustände für den ersten Bewegungszustand umschalten Bewegungszustände für den ersten Bewegungszustand , zum Beispiel vom Leerlauf zum Gehen. Sie können hier mit diesem Goldbarren , das wir zuvor verwendet haben, darauf Lass uns weitermachen und es löschen. Gehen wir von diesem Bewegungszustand aus. Nun zu diesem Array, was Sie tun können, ist es von hier aus zu nehmen und holen zu sagen. Wir wollen im Grunde nur laufen. Denken Sie daran, wenn ich zum Spieler zurückgehe , nur um es etwas besser zu erklären. Anstatt zu sagen, wann wir gehen, fügen wir im Grunde das Objekt Gehen zu diesem Array hinzu. Nun, für den Bauplan hier, den Animations-Blueprint, wollen wir ihn zum Laufen bringen Wir wissen nicht wirklich, auf welchem Index es sich befindet, weil es sich möglicherweise bei Index Es könnte bei Index eins sein. Denken Sie daran, dass es niemals bei Index Null sein kann, denn bei Index Null laufen wir immer. Es kann also bei Index eins oder zwei sein, um zu wissen, was das ist. Anstatt es einfach abzurufen, können Sie von diesem hier aus ziehen und den letzten Index abrufen. Denken Sie daran, dass wir diesen in der vorherigen Lektion verwendet haben Fahren Sie fort und verbinden Sie ihn hier. Jetzt erhalten wir den letzten Index. Denken Sie daran, was auch immer der letzte Index ist, der aktuelle Knopf ist, den Sie drücken. Wenn ich auf „Gehen“ drücken würde, wäre mein letzter Index „Gehen hier“. Wenn Sie das bekommen und fragen, ob Sie den letzten Index für dieses Array abrufen möchten, ist dieser letzte Index identisch. Sie können also ein Gleichheitszeichen schreiben und diese Gleichheitsaufzählung auswählen Wenn dieser letzte Index , den Sie aus diesem Array erhalten haben , dem Gehen entspricht, ist dies wahr Es bedeutet, dass ich gehe. Denn der letzte Index, wenn es läuft, bedeutet das, dass ich gerade die Gehtaste drücke und gehen möchte. Ich möchte vom Leerlauf zu diesem Punkt übergehen und zurück zu diesem gehen. Wir gehen vom Gehen zum Untätigen, anstatt diesen zu benutzen, ist kein Gehen. Sie können den Code, den Sie zuvor geschrieben haben, kopieren und einfügen und ihn einfach auf Ausführen umstellen. Wenn der letzte Index gleich Running ist , bedeutet das, dass wir den Walking nicht drücken, weil wir ihn aus dem Array entfernt haben. Und wir drücken auch nicht auf das Hocken. Weil wir es aus dem Array entfernt haben, haben wir nur noch den Status Running Wenn es läuft, können wir weitermachen und das wird korrekt sein. Okay, mach einfach weiter und kopiere das für alle. Das war fürs Spazierengehen. Damit der Untätige sich ducken kann, kannst du darauf klicken Anstatt dass dieser hockt, kannst du ihn wieder einfügen Wähle Crouching, verbinde es. Geh zurück und aus der Hocke, um zu rennen, lösche diese Vergangenheit, wähle das Laufen aus und Du kannst sehen, dass es tatsächlich viel einfacher zu benutzen ist, aber das hier von der Hocke bis zum Gehen, wir können das alles löschen Wir brauchen es nicht von der Hocke zum Gehen. Das heißt, wir gehen. Wir können das Gehen wählen. Und das Gleiche vom Gehen bis zum Hocken verbunden. Das heißt, wir hocken uns. Wir können das auswählen und Hocken auswählen und es verbinden. Jetzt haben wir all diese vertauscht. Wir haben diese getauscht. Und dieser ist nur für den Sprung. Wir müssen hier wirklich nichts ändern. Lass uns kompilieren und lass uns auf Play klicken. Lass es uns testen. Du kannst es als Spieler sehen, ich kann auf das Steuerelement klicken, ich kann mich ducken Wenn du die Shift-Taste gleichzeitig gedrückt hältst, kannst du sehen, dass ich jetzt laufen kann, während ich gleichzeitig Strg- und Shift-Taste Wenn ich die Schicht loslasse, um wieder zu ducken, kannst du sehen, dass es funktioniert Und wenn ich die Steuerung loslasse, gehe ich jetzt hierher, die Bewegungsgeschwindigkeit stimmt nicht, und das müssen wir später korrigieren und das müssen wir später Aber Sie können sehen, dass ich jetzt mehrere Tasten drücken kann. Wenn ich die Schicht jetzt loslasse, kann ich normal laufen. Ich kann die Shift-Taste wieder gedrückt halten und gleichzeitig die Steuerung gedrückt halten. Sie können sehen, dass wir jetzt Tasten gleichzeitig gedrückt halten können. Und es wird diese Aktion ausführen, anstatt bevor wir die Taste loslassen mussten, bevor es diese Aktion ausführen kann. Ordnung, also lasst uns es auch auf dem Client testen, nur um sicherzugehen, dass es im Mehrspielermodus funktioniert. Für den Client kann ich hocken, für den Server kann ich mich ducken und es funktioniert nicht mehr so wie zuvor Wenn du dich daran erinnerst, was ich gesagt habe, müssen wir die Variable replizieren, bevor sie funktionieren kann Wenn wir also zum Spieler zurückkehren und ich auf den Bewegungsstatus klicke und ich auf Replizieren klicke Und repliziert und kompilieren und als Umfrage auf Abspielen klicken Nochmals, wenn ich in die Hocke gehe, kannst du sehen, dass es funktioniert. Und wenn ich gehe, funktioniert es wieder. Wir können es auch für zwei Kunden testen, nur um sicherzugehen. Spiele als Kunde und spiele. Jetzt haben wir zwei Kunden. Wenn Sie die Bewegung ausführen, funktioniert sie korrekt. Jetzt nochmal, um später die Bewegungsgeschwindigkeit zu korrigieren. Aber jetzt können Sie sehen, dass alles richtig funktioniert. 41. 3.30 Festsetzung der Spielergröße: Bevor wir mit der Fixierung der Bewegungsgeschwindigkeit fortfahren, müssen wir die Zeichengröße korrigieren Denn im Moment kannst du als Charakter sehen , wenn ich herumlaufe, dass ich ein sehr kleiner Charakter bin und wir ihn vergrößern müssen. Ich bin mir nicht sicher, ob meine Map sehr klein ist oder ob es diese Charaktere sind, die ich vom Marktplatz importiert habe. Sie sind sehr klein. So oder so, es ist nicht wirklich wichtig. Was wir tun müssen, ist die Spielergröße zu erhöhen. Das wird die einfachste Lösung sein. Lass uns weitermachen und auf die Spielerbasis im Mesh klicken. Denken Sie daran, dass Sie es in der Spielerbasis tun müssen. Es wird automatisch auf die Begegnung mit Terroristen angewendet , bei der Terrorist auf die Spielerbasis klickt. auf diesen Charakter geklickt und versucht, Ich habe auf diesen Charakter geklickt und versucht, ein bisschen mit den Größen zu testen. Ich habe versucht, das ein paar Mal zu vergrößern , um zu sehen, was hier am besten ist. Aber wenn du auf das Mesh klickst und auf dieses Schloss klickst, kannst du sehen, ob du hier einfach eine Zahl schreibst, das Y und das Z skalieren nicht zusammen mit dem x. Es ist nicht wirklich einheitlich skaliert Du kannst auf dieses Schloss klicken. Das heißt, wenn Sie eine Zahl ändern, wird sie für alle geändert. Ganz rechts, 1,7 hier zum Beispiel. Und Sie können weitermachen und auf Kompilieren klicken, und Sie können auf Play klicken. Sie können sehen, wenn ich jetzt herumlaufe, ich bin im Vergleich zur Umgebung sehr groß. Du kannst versuchen, verschiedene Größen auszuprobieren . Versuchen Sie, in Ihrer Umgebung herumzulaufen und zu sehen, wie sie aussieht. Ich denke, das ist vielleicht ein bisschen zu groß. Ich werde es auf 1,6 reduzieren . Fahren Sie fort und kompilieren Sie und klicken Sie auf Play. Und versuche jetzt in der Umgebung herumzulaufen, um zu sehen, ob deine Körpergröße mit den Boxen verglichen wird. Du kannst sogar hier rumgehen und vielleicht auf diese Rampe gehen , um die Größe zu sehen und dann hier raufzugehen. Ich denke, das ist viel besser als zuvor. Ich werde dieses 11.6 verwenden, wenn wir später Probleme haben Wir können es jederzeit ändern und später beheben Wir können die Nummer hier einfach ändern. Ich denke jedoch, dass das jetzt gut ist. Wir müssen auch diese Kollisionskapsel reparieren. Denn wenn ich jetzt herumrenne, gehe ich vielleicht zu diesem Teil und gehe hier rein. Du kannst sehen, dass ich mich mit allem überschneide. Und ich kann gegen die Wand springen. Und das liegt daran, dass Sie die Kollisionskapsel wieder vergrößern müssen. Wenn ich hier nach oben klicke und zur rechten Ansicht gehe, kann ich zum Beispiel die Kapsel um die halbe Höhe erhöhen, ich kann auf das Zeichen klicken. Bewege den Charakter nach unten, sodass der Fuß unten ist. Hier siehst du, dass ich es noch ein bisschen erhöhen muss. Wenn ich also erneut auf die Kollisionskapsel klicke, erhöhe sie, vielleicht um 150. Und ich kann erneut auf den Charakter klicken , den Charakter nach unten bewegen. Es passt viel besser als zuvor. Jetzt muss es nicht wirklich präzise sein. Wir werden später ein besseres System entwickeln. Aber klicken Sie einfach hier und stellen Sie sicher, dass der Fuß unten ist. Hier können Sie auf diese Kollisionskapsel klicken. Jetzt musst du es wahrscheinlich breiter machen. Sie können auf die Vorderansicht klicken, jetzt müssen wir den Radius etwas breiter machen. Und ich werde ihn einfach etwas breiter machen als diese Arme, damit sie nicht mit den Objekten kollidieren So etwas, vielleicht genau 60. Wir können weitermachen und auf Play klicken. Jetzt können wir herumlaufen. Es ist viel genauer als zuvor. Du kannst versuchen, hier rein zu kommen und du wirst sehen, dass es dir nicht erlaubt. Wir haben eine kleine Kiste. Wenn du auf Steuerung klickst, kannst du hierher gehen, aber ich kann die Steuerung auch verlassen und du siehst, dass ich mich jetzt überschneide Wir müssen diese kleinen Probleme später beheben Aber du kannst sehen, dass im Allgemeinen alles gut funktioniert, die Zeichengröße ist viel besser als zuvor Also lass uns weitermachen und weitermachen. 42. 3.31 Einstellen der Bewegungsgeschwindigkeit: Nachdem wir unser Bewegungssystem verbessert haben, wir nun die Bewegungsgeschwindigkeit fest Lassen Sie uns das schließen. Und ich gehe zurück zu dem Spieler in der Spielerbasis. Ich möchte hier drinnen eine neue Funktion erstellen. Lass uns hier oben auf das Plus klicken. Schreiben wir F und stellen die Bewegungsgeschwindigkeit für diese Funktion ein. Ich möchte einfach diese Bewegungskomponente des Charakters nehmen und die maximale Gehgeschwindigkeit festlegen. Das ist einfach das, was ich jetzt tun möchte. Ich möchte diese maximale Gehgeschwindigkeit davon abhängig machen, ob der Spieler läuft oder ob der Spieler geht oder ob der Spieler hockt Das können wir jetzt tun, indem wir von hier aus weiterleiten und „Auswählen“ sagen Und du kannst diesen mit dem Namen Select sehen. Dies ist das erste Mal, dass wir dieses verwenden. Und dieser ist wirklich, wirklich nützlich in Spielen oder hier im Grunde in jedem Spiel, das Sie mit einer echten Engine mit Bauplänen erstellen . Sie können eine Option auswählen, je nachdem, was Sie hier unten einstecken Nehmen wir zum Beispiel an, du steckst hier eine Waffe ein. Und je nachdem, welche Waffe du einsteckst, hast du etwa die Schussgeschwindigkeit oder du wirst wissen , wie viele Kugeln du in der Waffe hast und so Also ein sehr nützlicher Hinweis für diesen Fall. Wir werden die Bewegungsgeschwindigkeit je nachdem einstellen , ob wir rennen, hocken oder gehen. Wir benötigen diese Bewegungsgeschwindigkeit tatsächlich Holen wir uns den letzten Index wie zuvor. Denken Sie daran, dass der letzte Index die letzte Taste ist, die wir gedrückt haben , und lassen Sie uns wieder von hier ziehen und sagen, holen Sie sich eine Kopie, und lassen Sie uns diesen verbinden. Okay, jetzt bekommen wir die neueste Bewegung. Wir drücken auf die Tastatur und lassen uns jetzt von hier ziehen, statt vorher Wir haben daraus gezogen und gleich geschrieben und es so gemacht Nun zur Auswahl, jetzt wollen wir einfach nur den letzten Index abrufen und schauen was der Spieler gerade drückt Und wir können daraus ziehen und es hier einstecken. Und jetzt kannst du sie rennen, gehen und hocken sehen. Und der Grund, warum Sie das sehen , ist, dass es einfach aus dieser Aufzählung stammt, die wir geschrieben haben Wenn Sie dieser Aufzählung mehr Dinge hinzufügen , werden auch hier weitere Optionen hinzugefügt Was auch immer Sie zu dieser Aufzählung hinzufügen, wir können es jetzt für sehr nützlich halten, wenn Sie laufen, können Sie diese Laufgeschwindigkeit variabel einstellen Sie können sie hineinziehen und sie hier einstecken , wann immer Sie gehen, Sie können sie hier einstecken, wann immer Sie in der Hocke sitzen. Wir haben noch keinen wirklich. Klicken wir einfach mit der rechten Maustaste auf diese, die zu einer Variablen heraufgestuft wurde, und nennen wir sie Crouch Speed Lassen Sie uns jetzt weitermachen und kompilieren. Im Moment habe ich nicht wirklich spezifische Bewegungszahlen, wir werden diese später anpassen. Zum Beispiel kannst du für das Laufen 1.000 für das Gehen schreiben, du kannst 500 für das Hocken schreiben, du kannst 150 schreiben Das ist nur, um zu sehen, ob es funktioniert, und Sie können weitermachen und es besser organisieren Ordnung, für diese eine eingestellte Bewegungsgeschwindigkeit möchte ich zurück zum Ereignisdiagramm gehen. Und fangen wir mit der Hocke an. Für die Hocke machen wir die Hocke hier. Und dann müssen wir die eingestellte Bewegungsgeschwindigkeit nehmen und sie hier drüben einstellen Auch hier unten müssen wir die Bewegungsgeschwindigkeit einstellen, sie hierher ziehen, die Bewegungsgeschwindigkeit einstellen, denn wenn wir nicht mehr hocken, müssen wir wieder den letzten Index abrufen und schauen, müssen wir wieder den letzten Index abrufen und ob es Laufen, Gehen oder Hocken heißt Das müssen wir auch beim Gehen tun. Lassen Sie uns erneut die eingestellte Bewegungsgeschwindigkeit verschieben. Stecken Sie es ein. Und das Gleiche hier unten, Bewegungsgeschwindigkeit einstellen. Nun zum Laufen, das ist egal, denn wenn wir das Gehen und das Hocken entfernen, läuft es hier als letzter Index und es nimmt die Laufgeschwindigkeit Okay, lass uns auf Play klicken und es testen und schauen, ob alles funktioniert Also hier bin ich als Server. Ich renne eigentlich zum Laufen hier. Du musst es auch zuerst ändern. Hier ist die Standardeinstellung in der katalen Bewegungskomponente für die maximale Gehgeschwindigkeit Da ich hier geschrieben habe, dass die maximale Gehgeschwindigkeit standardmäßig 1.000 sein würde, schreiben wir hier vorerst auch 1.000 Also sind sie hier für die Gehgeschwindigkeit gleich, 500, in Ordnung. Lass uns noch einmal auf Play klicken, getestet. Jetzt laufe ich und es ist wirklich schnell. Wir werden das später anpassen. Crolick, geh jetzt laufen. Sie können sehen, dass alles funktioniert, ducken und gleichzeitig Schicht nehmen Sie sehen, es gibt einen Fehler, eine Kampfhocke oder eine Druckkauerung und dann drücken Sie auf Gehen Sie können sehen, dass die Bewegung immer noch die Hocke ist. Der Grund dafür ist, dass, wenn du in die Hocke gehst, wenn du das schreibst, du diese eine Hocke hast Du duckst dich nie, es sei denn, du nimmst tatsächlich deinen Finger vom Wenn wir uns ducken und gleichzeitig gehen, befinden wir uns tatsächlich immer noch in diesem Wir müssen uns tatsächlich ducken damit die Bewegungsgeschwindigkeit stimmt Gehen wir zurück zur eingestellten Bewegungsgeschwindigkeit. Gehen wir in die Hocke , damit es richtig aussieht. Was wir tun werden, ist, das hier zu kopieren Und ich werde das hier erweitern, kopieren und einfügen. Was Sie tun müssen, ist, sich davon zu distanzieren und gleich zu sagen und wir müssen sehen, ob das gleichbedeutend mit Hocken ist. Wir müssen uns fragen, ob der Spieler gerade hockt oder nicht? Wenn der Spieler gerade hockt, müssen wir dieses Ducken hier einfach noch einmal schreiben Wenn der Spieler hockt, also wenn der letzte Der Spieler drückt zwar auch die Ducktaste, aber der letzte Index läuft, der Spieler geht gerade Wir müssen es tatsächlich, lass uns es später verbinden Wir können uns ducken. Wenn wir das Laufen entfernen, verbinden wir sie hier. Das ist die Hocke Und hier ducken wir uns. Und wir können es einfach hier einstecken. Nochmals, ich werde hier einfach klicken und einen hinteren Knoten erstellen und ich werde diesen hier anschließen. Ja, das sieht richtig aus. Wenn ich jetzt in die Hocke gehe, wird die Hocke wieder hier stehen. Wenn ich nicht in die Hocke gehe, nehmen wir , ich drücke die Walk-Taste während ich die Hocke drücke, dann geht es tatsächlich in die dann geht es Und dann werde ich diese Gehgeschwindigkeit anwenden. Wenn ich jedoch aufhöre zu laufen und immer noch die Ducktaste drücke, es einfach hier in die Hocke gehen. Lass uns auf Play klicken und sehen. Klicken wir auf Shift to Walk. Jetzt können Sie sehen, ob ich auf Hocken und gleichzeitig auf Shift klicke. Sie können sehen, wie sich die Bewegungsgeschwindigkeit korrekt anpasst Wenn ich die Schicht wieder verlasse und mich in die Hocke gehe, kannst du sehen, dass sich die Bewegungsgeschwindigkeiten hier korrigieren und sie korrekt laufen Wenn ich verschiebe, in die Hocke gehe und dann verschiebe oder dann erst die Schicht verschiebe und dann in die Hocke gehe, kannst du sehen, dass es Unsere Bewegungsgeschwindigkeit funktioniert korrekt. Im Grunde genommen haben wir mit dieser Funktion die Bewegungsgeschwindigkeit eingestellt. Jetzt fragen wir, ob der Spieler hockt oder nicht. Und der Grund, warum wir das tun, ist, wenn wir es nicht tun und zuerst die Ducktaste drücken, werden wir diese Duckfunktion anwenden Wenn Sie jedoch immer noch Ducktaste und dann die Gehtaste drücken, wird diese Hockertaste immer noch angewendet, weil Sie sich nie ducken, diese Taste niemals loslassen, um in die Hocke diese Taste niemals loslassen Im Grunde würde es die falsche Bewegung ausführen, obwohl Bewegung auch für die Gehgeschwindigkeit eingestellt habe Wir fragen hier nur, hocken wir oder Wenn wir hocken, hocken Sie einfach weiter. Wenn wir nicht hocken, stellen Sie sicher, dass Sie sich ducken, bevor Sie das alles Denn wenn du nicht in die Hocke gehst, bist du Wir stellen nur sicher, dass wir die richtige Bewegung anwenden Jetzt, da die Bewegungsgeschwindigkeit erreicht ist, können wir alles speichern und mit der nächsten Lektion fortfahren. 43. 4.01 Raum für Ziel-Offset-Blend-Effekte: Jetzt sind wir bereit, den Aim Offset zu erstellen. Damit der Spieler den Zielversatz erstellen kann, kehren wir zum Player-Ordner zurück. Gehen wir hier zurück zu den Animationen. Und klicken wir mit der rechten Maustaste hier, Gehe zu Animation. Jetzt haben wir etwas, das als Ziel-Offset bezeichnet wird, aber wir haben auch einen einfacheren Wert, der als Ziel-Offset One D bezeichnet Ziel-Offset One wird. Das ist dasselbe wie der Verschmelzungsraum. Sie haben tatsächlich einen sogenannten Blend Space. Ein D für diesen, ich zeige es dir nur kurz für den Blend Space. Sie können zum Beispiel sehen, dass wir vorher die Acht-Wege-Bewegung hatten, aber ein D steht für den Übergang vom Gehen zum Laufen — ein sehr einfacher Mischraum. mich nun den Am-Offset Lassen Sie mich nun den Am-Offset mit der rechten Maustaste wieder löschen. Anstatt die Acht-Bewegung auszuführen, wechseln wir zu Legacy und verwenden den Ziel-Offset. Eins D. Ich wähle erneut mein Skelett und nenne es ein O und stehe unbewaffnet Doppelklicken wir auf dieses. Dies ist der Zielversatz. Der Zielversatz, sehr, sehr einfach. Unser Ziel ist nur das Zentrum, auf das wir uns freuen. Und der Spieler schaut hier runter. Und der Spieler schaut hier nach oben. Was wir tun müssen, genau wie beim Blend Space, wir haben eine horizontale Achse. Das ist unsere Richtung. Wir können eine Richtung schreiben. Der Mindestwert für die Richtung ist -90. Dabei schauen wir nach unten, der Höchstwert ist 90, diesem Fall suchen wir nach der Gewichtsgeschwindigkeit nach oben Ich werde mich einfach bewerben, genau wie zuvor, was wir mit den Blend Spaces gemacht haben Ich werde etwas Glätte auftragen , damit es besser aussieht Und jetzt sind wir bereit, die Animation anzuwenden . Lass uns alles speichern. Jetzt können Sie sehen, dass ich auch die Ziel-Offsets für Sie importiert die Ziel-Offsets für Sie Wenn du zum Beispiel einen von ihnen nimmst , lass uns einfach diesen machen Sie können sehen, dass beim Versuch, es hineinzuziehen, ungültiger additiver Animationstyp angezeigt wird. Also müssen wir das beheben. Und lassen Sie uns mit der nächsten Lektion fortfahren , um diesen additiven Typ zu korrigieren. 44. 4.02 Vorbereitung der Ziel-Offset-Animationen: Bevor wir unsere Ziel-Offsets verwenden können, müssen wir sie vorbereiten Gehen wir also zu den Assets-Animationen. Und hier befinden sich all Ihre Animationen. Denken Sie daran, es ist nicht in den Animationen enthalten, die ich Ihnen gegeben habe. Es ist in diesen, den Assets, Animationen, auf die wir vorhin gezielt wurden. Suchen wir zum Beispiel nach einem Animationsoffset. Wenn Sie hier einfach AO aufschreiben, werden Sie alle Animationsoffsets sehen Jetzt kannst du auf einen von ihnen klicken und hier kannst du dir zum Beispiel diesen hier ansehen Das ist die Pistole, die nach vorne schaut, die Pistole in der Hocke in der Mitte. Hier kannst du dir den Typ des Zusatzstoffs ansehen, davon war Bei diesem musst du hier klicken und ihn auf Mesh Space setzen. Dann musst du hier klicken und ausgewählter Animationsframe sagen. Jetzt musst du das Idol für diese Animation auswählen. Das Idol für diese Animation ist das Pistol Crouch Idol, nach dem wir Wenn du nur nach einem Idol suchst, diesem hier, Animation Crouch einem Idol suchst, diesem hier Stellen Sie sicher, dass Sie dies für Ihr gezieltes Skelett wählen und nicht für die standardmäßige Manqin-Animation-Pistole Das wäre das Richtige für diesen. Lass uns weitermachen und jetzt für diesen sparen. Du kannst sehen, ob ich es schließe und zu meinen Spieleranimationen zurückkehre. Öffne es hier, du kannst sehen, ob ich zurück zur Sensorpistole gehe , ob ich sie hier finde Dieser hier. Sensorpistole in Wenn ich es hier reinziehe, kannst du jetzt sehen, dass es funktioniert Wir müssen das mit allen machen. Sie können sehen, dass die anderen auch für den Additivtyp ungültig sind . Lassen Sie mich diesen vorerst einfach löschen. Und wir müssen es für alle tun. Jetzt gibt es einen einfacheren Weg, dies zu tun. Wenn Sie erneut auf die Assets, Animationen, klicken , suchen Sie erneut nach dem AO. Jetzt kannst du auf die erste klicken, Shift gedrückt halten. Klicken Sie auf den letzten, Sie können schreiben, klicken Sie auf Gehe zu Asset-Aktionen und klicken Sie dann auf Massenbearbeitung über Eigenschaftsmatrix. Hier können Sie die Einstellungen für alle gleichzeitig bearbeiten . Ein sehr praktischer Trick, um das zu tun. Hier können Sie sehen, dass Sie auch andere Einstellungen wie die Komprimierung und die Animation bearbeiten können . Sie können solche Dinge bearbeiten, aber im Moment interessieren uns nur die additiven Einstellungen hier. Sehen wir uns hier den Typ der additiven Animation an. Sie können hier klicken und es für alle auf Mesh Space setzen . Für alle können Sie hier klicken und sie auf den ausgewählten Animationsframe setzen . Was nun die Basisanimation der Pose angeht, kann sie nicht für alle gleich sein da einige von ihnen eine Pistole, ein Gewehr usw. haben Lassen Sie uns also alles schließen. Nachdem wir die Grundeinstellungen festgelegt haben, können wir sie zunächst speichern. Was wir nun tun können, fangen wir zum Beispiel mit der Hockerpistole Klicken Sie auf diesen. Ich klicke auch auf diese Hockenpistole nach unten und mit der Hockenpistole nach oben. Wir haben nur drei für jede Pistolenmitte nach unten und oben. Wir können sie jetzt hier anklicken, mit der rechten Maustaste auf Säureaktionen klicken. Massenbearbeitung über Eigenschaftenmatrix Auch hier können wir zu den additiven Einstellungen wechseln. Klicken Sie hier auf diese Schaltfläche, hier auf diese Quadrate. Wir müssen die ungenutzte Animation für diese Muschelpistole finden für diese Muschelpistole finden Wir können sehen, dass es die Hockerpistole ist. Wir müssen das Untätige finden. Für die Pistole Crouch Idle. Jetzt ist es richtig. Lass es uns schließen. Wir müssen das auch für das Gewehr hier machen. Klicken Sie auf die Gewehrhocke, Gewehrhocke und auch auf Gewehrhocke Klicken Sie mit der rechten Maustaste auf Actions Bulk Edd via Property Matrix. Gehen Sie zu den additiven Einstellungen. Klicken Sie auf die Quadrate. Jetzt müssen wir die Hocke finden. Für das Gewehr ducken Sie sich, hier das Gewehr. Mach es wieder zu Sie können sehen, dass es dieselbe Methode ist, aber wir müssen es mehrmals machen. Jetzt ist es für Unbewaffnete. Dieser und dieser. Rechtsklick, Massenbearbeitung über die additiven Einstellungen der Eigenschaftsmatrix . Klicken Sie hier und suchen Sie dann nach Idle. Jetzt müssen wir die Hocke für die Untätigen finden, die unbewaffnet sind, einfach so Also werde ich das Gleiche auch für den Stand tun das Gleiche auch für den Stand Und ich kann sehen, dass dieser einen falschen Namen hat. Also werde ich es einfach umbenennen, bevor ich fortfahre. Dieser heißt AO, haltet euch unbewaffnet zurück. Stattdessen werde ich es jetzt für den Stand auftragen, genau wie beim Hocken Und ich werde weitermachen. Im Moment habe ich sie alle vorbereitet, sodass Sie sehen können, ob Sie nur nach einem davon suchen, zum Beispiel nach dem AO-Standgewehr, Sie können darauf klicken und jetzt können Sie sehen , dass Sie es mit dem Animation-Idol-Gewehr angewendet haben Animation-Idol-Gewehr Vergewissere dich nur, dass du die richtige Leerlauf-Animation anwendest , sonst ist sie falsch Also habe ich es für den ganzen Stand hier gemacht, genauso wie für die Hocke Speichern wir jetzt alles und fahren wir mit der nächsten Lektion 45. 4.03 Hinzufügen von Animation zum Ziel-Offset: Lassen Sie uns nun den Am-Offset für die unbewaffneten Bewegungen erstellen Am-Offset für die unbewaffneten Bewegungen Lassen Sie uns zu den Bauplänen übergehen. Und ich gehe wieder zurück zum Animationsordner. Ich mache es eigentlich zuerst für den Stand. Bevor wir die anderen machen, klicken wir hier unbewaffnet auf diesen Stand Denken Sie daran, dass wir hier die Richtung und die Geschmeidigkeit des Gewichts festgelegt haben Was wir jetzt tun können, ist, nach AO für diesen zu suchen. Jetzt ist es unbewaffnet auf der Tribüne. Ich brauche die unbewaffnete Bewegung. Der Stand beginnt also von hier nach hier. Ich brauche zuerst das Zentrum, nehmen wir das Zentrum unbewaffnet Klicken Sie und ziehen Sie und halten Sie die Umschalttaste gedrückt, dann wird es hier einrasten. Nun, für die -90 in der Richtung, in der sie nach unten schaut, brauchen wir diesen so genannten Stand, also unbewaffnet klicken und ziehen und Shift-Taste gedrückt halten, um ihn in diese Ecke einzurasten Stehen Sie dann für die Aufwärtsbewegung unbewaffnet auf, halten Sie die Umschalttaste gedrückt und stecken Sie es hier Wenn Sie jetzt auf die Steuerung klicken und die Maus bewegen, können Sie sehen, dass dieser Animationsversatz aktiv wird. Das sieht toll aus. Wir können jederzeit anpassen, wie weit er nach unten schaut und wie weit er später nach oben schaut, wenn wir das für lächerlich halten. Wir können es also immer so machen, anstatt so. Wir können es später jederzeit anpassen. Aber lassen Sie uns vorerst alles speichern. Das funktioniert jetzt, lass es uns für die anderen machen. Ich werde eigentlich einfach mit der rechten Maustaste auf diesen klicken und ihn duplizieren. Und nennen wir es Muschelarm. Und jetzt das Gehen, es ist eigentlich dasselbe wie das Stehen Zum Gehen brauchen wir eigentlich keinen. Jetzt, wo wir das dupliziert haben, doppelklicken wir darauf Lassen Sie mich diesen vorerst einfach löschen. Jetzt ist das die Hocke. Suchen wir hier nach der Hocke, Mittelarm der Hocke, dem Arm nach unten und dem Hocken mit dem Arm nach oben dem Jetzt können Sie sehen, dass das auch funktioniert. Okay, lass uns weitermachen und jetzt alles speichern. Wir werden es später für die Hockerpistole und das Gewehr usw. tun , aber im Moment brauchen wir sie nicht wirklich Lass uns jetzt Colosso runter. Bevor wir diese Animationsversätze anwenden können, müssen wir die Zielrichtung berechnen Wir müssen wissen, in welche Richtung der Spieler zielt, ob es nach oben oder nach unten gerichtet ist Und das machen wir in der nächsten Lektion. 46. 4.04 Berechnung der Zielrichtung: In Ordnung, jetzt ist es an der Zeit, die Zielrichtung zu berechnen. Und wir können es ganz einfach tun, indem wir zum Spieler gehen. Gehen wir nun zur Spielerbasis hier drinnen und machen wir tatsächlich eine neue Funktion. Lassen Sie uns eine neue Funktion namens Zielrichtung berechnen erstellen. Lassen Sie mich für diese Funktion sie einfach kompilieren und zum Ereignisdiagramm zurückkehren. Der Ort, an dem ich das platzieren möchte, ist für dieses Look-Event am sinnvollsten. Hier steuern wir die Mausbewegung , wenn wir im Spiel sind. wäre sinnvoller, es hier zu platzieren . Lassen Sie mich das nach diesem hier einfach ziehen, eine Richtung berechnen und es einfach hier einfügen. Im Grunde wollen wir nun einen Float namens Aim Direction setzen. Lassen Sie uns einen neuen Float namens Aim Direction erstellen. Und lassen Sie uns es in eine Float-Variable umwandeln. Hoppla, Ganzzahl. Schweben, kompilieren und speichern. nun innerhalb Lassen Sie uns nun innerhalb dieser Zielrichtung vorgehen. Wir wollen es einfach festlegen. Denken Sie jetzt daran, was ich bereits gesagt habe: Im Mehrspielermodus können Sie niemals eine Variable für einen Client festlegen. Sie müssen sich auf dem Server befinden, um eine Variable festzulegen, und sie dann so einstellen, dass sie repliziert Du musst diese Einstellung setzen, um sie zu replizieren, weil die Clients wissen müssen , in welche Richtung die anderen Spieler zielen Die Animationen werden für alle verbundenen Clients korrekt aktualisiert für alle verbundenen Clients Der Server muss diese Informationen zurück auf die Clients replizieren Informationen zurück auf die Clients Andernfalls können die Clients nicht sehen, in welche Richtung alle Spieler zielen Und sie werden sich einfach freuen. Und es ist, als würde nichts passieren, wenn Sie Variablen setzen und sie so einsetzen, dass sie sie replizieren Sie können Variablen niemals über den Client setzen und replizieren, das muss über den Server laufen Jetzt kannst du sehen, ob ich daraus einen Printstring schreibe. Jetzt gebe ich dir einen Trick, um zu wissen, wann du auf dem Server bist und wann du auf dem Client bist. Im Moment sollte es automatisch eine Zeichenfolge ausgeben, wenn ich meine Maus bewege, weil ich es hier angeschlossen habe und es wird hier verbunden, wenn ich jetzt kompiliere, und ich klicke auf Play und bewege meine Maus. Wenn ich meine Maus bewege, bin ich auf dem Client. Sie können auch sehen, dass ich hier oben als Client spiele , sodass der Client diesen Code tatsächlich ausführen kann. Wenn der Client Code drucken kann, bedeutet das, dass der Code, den Sie schreiben, auch auf dem Client läuft. Du kannst sehen, wenn ich als Server spiele, es ist tatsächlich der zweite Client. Lass es mich jetzt hier oben ändern , um als Listen-Server zu spielen. Lass mich stattdessen auf Play klicken. Jetzt spiele ich als Server und du kannst sehen, dass es der Server ist, der die Zeichenfolge auf dem Bildschirm ausgibt, wenn ich als Client spiele. Lass mich einfach nochmal spielen und diesen Client nehmen. Jetzt können Sie sehen, dass der Code jetzt als Client gedruckt wird. Wenn Sie eine Zeichenfolge auch über den Client drucken können, bedeutet dies, dass dieser Code sowohl vom Server als auch vom Client ausgeführt wird und nicht vom Server allein. Wenn wir diese Variable setzen müssen, müssen wir sicherstellen, dass wir auf dem Server laufen. Was wir wieder tun können, genau wie zuvor, nehmen und sagen, dass der Switch die Autorität hat. Wir stellen sicher, dass wir das nur auf dem Server-Client ausführen . Sie müssen den Code immer noch ausführen. Wenn Sie der Client sind, müssen Sie zuerst den Server durchlaufen. Gehen wir zurück zum Event-Graph. Ich gehe einfach wieder runter. Wir werden das später organisieren. Hier unten können wir benutzerdefinierte Ereignisse schreiben und diese dann über den Server laufen lassen. Und ich nenne es Calculate a Direction. Und lassen Sie uns das auf dem Server laufen lassen und dabei zuverlässig sein. Und ich nehme das, berechne eine Richtung und verbinde es mit hier. Fahren Sie fort und kompilieren Sie, jetzt gehen wir zurück zur Berechnung einer Richtung. Und lassen Sie uns diesen Server laufen die Zielrichtung hier unten berechnen. Und dann können wir mit dem Code fortfahren. Wenn Sie der Client sind, gehen Sie durch den Server und führen das aus. Dadurch wird sichergestellt, dass Sie als Client diesen Server niemals alleine ausführen können. Es muss über den Server gehen. Okay, jetzt zur Zielrichtung, wie wir das berechnen können, ist die erste Liste, rechtsklicken und Rotation steuern sagen. Jetzt bekommen wir die Rotation für den Player-Controller. Dann können wir sagen: Holen Sie sich die Acta-Rotation. Wir haben die Rotation für den Player-Controller und wir haben die Rotation für den Schauspieler Was wir nun tun können, um einen Mittelpunkt zu finden? Wir müssen diesen Mittelpunkt finden um zu wissen, wohin der Spieler zielt. Wir können das nehmen und Delta sagen und dann diesen als Delta-Rotator bezeichnen Du kannst das einstecken, geschieht durch die Rotation des Player-Controllers und die Rotation des Schauspielers Es wird durch diesen Delta-Rotator einen Mittelpunkt finden durch diesen Delta-Rotator Lasst es uns jetzt hier kaputt machen, Rotatoren. Wenn du einen Rotator kaputt machst, kannst du X, Y und Z sehen. Du kannst es auch einfach machen Wenn du schreibst, hier klickst und Split Struct-Pin sagst, ist das eigentlich dasselbe Ich würde hier nur gerne splitten. Also werde ich Break, Break Rotator schreiben. Und ich kann XY und Z für die Zielrichtung sehen, wir brauchen das Y, das Y. Du kannst es nehmen und es hier einstecken Jetzt berechnest du die Zielrichtung tatsächlich richtig. Sie können weitermachen und alles kompilieren und speichern. Jetzt sind wir bereit , dies auf den Animations-Blueprint anzuwenden und dafür zu sorgen, dass unser Player den Am-Offset verwendet. 47. 4.05 Hinzufügen des Ziel-Offsets: Lassen Sie uns nun fortfahren und den Zielversatz zum Animations-Blueprint hinzufügen den Zielversatz zum Animations-Blueprint Gehen Sie zurück zum Animationsordner und öffnen Sie den Player-Animations-Blueprint Hier gehe ich zurück zum Animationsdiagramm. Und von hier aus lassen Sie uns das tatsächlich unterbrechen. Ich werde dir mit diesem einen Trick zeigen. Für diese Zustandsmaschine können Sie tatsächlich Cache ziehen und sagen und dann auf diesen klicken. Zwischengespeichert speichern Lassen Sie mich das Unarmed Movement Cached nennen. Was das ist, es nimmt nur die Fortbewegung, diese ganze Zustandsmaschine, und sie speichert sie in diesem Cache . Es speichert es hier drinnen. Anstatt diesen zu nehmen, können wir eigentlich einfach den Cache benutzen. Lass es uns hier aufstellen. Anstatt es erneut zu benutzen, klicken wir mit der rechten Maustaste und sagen Unbewaffnete Bewegung Sie können sehen, dass Sie diesen verwenden können. Habe hier unbewaffnete Bewegung zwischengespeichert. Du kannst ihn jetzt anstelle des hier oben verwenden. Lass uns mit der rechten Maustaste klicken und nach AO suchen. Lass mich tatsächlich daran erinnern , wie ich es genannt habe. Lasst uns diesen 10er-Stand unbewaffnet benutzen. Suchen wir nach O, Stand unarmed, und stellen wir sicher, dass es das ist. Offset-Spieler um 01:00 Uhr Ein Offset-Spieler, sei bewaffnet. Genau wie wir es hier genannt haben. Wir nannten es den AO-Standarm. Lass uns weitermachen und das als Basispfosten verbinden, die unbewaffnete Bewegung mit dem unbewaffneten Animationsversatz Lass uns weitermachen und es hier verbinden. Was die Zielrichtung angeht. Denken Sie daran, wir haben das bereits berechnet. Wir müssen zum Event-Graph gehen und vom Spieler wegziehen und nach der Zielrichtung suchen . Dieser hier. Lassen Sie uns es hier im Blueprint wieder zu einer Variablen heraufstufen und es eine Richtung nennen Verbinden wir es hier am Ende des Diagramms. Und lass mich einfach doppelklicken und es ein bisschen schöner machen In Ordnung, lassen Sie uns kompilieren. Und jetzt kann ich zurück zum Animationsdiagramm gehen. Und hier drinnen, die Richtung, in die ich diese Zielrichtung einschlage, ich füge sie hier ein. Und jetzt lasst uns kompilieren. Wenn wir jetzt auf Play klicken, wollen wir sehen, ob es funktioniert. Und du kannst sehen, dass es funktioniert. Wenn ich jetzt nach unten schaue und wenn ich nach oben schaue, funktioniert es tatsächlich. 48. 4.06 Hinzufügen der Spieler-Kamera in den Kopf: Wenn wir jetzt weitermachen und das Spiel spielen, können Sie sehen, dass die Kamera einfach herumschwebt und nicht wirklich dem Kopf folgt , wenn wir auf und ab schauen Um das zu tun, gehen wir wieder hierher zurück. Fügen wir die Kamera dem Kopf des Charakters hinzu. Um das zu tun, müssen wir jetzt das Skelett für unseren Charakter finden . Es befindet sich auf dem Marktplatz, im Inneren des militärischen Charakters Silva, und das ist das Skelett, das wir bisher verwendet haben Lass mich hier einfach darauf doppelklicken. in diesem Skelett Lasst uns in diesem Skelett den Kopfknochen finden. Sie können einfach hierher gehen und versuchen, nach dem Kopfknochen zu suchen, und Sie können sehen, dass er hier unten ist. Du kannst auch einfach hier oben danach suchen. Eine dritte Methode besteht darin, hier oben auf den Charakter zu klicken. Gehe zu Bones und gehe zu All Hierarchy. Hier werden dir alle Knochen des Charakters angezeigt. Du kannst einfach weitermachen und auf den Kopfknochen klicken. Und Sie können sehen, dass es auch hier ausgewählt wird. Ich möchte erneut auf den Charakter klicken und zu Bones gehen. Und wähle es nur aus, damit ich diese Knochen wieder entfernen kann. Nachdem Sie den Kopfknochen ausgewählt haben, wir weiter und klicken mit der rechten Maustaste hier, um einen Socket zu erstellen. Fügen Sie einen Socket für einen Socket hinzu. Ist es nur ein leerer Halter, dem Sie Gegenstände daran befestigen können. In diesem Fall verwenden wir diesen Halter, um unsere Kamera am Kopf zu befestigen. Sie können sich auch vorstellen, dass Sie ihn auch für Waffen verwenden können . Nehmen wir zum Beispiel an, du möchtest eine AK 47 an der Seite des Charakters befestigen, kannst du hier jederzeit eine Buchse an der Seite des Charakters anbringen, vielleicht an der Hüfte. Und dann kannst du die Waffe auch über eine Buchse befestigen . Aber im Moment werden wir nur eine Kamera hinzufügen. Lassen Sie uns diesen Kopfknochen korrigieren und zu Sockel hinzufügen gehen. Lassen Sie mich darauf klicken und auf meiner Tastatur auf zwei klicken , um es umzubenennen. Und lass es mich für Buchse und Kamera nennen. Okay, diese Sockel-Kamera haben wir jetzt, lass uns weitermachen und alles verlieren. Gehen wir jetzt zurück zum Bauplan. Gehe zum Spieler und gehe zur Spielerbasis. Okay, hier drinnen. Gehen wir zurück zum Viewport. Und jetzt wollen wir diese Feder am Kopf oder an der Sockel-Kamera befestigen Kopf oder an der , die wir gerade hier in den Buchsen erstellt Sie können im Detailfenster sehen, wenn Sie die Feder auswählen, können Sie den Abschnitt mit den Buchsen sehen und Sie können auch sehen, dass sie an nichts richtig befestigt ist Wenn wir nun auf diesen Ordner klicken, seht ihr jetzt den Socket. Wenn Sie das nicht sehen, liegt das daran, dass Sie diese Feder nicht in dieser Netzkomponente haben . Wenn ich das so nach draußen ziehe, kannst du sehen, wenn ich auf diesen Ordner klicke , passiert jetzt nichts. Du kannst sehen, dass du den Federarm in den Charakter stecken musst. Es ist ein Kind dieses Netzes. Bevor Sie hier klicken und all das sehen können, können Sie zum Beispiel auch auf den Condo-Terroristen klicken. Wenn du auf den Anti-Terror-Namen klickst, kannst du hier nicht wirklich auf die Quelle für den Anti-Terror-Namen klicken , du musst das über das übergeordnete Element machen In der Spielerbasis ist das also möglich. Sie werden den Federarm innerhalb des Netzes haben. Und dann können wir für den Federarm hier klicken und dann die Kamera auswählen. Denken Sie daran, wenn Sie nichts in der Masche haben, zum Beispiel hier haben Sie nichts, Sie haben es gelöscht und kein Charakter steht hier, dann werden Sie den Sockel auch hier nicht finden. Deshalb brauchen wir in der Spielerbasis einen Charakter, der hier drin sein muss, weil wir hier klicken müssen und ihn dann zu einem Socket hinzufügen müssen. Klicke auf diese Kamera. Jetzt ist die Kamera an den Charakter angeschlossen. Sie können sehen, dass es sich tatsächlich mit der Kopfbewegung bewegt. Es ist tatsächlich angehängt. Jetzt ist es realistischer. Jetzt schwebt es. Klicken wir auf die Feder für die Zielarmlänge. Ich werde Null schreiben, da es ein First-Person-Spiel ist. Sie dann für die Position und die Rotation Klicken Sie dann für die Position und die Rotation einfach auf diese Pfeile, um die Position und die Rotation ebenfalls zurückzusetzen. Sie können weitermachen und alles kompilieren und speichern. Lass uns weitermachen und auf Play klicken und sehen, wie es aussieht. Du kannst sehen, dass wir uns gerade im Kopf des Charakters befinden, aber wenn ich nach unten und dann nach oben schaue, kannst du sehen, dass er dem Kopf folgt. Wenn ich jetzt still stehe und einen Blick darauf werfe, als ob ich direkt vor mir stehe, kannst du sehen, dass es auch dem Kopf folgt. Die Kamera bewegt sich beim Laufen genauso leicht . Sie bewegt sich tatsächlich mit derselben Bewegung wie der Kopf. Okay, jetzt ist es an unseren Player gebunden. Gehen wir zurück und versuchen wir jetzt, den Sockel einzustellen. Wenn du das Skelett wieder öffnest, gehe ich zurück zur Militärfigur Silva, öffne das Skelett Und hier drinnen klicken wir auf die Sockel-Kamera. Und ich werde hier einfach nach vorne gehen und versuchen, die Steckdose einzustellen. Sie können für den Socket sehen, wenn Sie ihn ausgewählt haben, haben Sie auch die relative Position. Sie können hier klicken und ziehen. Und ich versuche nur, es nah an den Augen einzustellen weil die Kamera realistischerweise nah an den Augen des Charakters ist nah an den Augen des Charakters Vielleicht zehn im X und in dem Y und dem Z. Es ist momentan in Ordnung Lass mich weitermachen und nochmal spielen, um zu sehen, wie es aussieht. Jetzt sind wir im Kopf des Charakters. Wenn wir nach unten schauen, wenn wir nach oben schauen, sieht es gut aus. Der Kopf des Charakters ist jedoch im Weg. Ich kann auch sehen, dass die Seiten des Charakters im Weg sind. Lass mich tatsächlich zurückgehen. Lass mich die Kamera ein wenig nach vorne schieben. Wenn du darauf klickst und ziehst, kannst du sehen, dass du die Kamera nach vorne schiebst. Ich möchte es jedoch nicht zu weit nach vorne schieben. Ich werde einfach fünf statt Null schreiben. Lass mich einfach nochmal versuchen zu spielen. Sieht besser aus. Jetzt können wir jedoch immer noch Teile des Kopfes sehen. Die Sache ist, wir können den Körper in unserem Charakter hier nicht sehen . Alles sieht gut aus. Der Kopf ist jedoch im Weg. Lassen Sie uns in der nächsten Lektion den Kopf für diesen Charakter entfernen. Nur der Feind kann deinen Kopf sehen, aber du als Spieler kannst den Kopf nicht sehen, es ist so in der Kamera. Lass uns in der nächsten Lektion weitermachen und das machen. 49. 4.07 Verstecken des Spielermodell-Kopfes: Um die Charaktere zu verstecken, die auf den Spieler zusteuern, kannst du erneut zum Spieler gehen Und lass uns die Spielerbasis öffnen. Was wir tun wollen, ist diesen Kopf für mich als Spieler zu entfernen . Wenn ich meinen Charakter spiele, können die Gegner jedoch immer noch meinen Kopf hier oben sehen. Der Grund, warum ich den Kopf für mich entferne liegt darin, dass ich, wenn ich der First-Person-Charakter bin , die Kamera dabei habe. Es ist tatsächlich in meinem Kopf, genau das, und ich will das alles nicht sehen, es ist nicht notwendig. Jetzt entfernen wir den Kopf für den Spieler, der den Charakter spielt. Gehen wir zum Van-Diagramm hier drinnen. Lass es uns einfach hier oben im Startspiel machen. Wenn wir hier anfangen, das Spiel zu spielen, kannst du mit der rechten Maustaste klicken und schon hast du eine Funktion namens Ausblenden oder Namen. Knochen nach Namen verstecken. Und wähle das aus. Und es wird diese Mesh-Variable automatisch für Sie erstellen . Diese Variable stammt einfach aus dieser Netzvariablen. Sie können sie einfach anklicken und hineinziehen. Es ist derselbe. Okay, lassen Sie uns weitermachen und es verbinden. Jetzt fragt es dich, welchen Knochen versuchst du zu verstecken? Wenn du jetzt zu deinem Skelett zurückkehrst, versuchst du, den Kopfknochen zu verstecken. Wenn Sie einfach darauf klicken, können Sie sehen, dass es Kopf heißt. Du musst es genau so schreiben, wie es hier geschrieben steht. Es wird zwischen Großbuchstaben unterschieden. Du musst es genau so schreiben, wie es hier steht. Wenn ich einfach Kopf so schreibe und auf Compile klicke, und wenn ich auf Plate klicke, um das Spiel zu spielen, kannst du sehen, dass der Kopf für mich weg ist. Und ich kann es auch auf meinem Schatten sehen. Man kann sehen, dass der Kopf weg ist. Und es sieht tatsächlich besser aus. Jetzt kann ich als First-Person-Charakter herumlaufen, alles sieht gut aus, nichts nervt. Ja, es ist unglaublich Aber die Seite des Charakters, ich kann das sehen, ich glaube, es ist das Radio des Charakters, das tatsächlich erscheint, damit wir das reparieren können. Du kannst hier jederzeit zum Spieler zurückkehren, wenn du etwas für deinen Charakter hast , das immer noch angezeigt wird. Und klicke auf den Anschluss für die Kamera. Und dann kannst du wieder auf das Y klicken und es einfach leicht erhöhen , bis es nicht mehr nervt Wenn du das einfach auf etwa zehn erhöhst und auf Play klickst Und wenn ich nach unten schaue und zur Seite gehe, siehst du, dass ich das Radio nicht mehr sehen kann. Erhöhen Sie diesen Wert jedoch nicht zu stark, denn wenn Sie ihn zu stark nach vorne erhöhen, fährt die Kamera tatsächlich durch Wände. Wenn ich auf „Jetzt abspielen“ klicke, sehe dass es durch Wände hindurchschneidet , weil ich es viel zu stark vergrößert habe Erhöhen Sie diesen Wert nicht zu stark. Vielleicht möchte ich statt fünf sechs ausprobieren und sehen, ob das mein Problem behebt. Wenn ich herumlaufe und das Radio immer noch leicht sehe, kann ich es auf sieben erhöhen. Versuchen Sie stattdessen erneut, auf Play zu klicken. Versuche, mit dem Minimalwert zu spielen, um zu sehen, ob er das Problem behebt. Ich kann sehen, dass sieben die richtige Zahl für mich ist, und alles sieht gut aus. Sie können jedoch meinen Schatten sehen, mir fehlt der Kopf. Also müssen wir das auch reparieren. Lassen Sie uns in der nächsten Lektion weitermachen und all das beheben. 50. 4.08 Hinzufügen eines Third Person Mesh: Okay, jetzt reparieren wir den fehlenden Kopf auf dem Schatten. Also lass uns weitermachen und zur Spielerbasis gehen. Lassen Sie mich hier rein, wie wir das beheben können, ist, dass wir tatsächlich ein weiteres Third-Person-Mesh hinzufügen können . Wenn Sie auf das Netz klicken und zu Hinzufügen gehen und nach Skelettnetz suchen. Falls Sie nicht wissen, was ein Skelettnetz ist, wenn Sie neu hier sind, ist es einfach ein 3D-Modell , das gerade animiert ist. Zum Beispiel ist das Netz für deinen, deinen Charakter animiert. Wenn Sie die Maus darüber halten, wird angezeigt, dass die Skelettnetzkomponente dass die Skelettnetzkomponente einfach nur ein animiertes Drei-D-Modell ist. Das ist ein Skelettnetz. Mach weiter und erstelle es erneut. Nennen wir das hier drinnen einen Charakter aus der dritten Person oder Mesh aus der dritten Person. Was wir tun wollen, ist wieder, wir wollen den Charakter auswählen und wir müssen diesen einen Stil wählen, einen männlichen wie diesen. Dann müssen wir hier oben den Animations-Blueprint auswählen. Player für Animations-Blueprints. Jetzt können Sie sehen, dass es genau so animiert wird wie unser Mesh hier drüben Was wir eigentlich machen wollen, ist dieser Charakter. Wir wollen nicht, dass unser eigener Spieler diesen sieht. Wenn du auf Play klickst, kannst du jetzt sehen, dass der Kopf wieder da ist. Der Grund, warum der Kopf zurück ist , dass wir jetzt dieses Netz haben, das wir im Spiel sehen, aber wir haben auch dieses Netz. dieses Netz aus der dritten Person, wir wollen eigentlich nicht, dass die Leute es sehen, weil ich es nur hinzufüge um meinen Schatten auf dem Boden zu sehen und ihn vom anderen zu korrigieren. Um das für alle Spieler auszublenden, können wir auf dieses Third-Person-Mesh klicken. Und dann können wir runtergehen und versuchen, zu den Rendering-Einstellungen zu gelangen. Sie können in den Rendereinstellungen sehen, dass Sie auf Im Spiel versteckt klicken können. Jetzt ist es im Spiel versteckt. Wenn du auf Play klickst, kannst du sehen, dass der Kopf jetzt weg ist. Mein Schatten ist jedoch auch weg. Das muss ich auch reparieren. Wenn du erneut auf das Netz der dritten Person klickst und nach Schatten suchst, hast du diesen mit dem Namen Versteckter Schatten. Ich kann den Schatten meines versteckten Gegenstands sehen, mein verstecktes Netz aus der dritten Person. Wenn du auf Hidden Shadow klickst, kompilierst du. Sie können auf Play klicken. Mein Charakter ist versteckt. Allerdings kann ich jetzt auch den Schatten auf dem Boden sehen. Jetzt funktioniert es richtig. Jetzt ist das behoben. Und gehen wir zurück, nur um sicherzugehen , dass es bei diesem Charakter nicht zu Kollisionen kommt, weil wir nicht wollen, dass dieses Charaktermodell mit dem Netz hier oben kollidiert auf dieses Third-Person-Mesh klicke, gehe ich einfach zu den Kollisionseinstellungen und stelle sicher, dass dort steht, kann Charakter oben sein, ich sage hier nein. Und stellen Sie sicher, dass Sie keine generierten Überlappungsereignisse aktiviert haben. Und stellen Sie sicher, dass Sie „ Keine Kollision“ als Kollisionsvoreinstellung ausgewählt haben . Lass uns alles kompilieren. Speichern wir alles und fahren wir mit der nächsten Lektion fort. 51. 4.09 Kamera- und FPS-Glättung: Wenn wir das Spiel spielen, gibt es ein leichtes Bein, vielleicht bin ich mir nicht sicher, ob du es gerade merkst, aber wenn du einfach herumläufst und versuchst, die Maus auf und ab zu bewegen, fühlt es sich manchmal tatsächlich etwas Um diese Rotation zu korrigieren, kannst du versuchen, das Spiel sofort zu beenden Gehe zum Player und hier kannst du auf die Quelle klicken. Wenn du auf die Feder klickst, kannst du diese hier unter der „ Kamerarotation aktivieren Le“ aktivieren. Dadurch wird deine Kamerarotation geglättet. Wenn Sie herumspielen und das Gefühl haben , dass das tatsächlich so ist, fühlt es sich ein bisschen Man kann sich tatsächlich verzögert fühlen , wenn ich versuche, meine Kamera zu drehen Um dieses Problem zu beheben, können Sie die Drehung des Kamerabeins aktivieren Dadurch wird die Drehung der Kamera geglättet Sie können hören, dass sich die Kamera dreht. Sie können versuchen, eine Zahl einzustellen Wenn Sie es sehr, sehr hoch einstellen , können Sie sehen, wie es aussieht. Hier passiert nicht viel. Wenn du es vielleicht auf eins stellst und erneut versuchst zu spielen, kannst du sehen, dass es jetzt sehr flüssig ist. Das ist viel zu viel. Sie können sehen, dass es versucht, die Kamera zu glätten . Das ist viel zu viel. Ich muss es auf etwa zehn erhöhen und du kannst versuchen zu sehen, wie es aussieht. Wenn Sie es jedoch zu niedrig einstellen, können Sie sehen, dass es glatt ist, jedoch etwas verzögert anfühlt und bei manchen Menschen wahrscheinlich Reisekrankheit auslösen wird Lass es mich auf etwa 30 stellen. Stattdessen kompiliere ich und versuche zu rotieren. Ich möchte nur, dass es sich natürlich anfühlt. Es ist immer noch ein Ego-Shooter und wir wollen es hier nicht zu hoch oder zu niedrig ansetzen, vielleicht stattdessen auf 40. Versuche einfach nochmal weiterzuspielen. Versuche die Zahl zu erhöhen. Versuche dich umzusehen und zu sehen, wie es sich anfühlt. Es fühlt sich immer noch ein bisschen y an, vielleicht so etwas wie 60. Und ich werde versuchen, mich umzusehen. Es fühlt sich viel natürlicher an, genau wie ein Ego-Shooter. Versuchen wir, diese Zahl hier anzupassen. Sie möchten nicht, dass sie zu niedrig ist, sonst fühlt sich die Kamera sehr langsam an und okay, das ist behoben. Gehen wir jetzt zum Fenster oder zum Bearbeiten und gehen wir hier zu den Projekteinstellungen. Wenn Sie nach Smooth suchen, haben Sie eine sogenannte Smooth-Bildrate. Du musst dies für dein Spiel aktiviert haben , wenn du es woanders veröffentlichen möchtest, zum Beispiel auf Steam oder für einen Freund. Der Grund dafür ist ein Fehler, den ich gemacht habe , als ich Fm Tail auf Steam veröffentlicht habe. Wenn du das nicht begrenzt hast, wenn du es nicht aktiviert hast, dann wird der Spieler, der dein Spiel spielt, dein Spiel mit maximaler Frames pro Sekunde laufen lassen. Das hängt davon ab, welche Grafikkarte sie haben. Wenn sie eine sehr, sehr gute haben, läuft dein Spiel vielleicht mit 800 Bildern pro Sekunde und es wird tatsächlich eine Menge Ressourcen für ihren Computer verbrauchen. Sie können wahrscheinlich hören, wie der Computer viel Geräusch von den Lüftern macht weil die Grafikkarte viel zu viel läuft. Sie müssen dies aktivieren , um zu verhindern, dass das Spiel läuft und alle Ressourcen des Spielers verbraucht. Mach weiter und verwende diese gleichmäßige Bildrate. Das Minimum, ich werde es einfach auf 30 Bilder pro Sekunde als Maximum setzen . Normalerweise setze ich es auf 60 Bilder pro Sekunde. Bei anderen Spielen handelt es sich jedoch um einen Ego-Shooter, Sie benötigen mehr Bilder pro Sekunde. Vielleicht setze ich es auf 200 als maximale Frame-pro-Sekunde. Ich denke, 200 sind in Ordnung. Ich glaube nicht, dass du mehr als das brauchst. Lass uns das schließen und alles speichern. Lass uns mit der nächsten Lektion weitermachen. 52. 5.01 Anpassen der Bewegungsgeschwindigkeit: Jetzt sind wir bereit, die Bewegungsgeschwindigkeit anzupassen. Du kannst sehen, wenn du auf Play klickst, es läuft viel zu schnell. Wenn Sie also ein Spiel ausführen, können Sie versuchen, ein Gefühl dafür zu bekommen , wie schnell Sie in Ihrem Spiel laufen möchten. Also für mich ist das viel zu schnell. Es hängt wirklich davon ab, welches Spiel du erstellst. Wenn du ein schnelles Spiel erstellst, ist dieser Lauf vielleicht sogar zu langsam für dich Für mich erschaffe ich gerade etwas, das Counterstrike sehr nahe kommt Nicht wirklich zu 100%, aber so. Ich werde diese Bewegungsgeschwindigkeit etwas reduzieren. Ich denke, es ist viel zu schnell. Ich kann hier in meiner Spielerbasis, der Charakterkomponente, hingehen. Und dann kann ich meine maximale Gehgeschwindigkeit verringern. Jetzt werde ich sie auf etwa 700 reduzieren. Ich versuche ein paar Mal zu spielen und versuche, diese Zahl anzupassen. Und dann musst du erneut auf Play klicken. Und nur um hierher zu rennen und zu versuchen zu sehen, wie es sich anfühlt. Und jetzt spiel das Spiel einfach weiter. Versuchen Sie, die Geschwindigkeitszahl zu erhöhen und zu verringern und sehen Sie, wie sie aussieht. Ich denke für mich ist das in Ordnung. Vielleicht kann ich es tatsächlich auf 750 erhöhen und versuchen, es erneut zu spielen. Ich denke, 750 ist die richtige Zahl. Okay, also wenn du viel mit diesem Ding zu tun hast, kannst du dich auch daran erinnern, dass du diese Float-Variablen auch für die Geschwindigkeit hast . Lass mich das einfach anklicken und hierher ziehen , damit sie zusammen sind. Du kannst auf diese Laufgeschwindigkeit klicken und sie auch auf 750 setzen . Fahren Sie fort und kompilieren Sie jetzt. Für die Gehgeschwindigkeit werde ich sie auf etwa 400 einstellen. Und für die Duckgeschwindigkeit etwa 200. Und wieder habe ich ein paar Mal versucht, meine Spiele zu spielen . Ich kenne diese Zahlen. Du musst die Gehgeschwindigkeit wieder auf etwas einstellen. Dann musst du auf Play klicken. Dann musst du auf Shift to Walk klicken und versuchen herauszufinden, ob diese Gehgeschwindigkeit gut für dich ist. Oder wenn du es etwas schneller haben willst. Versuche einfach, dein Spiel immer wieder zu spielen und versuche, diese Zahlen anzupassen. Wenn ich jetzt mein Spiel spiele und herumrenne und versuche, ein Gefühl dafür zu bekommen, wie schnell es ist, wenn ich auf Shift klicke, um herumzulaufen, finde ich, wenn ich auf Shift klicke, um herumzulaufen, finde ich, dass das auch gut aussieht. Und wenn ich auf Steuerung klicke und versuche zu sehen, wie es aussieht, denke ich, dass diese Geschwindigkeit auch für mich gut aussieht. Okay, lassen Sie uns weitermachen und das alles beenden , nachdem die Bewegungsgeschwindigkeit angepasst wurde. Und lassen Sie uns in der nächsten Lektion auch die Animationsgeschwindigkeit anpassen . 53. 5.02 Anpassen der Animationsgeschwindigkeit: Wenn wir die Bewegungsgeschwindigkeit anpassen, müssen wir auch die Animationsgeschwindigkeit anpassen, sonst sieht sie falsch aus Wenn wir erneut auf den Player klicken und dann auf die Spielerbasis klicken. Denn hier möchte ich dem Frühling etwas Länge verleihen. Ähm, nochmal, genau wie zuvor. Der Grund dafür ist, dass ich meine Laufanimation sehen und sehen will , wie schnell sie laufen. Sie können sehen, dass wir jetzt rennen. Es sieht tatsächlich gut aus. Sie können sehen, dass es dem Boden folgt. Manchmal sind deine Animationen für den Charakter, wenn du rennst, zu schnell und zu langsam. Du musst auch die Laufgeschwindigkeit anpassen. Sie können tatsächlich sehen, dass es hier zu einer Kollision kommt. Aus irgendeinem Grund glaube ich, dass es mein Himmel ist. Wenn ich auf diesen Himmel hier drüben klicke und ihn tatsächlich wegbewege, aus irgendeinem Grund eine Kollision aktiviert. Aber das ist nur der Himmel hier oben und es spielt keine Rolle, wo er ist, wir werden ihn einfach hier drüben platzieren. Okay, was die Animationsgeschwindigkeit angeht, müssen Sie nur zu den Animationen gehen. Und dann können Sie die Animationen innerhalb der Mischbereiche platzieren, die wir zuvor erstellt haben. Lassen Sie mich mit dem Run Blend Space beginnen. Und hier drinnen, wenn du einfach runtergehst und all diese Mischungen sehen kannst. Jetzt können Sie all diese Animationen , die Sie hier als Punkte hinzugefügt haben, auch hier sehen. Nun, was ich zuerst machen möchte, ich möchte eigentlich meine Gewichtsgeschwindigkeit erhöhen. Denn die Gewichtsgeschwindigkeit ist ja bekanntlich die Glättung der Animationen Ich glaube, manchmal rutscht es ein bisschen zu stark herum Vielleicht, wenn ich es wieder auf 6,5 statt auf 9,5 erhöhe. Denken Sie wie zuvor daran: Wenn Sie ihn erhöhen, wird der Animation weniger Glätte Ich wollte nur natürlicher aussehen. Ich werde den Rest öffnen. Für den Rest werde ich die Gewichtsgeschwindigkeit ebenfalls auf 6,5 einstellen . 6,5 auch für den Spaziergang. Ich werde die Gewichtsgeschwindigkeit auf 6,5 einstellen. Okay, das ist behoben. Lass uns alles speichern. Okay, bevor wir irgendwas tun, kannst du auch hier raufgehen und daran denken, deine vertikale Achse zu ändern. Maximalwert hier. Denken Sie daran, dass dies die Bewegungsgeschwindigkeit für den Lauf war. Die aktuelle Bewegungsgeschwindigkeit für mein Spiel ist 750. Normalerweise lege ich es auf etwa die Hälfte. Ich setze diesen stattdessen einfach auf 350. Du kannst sehen, wenn du es auf etwas Höheres setzt, jetzt wird es hier angewendet, 350. Meine Animationen laufen jedoch immer noch auf 300, ich muss hier klicken, Shift-Taste ziehen und gedrückt halten und sie einfach wieder hier platzieren, auf gedrückt halten, um sie wieder zu fixen und hier drüben zu platzieren. Nichts Neues. Wir haben das schon einmal gemacht. Ziehen Sie einfach all diese Animationen auf 350, und jetzt laufen sie mit dieser Geschwindigkeit. Okay, also lass uns das mit den anderen machen. Lass uns die Hocke öffnen. Meine Hocke hatte eine Geschwindigkeit von 200. Wenn du den Player öffnest und hier in der Spielerbasis die Duckgeschwindigkeit einstellst, setze ich sie auf 200, also kann ich in die Hocke gehen und diese Geschwindigkeit auf etwa 100 setzen . Sie können jedoch sehen, wenn ich es auf etwas niedrigeres stelle, wird es mir eine Menge Fehler geben und alle meine Animationen sind weg Das liegt daran, dass all diese Animationen gelöscht werden. Hier oben werde ich auf Strg Z klicken, um all diese zurückzuholen. Hier sind sie. Denken Sie daran, all diese Zahlen zu verringern, bevor Sie tatsächlich anfangen, mit diesen Zahlen herumzuspielen , damit sie nicht gelöscht werden. Ich habe sie hier hingelegt. Lassen Sie mich diese Zahl jetzt auf 100 reduzieren. Und jetzt kannst du all diese nehmen und sie hier zur Höchstgeschwindigkeit zusammenzählen. Ich wünschte, es gäbe eine Funktion , mit der Sie alle gleichzeitig nach oben verschieben könnten , mit der Sie alle gleichzeitig nach oben verschieben . Ich glaube nicht, dass es sie gibt. Eigentlich ist die Gehgeschwindigkeit jetzt auf 400 eingestellt. Ich setze es auf 200, gehe zurück zur Animationsgeschwindigkeit, und ich werde es stattdessen auf 200 setzen, die Geschwindigkeit angeht, werde ich sie wieder erhöhen. In Ordnung, jetzt, wo das behoben ist, speichern wir alles. Gehen wir jetzt zurück zum Laufen, was die Animationsgeschwindigkeit angeht. Fangen wir mit dem Lauf vorwärts an. Ich fange mit dem Run Forward an. Und der Grund, warum ich das tue, ist, dass, wenn das stimmt, ich mich bei den anderen bewerben werde. Der Running Forward ist mein erster hier. Lauf unbewaffnet vorwärts. Und Sie können auf den kleinen Pfeil klicken, um die Einstellungen für die Preisskala zu sehen die Einstellungen für die Preisskala Wenn ich sie auf etwa drei erhöhe und sie alle aus irgendeinem Grund maximiert habe, ist das der Lauf vorwärts Wenn ich es auf drei setze und auf Abspielen klicke, kannst du sehen, dass meine Animationsgeschwindigkeit sehr, sehr schnell ist Jetzt musst du die Animationsgeschwindigkeit an deine Bewegung anpassen . Wenn ich gerade bin, ist eins die Standardeinstellung. Wenn ich zu 1.1 sagen würde, nur etwas schneller. Und wenn ich auf Play klicke und du siehst, wie es aussieht, funktioniert das Laufen an den Seiten jetzt nicht, funktioniert das Laufen an den Seiten jetzt nicht weil das nur der Run Forward ist, den wir angepasst haben. So sieht es aus. Für mich. Ich finde, 1.1 auf der Ratenskala sieht gut aus. Ich möchte es eigentlich auf den Rest von ihnen anwenden. Was Sie tun können, ist, die Umschalttaste gedrückt zu halten und mit der rechten Maustaste zu klicken. Dadurch wird das kopiert. Oder Sie können einfach mit der rechten Maustaste klicken und kopieren. Aber Sie können sehen, dass Shift und die rechte Maustaste dies ebenfalls kopieren. Dann möchte ich es nicht für die Leerlaufanimation machen. Die inaktiven Animationen, ich möchte nur, dass sie wie immer eins sind. Noch ein Problem mit der laufenden Animation. Die Vorderseite rechts läuft hier. Ich werde die Umschalttaste gedrückt halten und mit der linken Maustaste klicken, um es einzufügen. Auch hier können Sie einfach mit der rechten Maustaste klicken und es einfügen. Sie können jedoch sehen, dass die Tastenkombination Shift und Linksklick lautet. Ich werde es auch in alle anderen Animationen einfügen , sodass sie einfach so angewendet werden. Lass uns weitermachen und auf Speichern klicken. Lass uns auf Play klicken. Jetzt kannst du auch sehen, wie es für alle anderen Seiten aussieht . Es sieht ein bisschen besser aus. Und der Grund, warum wir es erhöhen, ist, dass es nicht mehr so aussieht wie zuvor. In Ordnung, jetzt, wo das erledigt ist, lass es mich schließen. Du musst es auch für die Hocke tun. Du musst hier spielen. Versuch dich zu ducken und zu ducken, schau, wie es aussieht Vielleicht müssen wir auch hier die Animationsgeschwindigkeit etwas erhöhen, weil Sie sehen können , dass es so aussieht, als würde es gleiten, weil die Animationsgeschwindigkeit viel zu niedrig ist Also musst du hier wieder reingehen, zur Animation gehen, dich vorwärts ducken Ich werde es wieder auf 1.1 setzen, genau wie mein Laufen, nur um zu sehen, wie es aussieht Und wenn ich in die Hocke gehe und versuche , zur Seite zu gehen, brauchen wir hier vielleicht etwas mehr, 1.3 Klicken Sie stattdessen auf Play Versuche, dich in die Hocke zu begeben und zu sehen, wie es aussieht. Stellen Sie es auf etwa 1.1 und dann können Sie auf Play klicken Dann kannst du dich daran erinnern, das ist nur für den nach vorne geduckten Es funktioniert nicht, wenn du zu den Seiten rennst oder dich zu den Seiten duckst, die sich nach vorne ducken, und ich kann sehen, wie es aussieht Vielleicht rutscht es immer noch leicht ab. Wenn ich es stattdessen auf 1.2 setze, klicke ich auf Play und kauere mich nach vorne Ich denke, das sieht viel besser aus. Lass es uns versuchen, 1.2 Ich werde das nochmal kopieren und in all meine anderen Animationen einfügen , die nicht inaktiv sind. Die inaktiven Animationen sind mir egal. Ich habe sie etwa eins. Das ist in Ordnung. Und für die anderen Animationen werde ich es einfach auf 1.2 setzen, um zu speichern. Und dann lass uns spielen und sehen, wie es aussieht. Wenn ich auch zur Seite gehe, rutscht es immer noch. Ich muss es vielleicht sogar auf 1,3 erhöhen. Lass mich tatsächlich wieder gehen. Hier kannst du sehen, dass es einige Zeit dauert. Du musst es testen. Wenn ich es auf 1.3 setze, kopiere ich das und füge es in alle anderen Animationen ein. Genau wie zuvor. Ich mache weiter und klicke erneut auf Play. Lass mich sehen, wie es jetzt aussieht. Jetzt ist es viel weniger, Sie können sehen, dass es viel besser aussieht als zuvor. Wir können weitermachen und diese Bewegungsgeschwindigkeiten und Animationen weiter anpassen diese Bewegungsgeschwindigkeiten und und sehen, wie sie aussehen. Wenn Sie zufrieden sind, können Sie jetzt zum Spaziergang übergehen, dasselbe tun, weitermachen und auf Play klicken, Shift gedrückt halten und versuchen, herumzulaufen. Du rutschst gerade viel zu viel ab. Geh zur Bewegung vorwärts. Lass mich sehen, ob ich es hier finde. Wenn ich vorwärts gehe, dieser hier, Animation. Geh vorwärts. Wenn ich es auf 1,3 setze klicke ich auf Play und ich halte die Umschalttaste gedrückt und versuche herumzulaufen. Und es rutscht immer noch leicht. Wenn ich es stattdessen auf 1,5 setze, Shift gedrückt halte und versuche herumzulaufen, kannst du sehen, dass das Gehen viel besser aussieht. Ich rutsche nicht herum. Sie können entweder die Bewegungsgeschwindigkeit für das Gehen anpassen oder Sie können die Animationen an die Bewegungsgeschwindigkeit anpassen. Ich denke, 1,5 ist in Ordnung für mich. Ich werde das auf alle anderen Animationen kopieren , die nicht inaktiv sind, wie diese und auch auf die Rückseite. Und jetzt kannst du sehen, dass das inaktiv ist, also werde ich es nicht hierher kopieren. Okay, klicken Sie auf Abspielen und jetzt können Sie die Umschalttaste gedrückt halten und herumlaufen und versuchen , zur Seite zu gehen. Sieht viel besser aus. Wenn Sie der Meinung sind, dass dies zu schnell ist, können Sie jederzeit die Bewegungsgeschwindigkeit oder die Animationsgeschwindigkeit reduzieren. Das ist in Ordnung. Auch hier kommt es wirklich darauf an, welches Spiel du erstellst. Ich denke für mich ist das in Ordnung. Und ich kann jederzeit hierher kommen und es später anpassen, wenn ich nicht zufrieden bin. Manchmal, wenn ich mein Spiel schließe und am nächsten Tag online gehe, denke ich manchmal, dass etwas dämlich aussieht und ich ändere es, versuche, die Bewegungs - und Animationsgeschwindigkeit zu ändern und so weiter. Aber im Moment sieht es gut für mich aus. Also muss ich es jetzt schließen und uns alles speichern lassen. Und lass uns mit der nächsten Lektion weitermachen. 54. 5.03 Fixierung des Kamera-Wand-Clipping: Jetzt müssen wir das Kameraproblem beheben . Wenn ich zurück zum Spieler gehe und die Feder auf die Armlänge Null stelle , nur um in den Ego-Modus zurückzukehren und das Spiel zu spielen, kannst du sehen, ob ich mich etwas nähere und ich schaue runter, manchmal schneidet es durch die Wand , wie du hier sehen kannst. Und ich kann durch die Wand schauen, und die Leute werden das wahrscheinlich missbrauchen und im Spiel cheaten , um zu sehen, was sich hinter der Wand befindet, um das Problem zu beheben Es gibt zwei Möglichkeiten. Der erste Weg ist, wenn du zum Marktplatz gehst und zum Spieler gehst und das Skelett für den Spieler findest. Jetzt kommt es hier auf deine Steckdose an. Zuerst kannst du bei dem Socket, den du hinzugefügt hast , sehen, dass ich meinen Y-Wert auf sieben gesetzt habe, wenn du ihn zum Beispiel auf Null setzt. Und wenn du auf Play klickst, kannst du sehen, wie du die Kamera zurückschiebst. Und du kannst mehr von deinem Körper sehen, einfach so. Sie können versuchen, Ihre Kamera zurückzuschieben , vielleicht statt Null minus fünf. Sie können sehen, wie weit Sie Ihre Kamera zurückschieben können , ohne dass sie schlecht aussieht. Sie können also minus fünf sehen. Ich fange an, du kannst den Hals oder Kopf meines Charakters sehen, fast dort, wo der Kopf verschwunden ist und es sieht nicht wirklich gut aus. Minus fünf ist viel zu viel. Ich würde es zum Beispiel wieder auf Null setzen und versuchen, es erneut zu spielen. Das Problem mit diesem Charakter ist, dass er ein Radio hat. Sie können das Radio auf dem Player hier sehen. Es ist tatsächlich so, vor der Figur oder der Kamera zu stehen und ein bisschen nervig. Wenn das ein benutzerdefinierter Charakter wäre , den du entworfen hast, könntest du ihn etwas mehr stabilisieren , sodass er nicht durch die Kamera geht Und wenn das der Fall wäre, diese Position für wäre diese Position für die Buchse tatsächlich viel besser Weil man die Leiche sehen kann und sie so schön aussieht. Allerdings ist das Radio für diesen Charakter etwas nervig, also werde ich es noch einmal vorantreiben. diesem Grund haben wir es tatsächlich auf sieben erhöht, denn um sieben Uhr können wir das Radio nicht sehen und alles sieht gut aus. Okay, wie können wir das jetzt reparieren? Wir können nicht mehr wirklich mit der Steckdose herumspielen , weil sie so gut wie möglich platziert ist. Die andere Sache ist, du kannst zur Spielerbasis gehen und du kannst zum Viewport hier in der Spielerbasis gehen, du kannst auf die Kapselkomponente klicken Kapsel-Komponente. Sie können sehen, wenn Sie ihn vergrößern, den Kapselradius auf etwas Extremes, zum Beispiel 150. Und wenn du auf Play klickst, kannst du sehen, dass du viel schneller mit den Wänden kollidierst. Und du kannst nicht einfach zu den Wänden gehen. Du kannst es hier sehen. Jetzt ist es unmöglich zu gehen und durch die Wände zu sehen. Es ist jedoch etwas unrealistisch, wenn du es zu hoch anstellst, weil du den Wänden nicht wirklich nahe kommen kannst und du blockiert Du wirst auch hier blockiert werden. Wenn du zu dieser Rampe gehst, glaube ich, kann ich sehen, dass du nicht durch die Rampe gehen kannst, weil deine Kapselkomponente viel zu hoch ist und du sie nicht passieren kannst. Okay, erhöhe die Kapselkomponente. Eine Größe, die für Sie tatsächlich Sinn macht und die Wandverkleidungen entfernt, aber sie ist immer noch klein 70 zum Beispiel. Lass es uns ausprobieren. Lass uns hier durch die Wand gehen. Schau nach unten, sieh dir die Größe an. Vielleicht ist es nett. Das funktioniert tatsächlich, lass uns zu diesem gehen. Manchmal kann ich durch die Wände sehen. Manchmal muss ich es etwas erhöhen, wenn ich hineingehe , weil es sogar auf 75 steigen kann, wenn ich durch die Wände gehe. Und dann teste nochmal und schau, wie es aussieht. Ja, vielleicht funktioniert 75 tatsächlich. Manchmal ruckelt es ein bisschen. Okay, also werde ich eine 280 setzen. Das ist meine endgültige Entscheidung hier. Also lasst uns kompilieren und jetzt ist es bei 80. Ja, wenn ich nach unten schaue, ich schaue nach oben, ich schaue zur Seite. Ich kann nicht durch die Wand sehen. Und ich kann immer noch so in die Nähe der Wand gehen. Und lass uns sehen, ob wir hier die Rampen hochfahren können. Wenn ich die Rampe hochgehe und es funktioniert, obwohl ich hier in der Nähe der Rampenwand bin, kann ich trotzdem die Rampe hinaufgehen Okay. Das war eine einfache Lösung, wenn du hierher gehst. Hier ist es ein kleines Problem, weil der Raum wirklich eng ist. Was Sie jetzt tun können , um das zu beheben , ist, dass Sie immer hier reinkommen und das Schnappen hier oben bis vielleicht zehn machen können das Schnappen hier oben bis vielleicht zehn machen Und zieh es an. Dann ist meine Kamerageschwindigkeit tatsächlich viel zu hoch. Ich werde sie verringern. Du kannst hier auf dieses Objekt klicken und es einfach zur Seite bewegen. Vielleicht ändere einfach das Kartendesign ein wenig, damit das nicht kaputt geht Wenn Sie nun ein sehr, sehr komplexes Kollisionssystem benötigen , erfordert das eigentlich viel zu fortgeschrittene Arbeit für diesen Kurs Hier könntest du es mit Bauplänen machen. Es erfordert jedoch eine Menge Code, damit es funktioniert, und es wird im Vergleich zu diesem Kurs wirklich fortgeschritten sein Sie können erneut versuchen, hierher zu gehen und zu sehen, ob es funktioniert. Schau, ob alles gut ist. Und Sie können sehen, dass auch alles gut funktioniert. In Ordnung, also so reparieren wir die Kamera. Schon wieder die Wände durchschneiden. Falls es irgendwann mal ausschneidet, kannst du immer hier reingehen Nehmen Sie hier vielleicht die Position für die Steckdose zurück , das wird helfen Oder wenn du herkommen und die Kapselkomponente leicht erhöhen kannst , damit sie nicht ausgebucht wird. Aber pass auf, dass du es nicht zu stark erhöhst. 55. 5.04 Fixierung der Jumping Crouch: Richtig. Wenn ich das Spiel spiele, kannst du sehen, wann ich springe Wenn ich springe und gleichzeitig meine Hocktaste drücke, kannst du sehen, dass ich es hier spammen kann Wenn ich springe und weiter in die Hocke gehe, schneidet die Kamera so ab Du kannst es als Mechaniker haben, wenn du willst, für dein Spiel. Manche Leute mögen solche Sachen zum Beispiel. Du kannst springen, du kannst versuchen, dich zu ducken und du kannst über die Wand schauen, dass es vielleicht ein Mechaniker sein könnte Ich finde jedoch, dass es ein bisschen zu viel ist und ich möchte diesen Mechaniker nicht wirklich hier haben, wenn er so einschneidet. Wenn ich weiter in die Hocke gehe, gehen wir zurück zum Spieler, zur Spielerbasis hier drinnen Gehen wir zur Hockenlogik über. Dieser hier. In der Hockenlogik möchte ich sichergehen, dass der Spieler nicht springt Du kannst dich nicht ducken, wenn du springst. Wenn wir diesen nehmen, denken Sie daran, dass wir bereits gemacht haben, dass diese Funktion kein Springen ist Wir haben hier nur die Bewegungskomponente des Charakters genommen und gefragt, ob der Charakter fällt oder nicht. Wenn der Spieler nicht fällt, bedeutet das, dass er sich nicht in der Luft befindet, was bedeutet, dass er nicht springt. Okay, wir können das nehmen, wir können eine Abzweigung machen. Wenn der Spieler nicht springt, können wir uns ducken Moment gibt es ein kleines Problem wenn wir springen und ich auf die Hocke drücke. Denn seht ihr, ich kann mich nur auf dem Boden ducken. Wenn ich jedoch springe und mich ducke, wenn ich lande, kauere ich mich nicht Ich muss mich jedes Mal ducken, wenn ich springe und auf „Hocken“ klicke. Es sollte sich automatisch ducken, Es sollte sich automatisch Und das müssen wir hier beheben. Ich werde das abziehen und den Code um etwas wirklich, wirklich Kleines verzögern . Also vielleicht 0,05 nach der Verzögerung, wir können zurückgehen und diesen Code erneut abspielen Das heißt einfach, wenn du im Sprung bist dich nicht ducken kannst, dann ist es falsch Es wird weitermachen und den Code verzögern und es wird zurückgehen und erneut fragen, ob du springst oder nicht Es überprüft ständig, ob du springst oder nicht. Und wenn du auf dem Boden landest und immer noch die Hocktaste gedrückt hast, geht es tatsächlich weiter und duckt geht es tatsächlich weiter und Du kannst es ausprobieren, schauen, ob es funktioniert oder so. Bugs, du kannst hier springen, Hocke gehen, Auto fahren, ducken, mit einem Auge landen Das funktioniert tatsächlich. Wenn du das zu hoch anlegst, wirkt es etwas verzögert, denn wenn du springst, dauert es ein bisschen Bevor du in die Hocke gehst, kannst du es viel besser machen, hier zu ducken es viel besser machen, hier zu Wenn Sie es viel niedriger machen, wird die Reaktionszeit viel höher sein Wenn du springst und klickst und dich duckst, kannst du sofort sehen, wie es sich duckt. Ich möchte es nicht zu sehr aufschreiben, denn denken Sie daran, je weiter Sie das hineingeben, desto öfter wird dieser Code Er wird so oft pro Sekunde laufen und versuchen zu überprüfen, ob du springst oder nicht. Für diesen setze ich ihn stattdessen einfach auf 0,05. Um zu überprüfen, wie oft das läuft, kannst du immer diesen Browser nehmen und 1/0 0,05 sagen . Dann kannst du diesen Code jetzt sehen, 20 mal pro Sekunde läuft Und Sie können sehen, dass er sehr oft ausgeführt wird. Wenn Sie es auf 0,01 setzen, läuft es 100 Mal pro Sekunde. Ich mag es nicht, es viel zu niedrig zu setzen. 0,05 ist eine gute Zahl. Lass uns das schließen Okay, jetzt funktioniert das. Jetzt ist das Problem da. Für die Hocke Es wird tatsächlich den Crouch-Code ausführen , obwohl ich nicht mehr Sie können sehen, ob ich hierher ziehe und „Zeichenfolge drucken“ sage und einfach eine einfache Nachricht auf den Bildschirm ausdrucke , um zu sehen, ob dieser Code ausgeführt wird oder nicht kompiliert. Lass uns auf Play klicken. Du kannst sehen, ob ich springe und halte, mich ducke und dann loslasse. Wenn ich also lande, wird es sich tatsächlich ducken. Ich springe, ich hocke mich und lasse los. Es wird den Crouch-Code ausführen obwohl ich es nicht wirklich brauche, weil ich mich noch nicht geduckt habe, um das zu tun oder es zu reparieren Wir können den Bewegungsstatus annehmen und aus dem Objekt ziehen und sagen, dass es ein Objekt enthält Wenn es das Objekt in der Hocke enthält, dann wollen wir weitermachen und uns ducken dann wollen wir weitermachen und uns Wenn wir den Knopf loslassen, schlagen wir hier zu. Zieh es eigentlich einfach hierher. Und lassen Sie uns einen Zweig erstellen und ihn verbinden, einfach so. Okay, ich organisiere das ein bisschen, okay? Also, was wir hier tun, ist zu fragen, ob wir im Sprung sind oder nicht. Und wenn wir nicht im Sprung sind, können wir weitermachen und uns ducken, wenn wir am Boden Wenn wir jedoch in der Luft sind, wird es bei jeder Landung immer wieder nachschauen Und wenn wir landen, wird es diesen Code durchgehen und dann fragen, ob Sie den Knopf losgelassen haben oder den Knopf gedrückt haben? Sie den Knopf losgelassen haben oder den Knopf gedrückt haben Wenn du die Taste drückst, gehst du automatisch in die Hocke Wenn Sie immer noch die Ducktaste drücken die Taste losgelassen haben, wird zunächst geprüft, ob Sie sich tatsächlich ducken. Wenn dieses Bewegungsstatus-Array das hockende Wenn dieses Bewegungsstatus-Array Element enthält, und wenn nicht, dann tun Sie nichts, weil wir nicht hocken und wenn nicht, dann tun Sie nichts, weil wir nicht Es macht Sinn, diesen Code auszuführen. Wenn es jedoch das Hocken beinhaltet und Sie den Knopf loslassen, wird es sich ducken Lass uns versuchen, es jetzt zu spielen. Und lasst uns springen und auf die Hocke klicken. Das hilft. Wenn ich springe und auf Crouch klicke und loslasse, kannst du sehen, dass der Code nicht mehr läuft und er vollständig optimiert ist Lass uns jetzt kompilieren. Hier funktioniert alles. Wenn ich springe und meine Hockertaste spamme , wird das nicht funktionieren Nur wenn ich hier in der Luft lande, kann ich meine Hocktaste nicht spammen 56. 5.05 Behebung der verbleibenden Crouch-Bugs: Okay, das Letzte, was ich für das Hocken korrigieren möchte, ist, dass du sehen kannst, ob ich zu einer Kante oder einem Felsvorsprung übergehe Und ich kauere hier und gehe zu dieser Kante und gehe einfach von der Kante weg Du kannst sehen, dass der Charakter hier in der Luft blockiert ist. Du kannst jeden Rand sehen, der das tatsächlich tut. Wenn ich hier raufgehe, ist das viel zu hoch. Ich gehe hier hoch und ich gehe in die Hocke und will runterfallen. Du kannst sehen, dass ich tatsächlich hier am Rande bin. Und ja, es sieht komisch aus. Lass es uns schließen. Lass uns zur Spielerbasis gehen. Und wenn du auf die Komponente „ Charakterbewegung“ klickst und nach Crouch suchst, hast du diese Komponente namens Can walk off ledges Wenn du in die Hocke gehst, klicke darauf und kompiliere und klicke Jetzt kannst du sehen, wann es das macht, wenn du hier in die Hocke gehst und wenn du abspringst, wird es hier von dieser Kante herunterfallen Das war das Einzige, was wir tun mussten, eine sehr, sehr einfache Lösung Fahren wir mit der nächsten Lektion fort. 57. 5.06 Vorbereitung des Footsteps SFX: Jetzt ist es an der Zeit, einige Schritt-Soundeffekte für den Charakter hinzuzufügen , damit er im Spiel besser klingt und nicht zu leise ist Lass uns weitermachen und einen neuen Ordner erstellen. Lass uns hier im Inhaltsordner weitermachen. Klicken wir mit der rechten Maustaste, gehen wir zu einem neuen Ordner und nennen ihn Audio. In diesen Ordner werde ich auch klicken und einen neuen Ordner erstellen. Ich werde es Soundeffekte in diesem Ordner nennen. Lassen Sie uns jetzt weitermachen und die Soundeffekte importieren. Auch hier werden Sie in den Kostenmaterialien, die ich für Sie auf diese Website hochgeladen habe, viel mehr Artikel finden. Zum Beispiel werden Sie in der Benutzeroberfläche oder im Audio viel mehr Artikel sehen als hier, weil ich ständig Dinge hinzufüge. Während ich diesen Kurs entwickle. Vielleicht siehst du noch mehr Dinge als das, was du hier gerade siehst. Mach dir darüber keine Gedanken, lass dich nicht zu verwirren, ich füge einfach ständig Dinge hinzu, während ich diesen Kurs entwickle. Im Moment müssen wir nur die Schritte und den Schritt-Soundeffekt verwenden . 1-6 Sie können also auf all diese Elemente klicken und sie in das Bedienfeld hier, den Inhaltsbrowser, ziehen und loslassen, und sie werden hinzugefügt Sie müssen lediglich mit der rechten Maustaste auf Go klicken und hier im Audio eine Sound-Queue erzeugen Wenn Sie eine Sound-Queue erzeugen, können Sie es nennen, nennen wir es Schritte Eine weitere Möglichkeit, eine Sound-Queue zu erzeugen, besteht darin, dass Sie auch einfach mit der rechten Maustaste auf eine davon klicken und dann auf Create Que klicken Die dritte Option besteht darin, sie alle auszuwählen und eine einzige Que zu erstellen, die auch alle in eine einzige Que hochlädt, was eigentlich das ist, was wir tun wollen. Sie können aber auch einfach mit der rechten Maustaste klicken und zu Audio wechseln und die Sound-Queue erstellen. Sie haben verschiedene Möglichkeiten. Gehen wir in diese Sound-Warteschlange. Lass es mich ein bisschen größer machen, damit wir es sehen können. Was wir jetzt tun können, ist, dass wir all das nehmen können. Klicken Sie auf den ersten, die ganze Schicht, klicken Sie auf den letzten, klicken Sie und ziehen Sie sie in den Sound-Cue , der alle Schritt-Soundeffekte zum Sound-Cue hinzufügt Schritt-Soundeffekte zum Sound-Cue Was Sie jetzt hier drinnen tun können, ist, dass wir diese Schritte nach dem Zufallsprinzip abspielen wollen Es sollte nach dem Zufallsprinzip wählen, welcher gespielt werden soll, nur damit wir etwas Abwechslung haben Was Sie tun müssen, ist nach dem Zufallsprinzip zu schreiben, zu klicken und zu suchen. Dann findest du diese zufällige Notiz. Übrigens, für die Sound-Cues kannst du Click schreiben. Und Sie können sehen, dass Sie diese Knoten genau wie im Blueprint haben genau wie im Blueprint Allerdings nicht wie in Blueprint. Sie können sehen, dass Sie nicht viele Knoten haben, aber Sie können auch coole Sachen mit ihnen machen, obwohl Sie nicht viele Knoten haben Für diesen werden wir nun den Zufallsprinzip verwenden und einer dieser Soundeffekte wird nach dem Zufallsprinzip abgespielt . Lass es uns verbinden. Lassen Sie uns die hier reinziehen und verbinden. Und lass uns darauf klicken. Und ein paar Mal haben wir diese Eingänge, wir können sie einfach so anschließen . Stecken Sie sie alle ein. Den Ausgang stecken wir in den Ausgang. Lass es uns einfach ein bisschen organisieren. Was Sie jetzt tun könnten, ist, auf Pl Q zu klicken , um zu sehen, was es tut. Und Sie können sehen, dass es nach dem Zufallsprinzip einen Sound abspielt. Es wählt einfach einen von ihnen aus. Jetzt denke ich, dass es viel zu leise ist. Wir können zum Lautstärkemultiplikator gehen und den Schrittgeräuscheffekt erhöhen , um ihn beispielsweise auf 1,2 zu setzen Oder du kannst es auf drei setzen. Sie können sehen, dass das den Ton erhöht, vielleicht 1,2. Ich möchte es für diesen Kurs nicht zu hoch machen , weil ich auch mit Ihnen spreche und Sie meine Stimme hören können. Wenn das zu laut ist, wird es wahrscheinlich zu nervig sein. Vielleicht eins für mich, du kannst es etwas höher erhöhen. Einer ist vielleicht immer noch zu leise. Aber für diesen Kurs bleibe ich bei einem. Ich glaube, du kannst mich auch hören, wenn ich mich an den Kurs erinnere. Okay, wir haben diesen Schritt und er ist vorbereitet. Und du kannst es auch hier abspielen , um zu sehen, wie es klingt. Wenn Sie jetzt auch mehr Abwechslung wünschen, können Sie einen sogenannten Modulator verwenden Wenn Sie mit der rechten Maustaste klicken und hier nach Modulator suchen, werde ich eigentlich nur einen Sound verwenden, um ihn Ihnen zu demonstrieren Wenn ich diesen Sound nehme und ihn mit dem Ausgang verbinde, kannst du sehen, ob du jetzt spielst, er klingt ein bisschen anders Wenn du auf den Modulator klickst und vielleicht die Tonhöhe auf 0,9 senkst und die maximale Tonhöhe auf 1,1 erhöhst , gibt es einen großen Unterschied Es wird eine Vielzahl von Sounds mit unterschiedlichen Tonhöhen erzeugen Wenn Sie auf Jetzt abspielen klicken, können Sie hören , dass es jedes Mal ein bisschen anders klingt, wenn Sie einen Modulator verwenden können, um die Tonhöhe nach dem Zufallsprinzip zu erhöhen oder zu verringern Sie können ihn auch hier verbinden. Wenn ich das einfach wieder anschließe, kannst du es hier anschließen, um ein bisschen Abwechslung zu machen. Jetzt bleibe ich statt 0,9 bei 0,95. Aber für die maximale Tonhöhe kann ich bei einem bleiben So etwas in der Art. Jedes Mal, wenn du das spielst, hörst du einen anderen Sound. Okay, lass uns alles speichern. Schließen wir es und fahren wir mit der nächsten Lektion fort. 58. 5.07 Timer nach Veranstaltung: Fügen Sie nun den Schritt-Soundeffekt hinzu. Wenn Sie dies schon einmal getan haben, wissen Sie, dass Sie zu den Assets und Animationen wechseln können Und innerhalb einer Animation, zum Beispiel dieser hier, jede zufällige Animation. Eigentlich ist die Hocke wahrscheinlich das Laufen, das wir finden müssen. Zum Beispiel dieser Sie wissen, dass Sie hier reingehen, mit der rechten Maustaste klicken, die Notifier hinzufügen dann einen Soundeffekt Wenn Sie dies tun und hier in der Sound-Warteschlange einen Soundeffekt auswählen, klicken Sie einfach auf Abspielen Sie können sehen, dass es tatsächlich funktioniert. Und du kannst diesen Soundeffekt kopieren, einfügen und versuchen, ihn versuchen, ihn mit den Schritten zusammenzufügen, einfach so So etwas zum Beispiel. Einfach so. Es wird auch im Spiel funktionieren, wenn du das Spiel spielst. Aber ich habe das gemacht und wollte es für dich aufnehmen. Allerdings ruckelt es ein bisschen, denn wenn du rennst, wird der Ton manchmal zweimal wiedergegeben Da das bei der anderen Animation auch der Fall ist, müssen Sie es auf alle Laufanimationen anwenden, wenn Sie die Animation von hinten nach vorne oder von hinten rechts nach hinten links umschalten nach vorne oder von hinten rechts nach hinten links Manchmal wird der Sound tatsächlich zweimal gleichzeitig platziert. Es klingt ein bisschen fehlerhaft. Ich mag diese Methode nicht wirklich, also habe ich eine andere ausprobiert Lassen Sie uns das also beenden und etwas ausprobieren, das als Timer für Ereignis bezeichnet wird. In dieser Lektion möchte ich Ihnen nur erklären , was dieser Timer pro Ereignis ist, weil wir ihn tatsächlich mehr als einmal verwenden werden. Und es ist ein sehr wichtiges Konzept und eine sehr wichtige Funktion innerhalb von Blueprint Gehen wir zum Spieler, gehen wir zur Spielerbasis. Nun zum Laufen, ich möchte es vielleicht hier im Bewegungsereignis platzieren , das am sinnvollsten ist. Nehmen wir das alles und ich werde es etwas herunterdrücken damit ich hier ohne Einschränkungen arbeiten kann. Gehen wir zum Ende des Bewegungscodes und ziehen von hier aus und schreiben Timer für Event. Und wir können weitermachen und diesen Modus auswählen , der als Timer für Ereignis bezeichnet wird. Sie können auch schreiben und sehen, was Sie tun können. Sie haben einen Timer nach Ereignis und einen Timer nach Funktionsnamen. Das ist fast dasselbe wie das Ereignis, aber Sie können sehen, was das ist. Nachdem Sie verstanden haben, was „Timer nach Ereignis einstellen“ ist, wählen wir „Timer nach Ereignis einstellen“. Für dieses Ereignis müssen wir hier ein benutzerdefiniertes Ereignis hinzufügen. Sie können diese Eingabe sehen, die Sie von hier aus weiterleiten müssen , und Sie müssen benutzerdefinierte Ereignisse schreiben. Dann musst du dein benutzerdefiniertes Ereignis etwas nennen. Zum Beispiel nenne ich es einfach Schritte abspielen, Soundeffekte, Schrittgeräuscheffekt abspielen Jetzt fragt es dich hier, wann willst du das wiederholen? Lassen Sie uns zum Beispiel 0,5 erhöhen . Jetzt werde ich hier auswählen, dass dieser Timer eine Endlosschleife ausführt Und ich werde einfach wieder auf diesen Pfeil klicken. Okay, jetzt ist es ein Looping-Timer. Und er wird alle 0,5 Sekunden wiederholt. Wenn ich von hier aus weiterleite und eine Zeichenfolge ausdrucke und ich hier auf Abspielen klicken kann, solltest du sehen, dass wir hier laufen. Und ich stoppe meinen Code Sie können sehen, dass er alle 0,5 Sekunden ausgeführt wird. Sie können sehen, dass es tatsächlich alle 0,5 Sekunden Hallo druckt. Du kannst das besser sehen, wenn ich nur die Farbe ändere. Zum Beispiel habe ich bei der Dauer statt nur 2 Sekunden auf 50 Sekunden gesetzt. Ich klicke auf Abspielen, bewege mich und höre auf. Es wird den Code ausführen. sehe alle 0,5 Sekunden, dass es Hallo sagt. Wenn Sie es weglegen, können Sie sehen, dass es alle 0,2 Sekunden Hallo sagt, wie Sie hier sehen können. Also können wir diesen Timer verwenden, um Code auszuführen. In diesem Fall werden wir ihn verwenden, um die Schrittgeräusche beim Laufen in einer Schleife die Schrittgeräusche beim Laufen zu wiederholen. Er spielt die Soundeffekte ab Okay, für diesen Timer müssen wir den Timer irgendwann beenden Sonst wird er ewig weiterlaufen und dein Code wird irgendwann abstürzen , weil du zu viele Instanzen davon erzeugt hast zu viele Instanzen davon erzeugt Klicken wir also mit der rechten Maustaste und machen daraus eine Variable. Nennen wir das 1 Ft Schritte. Das wirkt sich auf Zeit oder Griff aus. Es wird ein Griff genannt. Wenn Sie die Maus darüber halten, spricht man von einer Time-Handle-Struktur. Normalerweise nenne ich es einfach Zeit oder Handle am Ende. Schritte, Geräusche, Effekte, Zeit oder Griff. Jetzt haben wir das später. Was wir tun können, ist, das zu nehmen und den Timer löschen und ungültig machen zu lassen löschen und ungültig machen Das ist der Zeitpunkt, an dem wir diesen Timer stoppen wollen. Irgendwann können wir weitermachen und diesen Timer zum Löschen und für ungültig erklären verwenden Aber jetzt lass es uns einfach löschen. Ja, das war eigentlich für diese Lektion. Lassen Sie mich das zunächst auf etwa 0,5 ändern . Denn denken Sie daran, dass ein Timer so viele Sekunden läuft. Wenn Sie zum Beispiel 0,1 sind, läuft er zehnmal pro Sekunde. Du kannst dir vorstellen, dass du das nicht auf so etwas setzen willst, denn stell dir vor, wie oft das laufen wird. Wenn ich Hallo sage und auf Play klicke und ich renne und ich stoppe, kannst du sehen, dass es im Spam landet. Mit diesem Code kannst du sehen, dass mein Spiel tatsächlich abstürzt und sehr hinterherhinkt Tu das nicht, das ist wirklich schlimm. Ich bleibe gerne beim Minimalwert. Wenn ich wirklich sehr tief gehen muss, es 0,3 oder in seltenen Fällen vielleicht 0,2. Aber normalerweise versuche ich, bei 0,50 0,40 0,6 zu bleiben , wenn ich es wirklich ausführen muss Oft, was ich schon gesagt habe, können Sie jederzeit zu Ihrem Internetbrowser gehen und zum Beispiel 1/0 0,01 sagen . Dann können Sie sehen, wie oft Normalerweise gehe ich nicht gerne mehr als 60 Mal pro Sekunde. Ich schreibe zum Beispiel, wenn du 0,03 schreibst, läuft es 33 mal pro Sekunde Und manchmal ist das okay, mach dir keine Sorgen. Manchmal ist das notwendig und Sie werden wissen, wann Sie es brauchen. Wenn du so wach bleiben kannst, ist das viel besser. Damit wird der Code 16 Mal ausgeführt. Sie können 0,03 sehen. Sie führen den Code fast oder sogar doppelt so lange aus wie 0,06 Versuchen Sie , hier so hoch wie möglich zu bleiben , denn das wird für mich gerade für die Schritte optimiert Lass es uns einfach als 0,5 Sekunden laufen lassen, zweimal pro Sekunde. Und wir können es später jederzeit anpassen, wenn wir es brauchen. Lass uns diesen löschen. Lassen Sie uns alles zusammenstellen und mit der nächsten Lektion fortfahren. 59. 5.08 Multicast-Replikation: Okay, also hier sind wir wieder. Nun, sehr wichtig, dass wir im Mehrspielermodus sind. Wir können nicht einfach hier reingehen und von hier ziehen und zum Beispiel Sound abspielen sagen. Du sagst einfach Sound abspielen. Sie können den Sound zwei D abspielen , der normalerweise für UI-Elemente verwendet wird , wenn Sie auf eine Schaltfläche klicken. Und Sie können Ton an einer bestimmten Stelle abspielen, zum Beispiel für Schritte Und Sie können einfach weitermachen und den Sound auswählen. Und du kannst sehen, wenn ich auf Play klicke, ich renne, wird der Sound abgespielt wie du hier sehen kannst. Nun, das funktioniert im Mehrspielermodus nicht wirklich. Der Client wird den Ton nicht hören, denn denken Sie auch hier daran, dass wir die Elemente aus der Serverliste auf die Clients replizieren Elemente aus der Serverliste auf die Clients Das würde jetzt im Einzelspielermodus funktionieren , aber nicht im Mehrspielermodus Für den Mehrspielermodus müssen wir jetzt ein Multicast verwenden. Was ein Multicast ist, lassen Sie uns ihn hier einfach erstellen und ich werde ihn Ihnen erklären Lass uns mit der rechten Maustaste klicken und ein benutzerdefiniertes Ereignis erstellen. Bei diesem benutzerdefinierten Ereignis rufe ich zuerst den Server an. Lass es uns über den Server laufen lassen. Schritte vom Server, Soundeffekte. Okay, lassen Sie uns hier in die Replikate klicken, den Server laufen lassen und das zuverlässig Klicken wir jetzt mit der rechten Maustaste hier unten und erstellen Sie ein neues benutzerdefiniertes Ereignis Nennen wir es MC für Multicast. Und noch einmal, spiele Schritte Soundeffekte für dieses Spiel ab, lass uns auf Replicate klicken Und jetzt werden wir uns auch für Multicast und Reliable entscheiden Multicast und Reliable Was ein Multicast ist, können Sie sich vorstellen, er repliziert das, was auch immer Sie hier schreiben, an alle Kunden Es kostet all diese Dinge, die Sie hier schreiben, für alle Kunden Bei Multicast kann es nur über den Server ausgeführt werden. Sie können hier nicht reinkommen und Multicast-Schrittgeräusche sagen , weil dieser, den Sie sehen können, sagt, wenn der Server nur über den Server läuft, können Sie kein Multicast können wir nicht tun. müssen wir es von hier aus ziehen und zuerst durch den Server laufen lassen, Schrittgeräusche. Dann können wir vom Server die Multicast-Schrittgeräusche ziehen und sagen Multicast-Schrittgeräusche Und das wird perfekt funktionieren, also müssen Sie es zuerst über den Server laufen lassen, vom Server aus können Sie dann Multicast Okay, eine weitere Erklärung für Multicast, die Sie verstehen müssen, ist, dass Multicast normalerweise für temporäre Effekte verwendet wird für temporäre Effekte Wenn du zum Beispiel einen Soundeffekt abspielst, weil du dich an Multicast erinnerst, wenn ein Spieler eine Verbindung zu deinem Spiel herstellt und du einen Code in Multicast geschrieben hast, kann der verbundene Spieler diesen Code nicht sehen Hier kommt Rep Notify ins Spiel . Und das wird später kommen Mach dir darüber vorerst keine Sorgen. Aber du kannst hier sehen, ob ich auf eine Variable klicke, ob ich tatsächlich eine Variable habe, ob ich zum Beispiel zu dir in die Hocke gehe und auf meinen Bewegungsstatus klicke kannst du in der Replikation sehen, ich habe auch eine sogenannte Rep Notify, die später kommen wird Aber wenn wir zurückgehen und für den Multicast hierher zurückkehren, kann der verbundene Player den Code , den Sie hier schreiben, nicht sehen, es sei denn, er wird den Sie hier schreiben, nicht sehen, es sei denn Wenn ich mich einfach mit dem Spiel verbinde und es gerade den laufenden Soundeffekt abgespielt hat, kann ich ihn nicht hören, es sei denn der Spieler stoppt und läuft dann erneut Und platziere diesen Code, während ich mit dem Server verbunden bin, dann wird er für den Multicast korrekt abgespielt Sehr wichtig ist, dass Sie etwas tun, das der verbundene Player nicht wirklich hören oder sehen muss, es sei denn, es wird erneut abgespielt, zum Beispiel Nun zu diesem Schritt-Soundeffekt, den wir hier abspielen können, ebenso wie einige visuelle Effekte, zum Beispiel ein Feuerwerk Und wenn du eine Truhe öffnest und dieser Truhe einige goldene visuelle Effekte herauskommen, dann muss das auch auf einem Multicast laufen Der Vertreter hier, wenn ich auf eine meiner Variablen klicke. muss immer dann verwendet werden, wenn der verbundene Player diese Änderung sehen soll Nehmen wir zum Beispiel an, der Spieler hält zum Beispiel eine AK oder eine Pistole, einen Deagle Dann ist es sehr wichtig , dass der verbundene Spieler richtige Waffe an den Händen des Spielers sehen muss Die Waffe benutzt du nicht wirklich in einem Multicast weil der verbundene Spieler dann die falsche Waffe auf dem Spieler sehen wird die falsche Waffe auf dem Spieler Manche Spiele haben eine Menge Geld weil sie Multicast für alles verwenden Auch hier verwende ich es normalerweise hauptsächlich für Soundeffekte und visuelle Effekte , die nicht ständig da sein müssen Sie können zum Beispiel sehen, ob Sie eine Ampel haben , die aus Rot, Gelb und Grün wechselt. Diese Ampel in dieser Farbe würde ich wahrscheinlich innerhalb eines Mitarbeiters benachrichtigen, weil diese Farbe für den verbundenen Spieler korrekt sichtbar sein muss für den verbundenen Spieler korrekt sichtbar sein Der verbundene Spieler muss sehen, ob sie gelb oder rot ist und darf sie nicht so lange grün sehen, bis sie sich wieder ändert Bei temporären visuellen Effekten, z. B. bei Feuerwerkskörpern, die nach 3 Sekunden verschwinden muss ein Zusammenhang nicht in einer Benachrichtigung enthalten sein , sondern in einem Multicast Was auch immer temporär ist und für den verbundenen Spieler nicht sofort sichtbar sein muss, du musst es hier tun Denken Sie daran, dass dieser Code erneut ausgeführt werden muss , bevor der verbundene Spieler ihn sehen kann. Okay, lass uns weitermachen und den Sound hier abspielen. Lassen Sie uns von hier wegziehen und sagen, Ton am Standort abspielen. So spielt man einen Sound ab. Sie müssen angeben, wo Sie den Sound abspielen möchten. Denken Sie daran, wir programmieren innerhalb des Players. Ich kann einfach von hier wegziehen und sagen, Standort des Schauspielers ermitteln. Ich erhalte den Standort dieses Spielers. Jetzt wird dieser Sound überall dort abgespielt, wo sich dieser Spieler befindet. Jetzt müssen wir auswählen, welcher Sound. Wir werden die Schritte auswählen. Wenn ich jetzt auf Abspielen klicke und herumrenne, höre ich jetzt auf. Man kann hören, dass die Schritte spielen Sie können es auch hier auf dem anderen Spieler hören. Wenn ich den anderen Player öffne, kann ich den Ton tatsächlich auch hören. Das ist vom Kunden. Das funktioniert jetzt, okay? Man kann hören, dass es die ganze Zeit läuft, obwohl ich nicht renne. Und das müssen wir auch in der nächsten Lektion beheben. Im Moment wissen wir jedoch, dass dieser Soundeffekt tatsächlich abgespielt wird. Auch hier kann Multicast nur über den Server ausgeführt werden. Sie können ein Multicast nicht über den Client, über den Server ausführen und vom Server aus können Sie ein Multicast zu temporären Sound- oder visuellen Effekten ausführen, die nicht im verbundenen Player erscheinen müssen über den Client, über den Server ausführen und vom Server aus können Sie ein Multicast zu temporären Sound- oder visuellen Effekten ausführen, die nicht im verbundenen Player erscheinen müssen. Zum Beispiel ein Feuerwerk oder eine Kugel, die Sie gerade abgefeuert haben und sie wird verschwinden Aber zum Beispiel ist es für den verbundenen Spieler sehr wichtig, welche Waffe der Spieler in der Hand hält Also das geht innerhalb eines Mitarbeiters, benachrichtigen. Keine Sorge, das machen wir später. Im Moment haben wir nicht viel. Wir haben nur den Soundeffekt. Aber wir werden in diesem Kurs viele Beispiele haben. Okay, um den Soundeffekt stoppen, wann immer wir hier im fertigen Zustand anhalten. Das ist immer dann der Fall, wenn wir die Bewegungstasten loslassen. Was wir tun können, ist, hier wieder in die Fußstapfen zu treten. Wir können den Timer per Griff löschen und für ungültig erklären. Dadurch wird verhindert, dass dieser Timer mehr läuft. Wir können weitermachen und es verbinden, einfach so können wir kompilieren und versuchen, es jetzt abzuspielen. Wenn wir rennen und ich hier aufhöre, hörst du beim Laufen nichts. Der Grund, warum du das alles nicht hören kannst , ist , dass es immer so schnell läuft. Es erreicht diesen Timer nie bevor die zweite Bewegung läuft. Es läuft so weiter. Es gibt ihm eine Pause , um diesen Timer einzustellen. Wir werden das beheben, aber du kannst hier sehen, wenn du das hinzufügst, der Timer den Soundeffekt nicht mehr abspielt , weil wir aufhören. Der Timer wird , nur um sicherzugehen, dass er nicht ausfällt. Wir können immer diesen Schrittgriff verwenden, wir können ziehen und sagen, gültig, und wir können den Timer verwenden, dieser ist Wenn er gültig ist, können wir einen Zweig erstellen und diesen Timer auf diese Weise löschen Okay? Stellen Sie sicher , dass dieser Timer gültig ist, und löschen Sie ihn dann, um ihn sauberer zu machen. Sie können jederzeit einfach eine weitere Instanz dieser Variablen nehmen und sie hier einfügen. Und du kannst weitermachen und diese Grube besser organisieren. Und jetzt haben wir diesen Code. Okay, lassen Sie uns kompilieren und in der nächsten Lektion machen wir das Ganze weniger fehlerhaft und führen diesen Code tatsächlich aus, wann immer wir ihn ausführen 60. 5.09 Schritte von SFX-Bedingungen: Okay, als Erstes muss ich ein Goldbarren machen, lassen Sie uns das lassen Und lassen Sie uns ein neues Goldbarren namens Playing Footsteps Den Soundeffekt „Schritte “ abspielen. Und das habe ich einfach falsch geschrieben. Einfach so, beim Abspielen des Fußstapfen-Soundeffekts, ziehen wir ihn und setzen ihn auf true, wann immer wir die Soundeffekte abspielen Bevor wir das tun, nehmen wir das und machen einen Zweig. Zuerst fragen wir, ob wir die Soundeffekte abspielen oder nicht. Nur um es besser lesbar zu machen, werde ich das wegnehmen und nicht Goldbarren schreiben , einfach so Wenn wir die Soundeffekte nicht abspielen, möchte ich weitermachen und die Soundeffekte abspielen Wir müssen die Fuß-Soundeffekte nicht ausführen , wenn wir sie bereits ausführen. Wenn wir die Schrittgeräusche nicht abspielen, können wir die Soundeffekte einfach so abspielen Denken Sie daran, dass Sie es auf Fehler einstellen müssen. Irgendwann hier, wenn wir den Timer und die Soundeffekte stoppen, werde ich das auf „Falsch“ setzen. Lassen Sie uns zusammenfassen und sehen, ob das funktioniert oder ob wir mehr tun müssen. Jetzt können Sie tatsächlich sehen, dass es funktioniert, wenn Sie laufen, es funktioniert, wenn Sie aufhören, es stoppt auch. Okay, großartig. Jetzt läuft es viel zu langsam. Vielleicht müssen Sie diese Zahl auf 0,5 oder vier reduzieren. Und du kannst weitermachen und wieder spielen. Vielleicht ist das viel zu schnell. Eigentlich werde ich 0,42 schreiben . Ich denke, du musst es ein paar Mal spielen Versuche dein Spiel zu testen. Ich denke, das ist in Ordnung. Sie können dies später jederzeit anpassen , wenn Sie Geld damit haben Aber ich denke, diese Zahl ist momentan in Ordnung für mich. Jetzt funktioniert das richtig. Sie werden jedoch einige Fehler haben. Du wirst sehen, wenn du auf Play klickst und ich renne herum, du kannst sehen, ob du auf etwas stößt. Platziere auch den Soundeffekt. Dies ist ein kleiner Fehler , den Sie beheben müssen. Für diesen Fall kannst du die Geschwindigkeit des Spielers verwenden, denn wenn ich das einfach wegschlage, lass uns das alles hier wegbewegen. Sie haben also tatsächlich etwas Platz zum Arbeiten. Wenn du mit der rechten Maustaste klickst und „Geschwindigkeit berechnen“ sagst, ist das die Geschwindigkeit des Spielers und du nimmst das und unterbrichst, unterbrichst diesen Vektor. Du kannst also wieder X, Y und Z sehen. Sie können auch einfach mit der rechten Maustaste klicken und den Strukturpin teilen. Das ist dasselbe. Aber ich zerschlage den Vektor gern , nur um ihn hier draußen zu haben. Lassen Sie uns nun, nur um es zu sehen, eine Zeichenfolge drucken. Sie können zum Beispiel einfach die X-Geschwindigkeit ausdrucken und sehen, was darin steht. Normalerweise mache ich das manchmal , wenn ich einen neuen Mechaniker mache. Ich benutze die Druckzeichenfolge oft, um zu sehen, was sie macht. Sie können auf W klicken, um sich zu bewegen, und Sie können sehen, wie die Geschwindigkeit zunimmt. Die Geschwindigkeit deines Charakters nimmt zu, wenn ich mich bewege. Okay. Einfach so. Und das Gleiche gilt für X und Y. Du kannst also sehen, wie es zunimmt, wenn du dich bewegst Was wir tun können, um die Soundeffekte abzuspielen , wenn du in Dinge hineingehst, ich will den Sound nicht abspielen Lassen Sie uns davon ausgehen und sagen, ob diese Geschwindigkeit größer als beispielsweise 100 ist oder ob sie niedriger als 100 ist. Denn denken Sie daran, wenn Sie zurückgehen, wird es eine Minuszahl sein wenn sie ebenfalls niedriger als 100 ist. Oder machen wir das auch für das Y. Lass uns das kopieren, einfügen und es einfach hier verbinden. Ob es hier niedriger oder höher oder niedriger als 100 ist. Lassen wir das hinter uns. Wir müssen kein Edelmetall verwenden, weil n bedeutet, dass all das wahr sein muss Wir können daraus ableiten und ein Or-Bollion verwenden , wenn eines davon wahr ist, wir wollen den Ton nicht abspielen, weil wir zu langsam sind Klicken wir hier auf das Plus und fügen sie alle hinzu. Wir wollen damit sagen, wenn die Geschwindigkeit für X über 100 ist, oder wenn sie niedriger als 100 ist, oder wenn es dies ist oder wenn es das ist, dann wollen wir den Sound abspielen, den wir von hier ziehen und einen Zweig schreiben können. Dann können wir von diesem Zweig aus weitermachen und ihn verbinden. Einfach so können wir den Code verbinden. Jetzt wird der Code nur dann abgespielt, wenn wir uns mit dieser Geschwindigkeit bewegen. Lass uns auf Play klicken. Und ich bewege mich. Ich höre auf und mache mich hier auf etwas gefasst. Ich sehe, es läuft immer noch. Und ich glaube, das liegt daran, dass das hier nicht hoch genug ist. Wenn wir zum Beispiel schreiben, liegt das eigentlich daran, dass dieser ist, der niedrigere ist auch falsch. Lass es uns tatsächlich zuerst höher machen, lass uns 250 machen. Und hier muss ich niedriger schreiben -250. Das war ein Fehler von mir Lass mich einfach 250 schreiben und es ist niedriger als -250 Es spielt tatsächlich immer noch den Ton ab, wenn ich in Dinge hineinlaufe , und das liegt daran ich es hier nicht falsch gesetzt habe Wenn es falsch ist, kannst du sehen, ob es wahr ist, es wird der Soundeffekt abgespielt. Aber wenn ich die Taste weiter drücke , wird es falsch sein. Wir tun wirklich nichts. Dadurch wird der Soundeffekt nur gestoppt , wenn ich die Taste loslasse. Was wir tun müssen, ist, das hier runterzuziehen. Und wir müssen das auch hier falsch einbauen. Also stoppt es den Timer , wenn er falsch ist. Klicken wir auf Jetzt abspielen und gehen wir zu den Dingen über. Und du kannst jetzt sehen, dass der Sound nicht abgespielt wird. Wenn ich ein bisschen gehe, kannst du sehen, dass es anfängt , den Ton abzuspielen. Sie können diese Zahl jederzeit anpassen. Wenn du sie leiser machst, wird der Ton viel schneller abgespielt , wenn du auf Dinge zugehst. Aber im Moment ist das in Ordnung für mich. du kannst immer weitermachen und das ein bisschen mehr organisieren, okay? Also so etwas in der Art. Ich habe nur die gelesenen Routennotizen eingefügt, damit sie etwas besser lesbar sind. Einfach so, okay. Was wir jetzt tun müssen, es gibt noch andere Faktoren. Der nächste Faktor ist, du kannst sehen, ob ich hier raufgehe, lass mich tatsächlich von hier oben springen und ich springe, es spielt auch das Geräusch in der Luft ab du kannst sehen, ob ich hier raufgehe, lass mich tatsächlich von hier oben springen und ich springe, . Was wir tun müssen, ist, dass dieser nicht springt, also stellen wir sicher, dass der Spieler nicht springt. Sonst wollen wir die Soundeffekte nicht abspielen. Schlagen wir es mit dem Ruder und dem richtigen Goldbarren. Falls das stimmt, wenn du nicht springst, können wir weitermachen und die Soundeffekte abspielen Das muss auch eine Bedingung sein. Eigentlich sollten wir sie schlagen. Ja, ein bisschen hier hinten. Lass mich das alles weiter wegziehen. Jetzt funktioniert das Springen. Die zweite Sache ist, dass wir auch sichergehen wollen, dass wir tatsächlich laufen und nicht laufen. Und du kannst hier sehen, wenn ich zuerst Laufen spiele und dann gehe, läuft es auch. Ich weiß nicht, ob ich das habe, eigentlich nicht. Wir können diesen Bewegungsstatus annehmen und von hier wegziehen und sagen, holen Sie sich noch einmal eine Kopie. Wir können versuchen zu überprüfen, was der letzte Index ist. Wenn er läuft, bedeutet das, dass wir gerade den Laufknopf drücken gerade den Laufknopf und nicht laufen oder hocken. Wenn das gleichbedeutend mit Laufen ist, können wir diesen Code einfach so ausführen . Wir können es so machen. Um es übersichtlicher zu machen, wähle ich das Ganze mit der rechten Maustaste aus und lasse es zu einer Funktion zusammenklappen , die ich so nenne, Funktion läuft. Ich überprüfe nur, ob der Player läuft oder nicht. Ich mache daraus eine reine Funktion. Lass uns hier reingehen und das einfach ein bisschen mehr innerhalb der Funktion organisieren , einfach so. Hier überprüfen wir einfach , ob der Player läuft oder nicht. Dieser läuft also, also stellen wir sicher, dass der Player läuft, sonst wollen wir die Schrittgeräusche nicht abspielen. Okay, lass uns weitermachen und hier spielen. Und versuche es erneut. Ich spiele gerade. Ich höre auf. Wenn ich renne, wenn ich die Schicht halte, um zu gehen, gehe ich nicht spielen. Wenn ich loslasse, großartig. Jetzt funktioniert es, okay. Im Moment gibt es ein kleines Problem. Du kannst sehen, wenn ich ein bisschen renne, wird der Soundeffekt nicht wirklich abgespielt , es sei denn, ich renne ein bisschen mehr. Was Sie hier für den Timer nach Ereignis wissen müssen , ist die Zeit, die Sie hier genau haben müssen , bis dieser Code tatsächlich abgespielt wird , zum Beispiel Fit Five. Und ich klicke auf Play. Dieser Code wird nicht sofort abgespielt. Es wird 5 Sekunden warten, bevor es läuft. Die erste Instanz dieses Codes dauert 5 Sekunden , bis er tatsächlich mit der Wiedergabe der Schrittgeräusche beginnt. Wie Sie hier sehen können, ist der Soundeffekt gerade abgespielt, der Schritt-Soundeffekt ist 0,42. Wir müssen den Soundeffekt direkt vor dem Abspielen abspielen , nur einmal Wir können das hier machen. Wann immer wir anfangen werden, die Soundeffekte abzuspielen. Ich kann weitermachen und mich daran erinnern, dass Sie den Multicast nicht direkt vom Client aus ausführen können. Du musst es auch über den Server laufen lassen. Deshalb kann ich von hier aus fahren und zuerst die Play-Schritt-Soundeffekte schreiben zuerst die Play-Schritt-Soundeffekte Und dann wird der Multicast abgespielt. Danach spiele ich sofort den Schritt-Soundeffekt ab. Wenn ich nach 0,42 Sekunden renne, beginnt er, diesen Code in einer Schleife zu wiederholen Denn wenn ich das nicht mache, wird es bis zu 0,42 Sekunden warten , bis es anfängt, all das auszuführen Deshalb haben wir eine kleine Verzögerung. Wenn du auf „Jetzt spielen“ klickst, kannst du sehen, dass es sofort abgespielt wird, es ist also viel besser. Jetzt auch, was Sie tun können , wenn Sie es nicht sofort abspielen möchten Wenn Sie Ihren Soundeffekt etwas verzögern möchten , was Sie tun können, können Sie auch hier klicken und diese verstrichenen Sekunden oder Triggersekunden nehmen diese verstrichenen Sekunden oder Triggersekunden Beide funktionieren. Lassen Sie mich eigentlich nur die sogenannte Trigger-Sekunde verwenden. Was Sie tun können, ist, von hier aus zu ziehen, lassen Sie uns einfach eine Zeichenfolge drucken. Ich mag es, Zeichenketten zu drucken, damit Sie sehen können, was wir tun. Lassen Sie uns diese Druckzeichenfolge mit dem Code verbinden und diese Triggersekunden mit der Druckzeichenfolge verbinden. Lass uns spielen. Man kann sehen, wenn ich meinen Schlüssel gedrückt halte Es zählt nur Sekunden, wie lange ich meinen Schlüssel gedrückt habe. Zum Beispiel kann nicht nur mein Schlüssel, sondern meine gesamte Bewegung aussagen, dass ich mich bewege, es zählt. Wenn ich meine Bewegung loslasse, fängt sie von vorne an. Es zählt nur Sekunden davon, wie lange Sie die Bewegungstasten gedrückt haben. Aber was Sie tun können, ist, daraus zu verfolgen und zu sagen, wenn die Auslösesekunden höher als beispielsweise 0,3 sind, dann wollen wir weitermachen und losrennen. Lassen Sie mich hier nur eine weitere Bedingung hinzufügen. Wir haben hier eine Menge Bedingung eins. Am Ende haben wir viele Bedingungen. Lass es uns anschließen und lass uns auf Play klicken. Es funktioniert, aber jetzt, nach 0,3 Sekunden , wird der Code abgespielt. Wenn du ihn jetzt höher machst, wird er viel später abgespielt. Wenn du nach 2 Sekunden auf Play und nach 2 Sekunden auf Run klickst, wird der Code abgespielt. Dies ist der Fall, wenn Sie es etwas verzögern möchten. Wenn Sie den laufenden Soundeffekt nicht sofort abspielen möchten , können Sie eine kleine Verzögerung einstellen, vielleicht 0,4 statt 0,5, und er wird viel schneller abgespielt. Sie können sehen, dass der Soundeffekt nicht abgespielt wird, wenn Sie das einfach tun. Wenn Sie nur schnell auf die Taste klicken, aber etwas mehr darauf klicken, wird der Soundeffekt abgespielt. Ich glaube, ich setze es auf 0,3 Ich glaube, es wird viel zu spät abgespielt. Wenn du das tust, wird es nicht abgespielt. Wenn Sie es jedoch etwas stärker drücken, wird der Soundeffekt abgespielt. Okay. Jetzt funktioniert es perfekt. Mach weiter und organisiere den Code. Wenn Sie einen der Pins aus dem entfernen möchten, können Sie beispielsweise schreiben, klicken und den Pin entfernen. Mach weiter und organisiere den Code. Jetzt ist alles organisiert und Sie können den Code hier sehen, falls Sie etwas verpasst haben. Ich habe auch dieses Abschlussprojekt für dich hochgeladen , damit du es verfolgen kannst. Lass uns weitermachen und kompilieren. Speichern wir alles und fahren wir mit der nächsten Lektion fort. 61. 6.01 Platzieren der Spawn-Punkte: Okay, jetzt, wo wir die Bewegung fertig haben, brauchen wir natürlich immer noch die Bewegung für die Pistole und die Bewegung für das Gewehr, aber darauf werden wir uns später konzentrieren Lassen Sie uns zunächst mit dem Spawnen des Spielers für das Spawnen des Spielers fortfahren . Lassen Sie uns damit beginnen, einige Spawnpunkte für den Spieler hier im Blueprints-Ordner zu platzieren für den Spieler hier Klicken wir mit der rechten Maustaste auf „Neuen Ordner erstellen“. Nennen wir diesen Ordner Span Points Again, klicken wir mit der rechten Maustaste auf diesen Ordner. Ich werde die Farbe auf diesen einstellen. Nochmals, in diesem Ordner. Klicken wir jetzt mit der rechten Maustaste, um die Spawnpunkte setzen. Die Spieler müssen starten, damit zu setzen. Die Spieler müssen starten, damit der Spieler tatsächlich mit dem Level beginnen kann Anstatt es jedoch von hier aus erstellen zu lassen, weil dieses Spiel im Moment einfach daraus erstellt wird , beginnen die Spieler Wir benötigen jedoch die Spawnpunkte , die eigentlich Baupläne sind Anstatt diesen zu machen, löschen wir ihn. Spieler beginnen mit dem Level. Wenn du sichergehen willst , dass du nicht mehr Spielerstarts in deinem Level hast, kannst du jederzeit einfach hier im Outliner auftauchen und nach Spielerstart suchen Und du kannst sehen, dass hier nichts ist. Ich werde hier oben auf das X klicken, um ein neues zu erstellen. Klicken wir jetzt mit der rechten Maustaste auf „Gehe zur Blueprint-Klasse“, anstatt eines davon auszuwählen. Sie können hier auf diesen kleinen Pfeil klicken, können Sie tatsächlich sehen, Sie können von fast allem Blaupausen erstellen von fast allem Blaupausen Eine Kamera, Laub und sogar der Spieler startet und so weiter. Du kannst also sehen, dass du 682 Objekte hast, nach denen du suchen kannst, zum Beispiel nach einem gespeicherten Spiel, wenn du ein Spiel erstellen willst , in dem du speicherst, entlädst und so weiter Du hast hier also eine Menge Dinge drin. Im Moment müssen nur die Spieler anfangen. Wenn du nach einem Spielerstart suchst, kannst du ihn hier sehen. Dieser heißt Players Start. Wählen Sie diesen aus. Fahren Sie fort und klicken Sie auf Auswählen. Nennen wir es BP-Spawns. Ich werde aus irgendeinem Grund automatisch speichern. Nennen wir es BP Spawn Point Base. Wir haben, wir haben einen Basisplan, genau wie der Spieler. Wenn du zum Spieler zurückkehrst, haben wir eine Spielerbasis. Und aus diesem Spieler heraus haben wir diese beiden geschaffen. Jetzt habe ich nicht wirklich erklärt, wofür sie verwendet werden, weil wir nicht wirklich etwas in den Plänen für Terroristen und Terrorismusbekämpfung haben Terroristen und Terrorismusbekämpfung Und diesen müssen wir später korrigieren. Aber jetzt kannst du hier sehen, dass sie leer sind, die Kinder der Spielerbasis. Denkt daran, das sind die Kinderpläne der Spielerbasis Du kannst auch sehen, dass, wenn du die Maus über sie hältst, du siehst, dass die übergeordnete Klasse die Spielerbasis ist Wir werden in diesem Abschnitt erklären , wofür sie verwendet werden. Gehen wir nun zurück zu den Summenpunkten. Und jetzt, wo wir einen Basis-Spawnpunkt haben, klicken wir mit der rechten Maustaste darauf Erstellen Sie eine untergeordnete Blueprint-Klasse. Nennen wir diesen einen BP-Terror-Spawn-Point. Klicken wir erneut mit der rechten Maustaste auf diese Saw Point Base und erstellen eine weitere untergeordnete Blueprint-Klausel Nennen wir diesen einen Spawnpunkt für BP-Terroristen. Okay, wir haben einen Spawnpunkt für die Terrorismusbekämpfung und wir haben einen Spawnpunkt für Terroristen Lass uns jetzt weitermachen und sie innerhalb des Levels platzieren. Nehmen wir zuerst den Anti-Terror-Angriff und platzieren ihn irgendwo im Level, zum Beispiel hier. Und du kannst erneut auf E klicken, um es zu drehen, und du kannst es drehen. Einfach so. Du kannst sehen, dass du diesen blauen Pfeil hast und da schaut der Spieler hin. Weil du sehen kannst, wenn ich auf Play klicke, schaut der Spieler jetzt in diese Richtung. Wenn ich es so drehe und spiele, dreht sich der Spieler in diese Richtung. Um sicherzugehen, dass sie die richtige Richtung schauen, in die richtige Richtung schauen, machen wir weiter und lassen es so aussehen , dass es in diese Richtung zeigt. Okay? Jetzt können Sie die Bondpoints später immer noch anpassen, aber im Moment werde ich sie nur dort platzieren wo sie meiner Meinung nach am optimalsten wären. Also zum Beispiel die Theken-Terrasse hier, du kannst jederzeit die Alt-Taste gedrückt halten und ziehen, um sie zu kopieren. Und du kannst diesen hier zum Beispiel platzieren. Und normalerweise setze ich sie hier hinter die Verteidigung, denn wenn man sie hier draußen aufstellt, können sie sich einfach sofort gegenseitig töten. Normalerweise stelle ich sie hinter die Mauer damit sie nicht sofort getötet werden. Du kannst einfach ein paar von ihnen platzieren. Das ist ein dritter und das ist der vierte. Okay? Einfach so. Du kannst sogar einen hier oben platzieren, aber ich will hier oben niemanden spawnen Ich will sie nur hier unten spawnen. Nochmals, was dein Spiel angeht, es liegt ganz bei dir. Sie können wählen, wo Sie Ihre Spieler spawnen möchten , ganz nach Ihren Wünschen Okay, ich habe sie hier gespawnt. Lassen Sie mich jetzt hier drüben dasselbe für den Terroristen tun. Lassen Sie mich das auf den Punkt bringen und es irgendwo hier platzieren. Auch hier versuche ich, sie so gut wie möglich hinter der Wand zu platzieren . Halte Alton gedrückt, ziehe, um zu kopieren, und ich werde einen hier drüben platzieren Jetzt heißt es, oh, ich habe den Farbwähler. Aus irgendeinem Grund habe ich eigentlich keine Ahnung, was ich gerade gedrückt Hier klicken und es wieder hierher ziehen. Halten Sie hier irgendwo Platz und halten Sie Alt gedrückt. Ziehe den letzten und platziere ihn hierher. Ich werde mir nur die Seite ansehen, sehen, wie sie aussehen. Ich kann sie alle auswählen, indem ich die Strg-Taste gedrückt halte und sie anklicke. Ich kann sie einfach etwas näher an die Wand bringen. Das liegt daran, dass ich Waffen eigentlich hinter diesen Spielern oder hinter diesen Spawns platzieren möchte hinter diesen Spielern oder hinter diesen Spawns Okay. Sowas in der Art. Ich finde, es sieht gut aus. Du kannst diese Spawnpunkte nach Belieben anpassen, aber ich finde, das sieht toll Jetzt haben wir also die Spawnpunkte für Terroristen platziert, und wir haben auch die Spawnpunkte für die Terrorismusbekämpfung Spawnpunkte für die Terrorismusbekämpfung Also lasst uns weitermachen und alles speichern und lasst uns weitermachen. 62. 6.02 Speicherung von Spawn-Point-Informationen: wir nun all diese Son-Punkte platziert haben, gehen wir die Informationen nochmal durch und speichern Jetzt mache ich das normalerweise innerhalb des Spielmodus weil der Spielmodus die Regeln für das Spiel festlegt. Jetzt, wo du im Mehrspielermodus arbeitest, ist es sehr wichtig zu wissen, dass der Code, den du hier im Spielmodus schreibst, nur auf dem Server läuft, wenn du der Spieler bist und sagen wir innerhalb des Spielers, du versuchst es hier von der Bewegung aus denn wenn du die Bewegung hier startest , feuerst du den Code als Spieler oder als Client ab. Und als Server kannst du immer sehen , als welcher du feuerst. Wenn du einfach von hier ziehst und eine Print-Zeichenfolge schreibst. Denken Sie jetzt daran, dass eine Druckzeichenfolge sehr leistungsfähig ist. Und wenn du kompilierst und auf Play klickst. Und jetzt, wenn ich umziehe, kannst du sehen, dass da jetzt Server steht. Und wenn ich als mein Kunde umziehe, sagt der Kunde Hallo. Das bedeutet, dass dieser Code hier über den Server und den Client läuft und nicht nur über den Server. Lass mich es jetzt verbinden. Lassen Sie mich ein anderes Beispiel nehmen. Etwas, das nur über den Server läuft. Wenn ich zum Beispiel in die Hocke gehe und es hier von der Behörde aus spiele , kann ich es kompilieren Klicke auf Abspielen, und wenn ich als Server gehe, wird nichts ausgedruckt Und das ist tatsächlich so, wenn ich jetzt auf Play klicke, gehe ich als Server. Ich werde mich tatsächlich ducken. Das ist die Hockertaste. Wenn ich in die Hocke gehe, kannst du Hallo sagen. Wenn ich jedoch als Client spiele und mich ducke, kannst du sehen, dass der Server Hallo sagt Es ist nicht der Client , der Hallo sagt , weil dieser Code nur auf dem Server läuft Für den Spielmodus können Sie hier von einem Client aus nicht auf den Code zugreifen. Es hat keinen Zugriff auf den Spielmodus. Wenn du hier Code schreiben willst , auf den du vom Client aus zugreifen musst, ist das nicht möglich, dann solltest du ihn nicht innerhalb des Spielmodus schreiben. Spawn-Punkte. Sehr wichtig zu wissen, dass es immer der Server ist, Dinge in die Das liegt daran, dass wir versuchen, Betrug zu vermeiden. Wir lassen immer den Server das Spawnen erledigen. Zum Beispiel das Spawnen der Spieler, die eine Waffe in das Level spawnen , wenn der Spieler sie aus dem Inventar fallen lässt und solche Dinge Das Spawnen erfolgt immer im Spielmodus. Was die Spawnpunkte betrifft, können wir sie hier hineinschreiben. Lassen Sie uns das alles vorerst löschen. Lass uns Click Inside in Events schreiben. Wenn du zum Beispiel auf ein Event und dann auf ein Spiel klickst, siehst du etwas, das als Post-Login bezeichnet wird . Du kannst auch einfach klicken und nach dem Einloggen schreiben. Und dieses Event im Mehrspielermodus. Immer wenn der Spieler eine Verbindung zu deiner Map herstellt, stellt er eine Verbindung zu deinem Server her. Das Abmelden nach dem Einloggen ist wie ein Spielstart. Immer wenn der Spieler eine Verbindung zu deinem Server herstellt, passiert etwas Okay? Also, was wir hier normalerweise tun wollen, ist, dass wir eine neue Variable erstellen wollen. Erstelle eine neue Variable, du kannst die Eingabe des neuen Spielers sehen. Hier ist ein Player-Controller, sodass Sie den Controller des Players tatsächlich speichern können , wenn er eine Verbindung herstellt, und ihn später verwenden können. Das sind sehr nützliche Informationen. Lassen Sie uns verbundene Spieler schreiben und der Typ ist Player-Controller Wählen Sie dann diesen aus, Player-Controller-Objektreferenz . Und lass uns kompilieren. Da wir alle Spielersteuerungen speichern wollen , wenn sie eine Verbindung herstellen, müssen wir daraus ein Array machen. Denken Sie daran, dass es sich um eine einzelne Variable Sie können nur eine Information speichern. In einem Array ist es jedoch wie eine Box. Sie können alle Steuerelemente des Players in dieses Feld legen und es später verwenden. Nehmen wir das, verfolgen wir von hier aus und sagen Ad. Wir können diesen Player-Controller hier zu dieser Box hinzufügen , wobei die gesamte Spielersteuerung mit den verbundenen Spielern hier erfolgt. Anstatt diese Anzeige zu verwenden, meiden Sie einfach die Box. Ich schlage normalerweise einfach von hier aus zu und verwende diese Anzeige namens add unique. Du kannst nur eine Instanz dieses Player-Controllers hier drin haben , nur für den Fall, dass der Spieler wieder eine Verbindung herstellt oder ähnliches Wir haben keine zwei Player-Controller von diesem Typen im Array Einzigartig hinzufügen. Fügt hier einfach eine Instanz dieses Player-Controllers hinzu. Und dann, um die Informationen für die Bondpoints zu speichern. Und um irgendwas zu bekommen, das ist sehr, sehr wichtig. , dass Sie beim Programmieren in meinen Kursen Ich möchte, dass Sie beim Programmieren in meinen Kursen auf die Tools achten, die ich verwende. Manchmal ist es wichtig, dass wir einen Ego-Shooter oder ein 2-D-Spiel programmieren . Manchmal ist es wichtiger, tatsächlich auf die Knoten zu achten, die ich verwende. Und stell dir vor, wie du es sonst in einem RPG-Spiel verwenden kannst , wenn du Münzen plünderst und so weiter Um alles zu speichern oder abzurufen , was sich in deinem Level befindet , was in deinem Level existiert, müssen wir einen Knoten namens Get Actor of Class verwenden Wenn du hier mit der rechten Maustaste klickst und „Spieler deiner Klasse holen“ sagst, kannst du jetzt sehen, dass du hier alles abrufen kannst , was sich innerhalb deines Levels befindet. Zum Beispiel die Spieler , die wir verwenden. Wenn du nach Player-Start suchst, kannst du das sehen. Du kannst es auch hier sehen, da es nicht Spielerstart heißt, ist das nicht falsch. Du kannst aber auch, wenn du zu den Spawnpunkten gehst, die Spawnpunktbasis bekommen, jetzt, wo wir sie im Blueprint haben, wenn du einfach nach der Punktbasis suchst, kannst du sie hier sehen Werde ein erstklassiger Schauspieler. Holt nur einen von ihnen vom Level her. Wir haben auch einen anderen Knoten namens Get All Actors of Class. Wir bekommen nicht nur einen Punkt, wir bekommen tatsächlich alle Spawnpunkte Eigentlich möchte ich sie nur trennen. Sie können einfach nach Span Point Base suchen und es hinzufügen und es Spain Points nennen. Aber ich werde sie tatsächlich schon von hier trennen. Ich werde nach den Spawnpunkten für Cada-Terroristen suchen Spawnpunkten für Cada-Terroristen Spawnpunkt. Stellen Sie sicher, dass es der Spawnpunkt ist, den Sie hier auswählen. Ich werde hier mit der rechten Maustaste klicken, es zu einer Variablen heraufstufen und es Cada Terror-Spawnpunkte nennen Cada Terror-Spawnpunkte Jetzt habe ich sie in dieser Array-Variablen. Okay, als Nächstes können wir wieder sagen, holt alle Schauspieler der Klasse, wir können Spawnpunkte für die Terroristen Wenn Sie einen Spa-Point für Terroristen finden können, lassen Sie uns ihn hier wieder verbinden Lassen Sie mich mit der rechten Maustaste darauf klicken , daraus eine Variable machen und sie Spawnpunkte für Terroristen nennen . Es geht darum alle Akteure der Klasse von terrassenförmig angelegten Spawnpunkten zu bekommen, und das sind alle hier Es empfängt alle vier und wir speichern es jetzt in diesem Array In Ordnung, jetzt, wo wir das wieder gespeichert haben, können Sie jederzeit versuchen, eine Zeichenfolge zu drucken, wenn Sie möchten Klicken Sie mit der rechten Maustaste auf eine Zeichenfolge drucken, einfach so. Sie können zum Beispiel versuchen, diesen zu bekommen , holen Sie sich eine Kopie davon. Auch hier gilt: Wenn Sie sich nicht an die Funktionen für ein Array erinnern, können Sie einfach nach Array suchen und Sie können alle Funktionen sehen , die Sie hier verwenden können. Du kannst zum Beispiel get sagen, wenn ich es hier finde, dieses hier und du kannst es verbinden. Jetzt bekommst du den Spanien-Punkt bei Index Null. Und wenn Sie spielen, können Sie sehen, dass es wie Terrorist-Spin-Point heißt. Wenn Sie den Spinpunkt an Index eins in dieser Reihe erhalten, heißt das Spin 0,2. Wenn Sie den Spinpunkt in Index zwei erhalten, heißt er Spin 0,3. Sie können sehen dieses Array tatsächlich alle Spanien-Punkte enthält. Sehr nützlich, auch hier die Verwendung Pin-Strings, wenn Sie Ihr Spiel debuggen möchten, nur wissen möchten, was diese Variable zum Beispiel tatsächlich speichert Lass uns weitermachen und kompilieren, alles speichern und weitermachen 63. 6.03 Importieren der UI-Assets: Jetzt, wo wir die Informationen zu den Spanien-Punkten gespeichert haben, sind wir bereit, einige Benutzeroberflächen zu erstellen , bevor wir mit dem Spawnen fertig Lassen Sie uns also weitermachen und die Benutzeroberfläche in die Kostenunterlagen importieren , die ich Ihnen auf dieser Website zur Verfügung gestellt habe Ihnen auf dieser Website . Sie können sie erneut herunterladen Wenn Sie es noch nicht heruntergeladen haben, können Sie in den UI-Ordner gehen. Hier habe ich Buttons für dich und ich habe die Icons und ich habe auch Bilder. Wenn du jetzt auf die Knöpfe klickst, lass mich eigentlich zuerst in den Motor gehen. Und lassen Sie mich einen UI-Ordner erstellen. Klicken wir mit der rechten Maustaste auf den Inhaltsordner. Ich werde hier einen neuen Ordner mit dem Namen I erstellen. Lass uns mit der rechten Maustaste klicken und einen neuen Ordner erstellen. Und ich werde es zum Beispiel Buttons nennen. Ich werde ein neues namens Icons machen. Ich werde ein neues mit dem Namen Images erstellen. Fangen wir mit dem Button-Ordner an. Lassen Sie mich in meine Kursmaterialien gehen. Nehmen Sie alle Schaltflächen hier und klicken Sie darauf und ziehen Sie sie in Ihren Punt-Browser Einfach so kannst du sehen, wie sie alle importiert wurden. Fantastisch. Nun zu diesen hier: Wenn du einfach eine davon öffnest, kannst du sehen, dass sie wichtig sind und alles korrekt ist. Um sie ein bisschen besser zu machen und sie nicht verschwommen zu machen oder irgendwelche Fehler im Spiel zu verursachen, musst du die Texturgruppe auf UI ändern Du musst auch die Kompressionseinstellungen auf Benutzerschnittstelle zwei D ändern . Dann weiß es tatsächlich , dass es sich um ein UI-Element handelt und wir haben nichts, was verschwommen ist oder irgendeine weiße Linie hinter dieser UI ist und so weiter Und das müssen Sie tatsächlich für alle tun. Jetzt zeige ich dir einen Trick. Wir haben das schon einmal benutzt. Und wenn Sie einfach alle auswählen, können Sie „Click Go to Asset Actions“ und „Bulk Edit via Property Matrix“ schreiben . Jetzt haben wir das mit den Animationen gemacht. Wenn Sie sich erinnern, können Sie dies auch mit den UI-Elementen hier tun. Lass uns hier auf Komprimierung klicken. Stellen Sie sicher, dass Sie sie in den Komprimierungseinstellungen zu einer Benutzeroberfläche machen. Zwei D, lassen Sie mich tatsächlich sehen, was das andere ist, ich denke, es liegt hier im Detaillierungsgrad. Eine Gruppe wählt diese aus und macht sie zur Benutzeroberfläche. Jetzt haben Sie es tatsächlich für alle geändert und wir müssen es nicht für jeden einzelnen tun. Jetzt kannst du sehen, wenn du zum Beispiel auf eines davon klickst, du kannst sehen, dass es sich um UI und Benutzeroberfläche handelt, großartig. Alles sieht gut aus. Lass uns weitermachen und auf Datei und Speichern klicken. Gehen wir zurück zu den Kursmaterialien. Kehren wir zu den Symbolen zurück. Möglicherweise sehen Sie mehr Symbole als das, was Sie hier auf meinem Bildschirm sehen können. Auch das liegt daran, dass ich bei der Entwicklung dieses Kurses normalerweise Symbole verwende. Später werde ich weitere Symbole hinzufügen, aber in Ihrem Beispiel oder in Ihren Inhaltskursmaterialien werden Sie wahrscheinlich mehr Symbole sehen. Lassen Sie sich nicht verwirren, wir werden sie später verwenden. Aber im Moment habe ich nur diese beiden. Und ich gehe zu meinen Icons und ziehe sie hierher. Und wieder, genau wie zuvor, klicken Sie darauf, machen Sie daraus eine UI und eine Benutzerschnittstelle zwei dann eine Benutzerschnittstelle zwei D. Ich mache das auch für die andere, Benutzerschnittstelle zwei D. Okay, die sind fertig. Gehen wir jetzt noch einmal zu den Bildern über. Und lassen Sie mich mein Kostenmaterial öffnen. Lassen Sie uns zu den Bildern zurückkehren. Lass mich sie alle hier importieren. Und manchmal werden sie tatsächlich zu einer normalen Map gemacht , wie Sie hier sehen können. Diese wurden als normale Karten importiert und das will ich nicht. Und wenn Sie auf Wiederherstellen, Umkehren und Wiederherstellen klicken , werden sie nicht zu einer normalen Map Klicken Sie also erneut auf die erste Karte, wählen Sie die letzte aus und klicken Sie mit der rechten Gehen Sie zu Asset-Aktionen und Massenbearbeitung über die Eigenschaftenmatrix. Öffnen Sie die Komprimierung Sie hier in den Komprimierungseinstellungen auswählen. Wählen Sie die Benutzeroberfläche, zwei D in der Detailebene in der Texturgruppe, und wählen Sie die Benutzeroberfläche aus. Lassen Sie uns alles schließen und alles speichern. Nun, da alles fertig ist, fahren wir mit der nächsten Lektion fort. 64. 6.04 Importieren einer benutzerdefinierten Schriftart: Ordnung, jetzt, wo wir die Benutzeroberfläche hinzugefügt haben, benötigen wir auch etwas Geld, das wir verwenden können Etwas Text, benutzerdefinierter Text, und du kannst ihn finden, wenn du Google-Fonds eingibst. Das ist wirklich nett zu benutzen, weil sie kostenlos sind und sie eine Menge cooler Fonds haben. Wenn du in die Google-Fonds gehst und darauf klickst, ist das hier raus, eines der Gelder, die du in deinem Spiel verwenden möchtest. Was ich normalerweise mache, ist hier in Kategorien, normalerweise entferne ich das Display, die Handschrift und den Monospace Auch hier kommt es darauf an, welchen Stil du dir für dein Spiel wünschst. Was die Anzahl der Stile angeht, mag ich normalerweise Fonds mit vielen Stilen, weil ich weiß, dass sie im Spiel gut aussehen. Wir können zum Beispiel Roboto oder Open Sense verwenden. Oder Sie können zum Beispiel auch etwas wie Rubic verwenden. Ich glaube, ich werde Rubic wieder benutzen. Wähle, was du willst, es spielt keine Rolle. Ich wähle Rubic und klicke dann auf Familie herunterladen Es wird es für dich herunterladen. Ich kann darauf klicken und es öffnen. Und hier kannst du alle statischen Fonds sehen, auf die statischen Fonds klickst, und hier sind alle Fonds, okay? Was ich tun werde, ist , all diese hier auf meinem Desktop zu minimieren . Ich werde sie zuerst hier ablegen, weil dies ein Ordner ist und Sie ihn zuerst extrahieren müssen. Denn wenn du versuchst, Dinge aus einem SIP-Ordner zu importieren, wird es dich nicht zulassen, es wird dir hier diesen Fehler geben. Auch hier werde ich das minimieren. Normalerweise braucht man nicht wirklich sehr geringe Mittel wie dieses. Rubic light, weil es im Spiel wirklich schwer zu erkennen ist, nehme ich normalerweise nur die sehr mutigen. Rubrik, fett, extra fett. Lassen Sie uns auch das halbfett wählen, es gibt ein normales Medium Ich nehme die mittlere und klicke sie einfach an und ziehe sie auf deinen Desktop , um sie zu extrahieren. Jetzt werde ich das schließen. Jetzt, wo wir diese Mittel haben, können wir zu Unreal Engine zurückkehren und mich einfach hier im UI-Ordner einen neuen Ordner erstellen lassen einfach hier im UI-Ordner einen neuen Ordner erstellen Lassen Sie mich mit der rechten Maustaste klicken und einen neuen Ordner namens funds Go in out of here Und ich werde diese in meinen Fondsordner ziehen. Und ich werde Sie fragen, möchten Sie mit diesen importierten Geldern ein neues Fondsvermögen erstellen ? Ich klicke und bewerbe mich bei allen D. Ja, ich möchte, dass du das tust. Es wird einen Fonds für dich einrichten. Mach weiter und speichere alles. Und jetzt können Sie diesen Fonds tatsächlich verwenden, wenn Sie eine Benutzeroberfläche aufrufen, die wir in Zukunft erstellen werden. Sie können den Fonds in einen dieser Fonds ändern , sodass Sie eine sehr, sehr einfache Möglichkeit sehen , dies hinzuzufügen. Okay? Nun, da wir der Engine Geld hinzugefügt haben, lassen Sie uns weitermachen und ich werde Ihnen Widgit-Blueprints vorstellen 65. 6.05 Einführung in die Widget-Blueprints: Lassen Sie uns nun weitermachen und einen Widget-Blueprint erstellen. Die Widget-Blueprints sind im Grunde die Benutzeroberfläche hier in Unreal Engine Wenn Sie also mit der rechten Maustaste klicken, gehen Sie zur Benutzeroberfläche und erstellen Sie einen Widget-Blueprint Aber dann erstelle es und wähle es aus. Hier, hier oben, das Benutzer-Widget. Und nennen wir es einfach WB. Und ich nenne es Teamauswahl, weil wir die Teamauswahl erstellen, bei der Sie wählen können, ob Sie der Terrorist oder der Anti-Terrorist sein oder der Lassen Sie uns dieses Widget, Blueprint, öffnen. Innerhalb dieses Widgets. Blaupause Es sieht fast aus wie der Blueprint-Viewer, mit dem wir gearbeitet haben Du kannst schreiben, hier hineinklicken und nach links schwenken Sie können alle Elemente in der Palette sehen , die Sie hinzufügen können. Zum Beispiel können wir Bilder, Schaltflächen, Rahmen, Schieberegler, Text usw. hinzufügen Schaltflächen, Rahmen, Schieberegler, Text usw. Wir werden viel mit all dem arbeiten. Es gibt auch eine Hierarchie. Wenn Sie beispielsweise auf diese Schaltfläche klicken und sie in diese Hierarchie ziehen, können Sie hier sehen, dass wir diese Schaltfläche hinzugefügt haben. Es sieht momentan sehr komisch aus, aber wir haben einen Button zu unserer Steam-Auswahl hinzugefügt , Widgit Blueprint Jetzt können Sie wieder kompilieren, um sicherzustellen, dass Sie keine Fehler haben, genau wie in Und du kannst das Spiel beim Testen spielen und dein Spiel sehen. Wir haben diese Benutzeroberfläche jedoch nicht wirklich im Level angezeigt, sodass du im Spiel nichts sehen kannst, okay. Und auf der rechten Seite hast du ein Detailfenster. Wenn Sie zum Beispiel auf die Schaltfläche klicken, können Sie sehen, dass Sie Dinge an dieser Schaltfläche ändern können. Sie können den Stil ändern, Sie können die Farbe ändern und Sie können auch andere Einstellungen ändern. Wir werden jetzt damit arbeiten. Der Wiga-Entwurf ist in zwei Abschnitte unterteilt. Sie haben gerade den Designer, Sie entwerfen die Benutzeroberfläche Und dann haben Sie das Diagramm, in dem Sie die Schaltflächen codieren und so weiter. Hier ist der gesamte Code, der Blueprint oder die Benutzeroberfläche. Hier in der Grafik können Sie zum Beispiel codieren, was soll passieren, wenn Sie auf diese Schaltfläche klicken was soll passieren, wenn Sie auf diese Schaltfläche Dies geschieht hier in dem Code, den Sie entwerfen, hier codieren Sie die Funktionalität der Benutzeroberfläche. Okay, lass uns weitermachen und das löschen. Und der Grund, warum es so seltsam aussieht, ist, dass Sie zuerst etwas hinzufügen müssen, das als Leinwand bezeichnet wird. Wenn Sie nach Canvas suchen, können Sie zuerst darauf klicken und es in die Hierarchie ziehen. Und jetzt können Sie sehen, dass Sie eine Leinwand haben. Wenn Sie jetzt eine Leinwand haben, können Sie ihr Elemente hinzufügen. Normalerweise klicke ich nicht auf diese Listen, aber wenn du noch ganz neu hier bist, kannst du sie alle anklicken. Versuche hier zu lesen, was du tatsächlich tun kannst. Das ist eigentlich richtig gut. Wenn du jedoch neu hier bist, suche ich normalerweise nur nach Elementen. Sie werden sich sehr daran gewöhnen, weil wir tatsächlich viel damit arbeiten werden. Dieselben Elemente, die wir immer wieder verwenden, Sie werden sich sehr gut damit vertraut machen. Sie können zum Beispiel nach einer Schaltfläche suchen sie anklicken und in die Arbeitsfläche ziehen. Und Sie können sehen, dass es auch der Hierarchie hinzugefügt wird, wenn Sie es zur Leinwand hinzufügen . Was auch immer Sie in dieser Hierarchie sehen, es ist auch in Ihrem Designer. Hier auf der Leinwand können Sie zum Beispiel auf diese Schaltfläche klicken und ihre Größe ändern Oder hier im Detailbereich können Sie die Größe auch hier in der Größe X und in der Größe Y Sie können beispielsweise nach einem Bild suchen und ein Bild auch hierher ziehen . Sie können die Größe ändern Klicken Sie auf das Bild, klicken Sie auf den Pinsel und Sie können dieses Bild ändern Sie können es zum Beispiel ändern in, lassen Sie uns tatsächlich einige Symbole importieren. Wenn ich nach ICO suche und eines der Symbole auswähle, können Sie hier sehen, dass wir das Symbol importiert haben und Sie damit herumspielen können. Sie können auch auf „Größe zum Inhalt“ klicken. Dadurch wird es tatsächlich auf die Größe angepasst, die Sie hier in der Bildgröße haben. Sie können dies auch erhöhen und verringern. Wenn Sie auf diese kleinen Pfeile klicken, werden sie normalerweise auf die Auflösung voreingestellt , die Sie importiert haben Aus irgendeinem Grund funktioniert es momentan nicht für mich. Ich weiß nicht, ob es ein Fehler in echten Engine ist oder was auch immer, aber es funktioniert normalerweise, aber es sollte Größe tatsächlich auf die Größe ändern, als die Sie importiert haben Und wie Sie sehen können, beträgt die Größe dieses Symbols 256 mal 256 Also sollte es 256 sein wie dieses hier. Ich drücke hier, aber aus irgendeinem Grund tut es das nicht. Aber das ist tatsächlich die Originalgröße dieses Bildes hier, und wenn du auf Size to Consent klickst, wird es tatsächlich auf diese Größe hier angepasst Okay, du kannst also einfach herumspielen. Wir haben den Button, wir haben ein Bild, und Sie können auch einfach auf all diese klicken. Eigentlich ist es egal, ob du einfach alles von hier rausschlägst. Klicken Sie einfach darauf und versuchen Sie zu sehen, ob Sie ihm einen Wert hinzufügen. Stellen Sie sicher, dass Sie diesen Schieberegler tatsächlich bewegen können. Und Sie können zum Beispiel auf Editor-Eingabe klicken . Zum Beispiel Bearbeitbarer Text. Sie können ihn hier platzieren und sehen, was passiert. Du kannst etwas in diesen Text schreiben und einfach hier herumspielen. Es macht wirklich Spaß, einfach einen Blick darauf zu werfen, was hier drin ist. Und ich werde auf meinen Löschen-Button klicken und vorerst alles löschen. Und ich werde auch das Canvas-Panel löschen. Mach weiter und kompiliere, speichere alles. Und lassen Sie uns mit der nächsten Lektion fortfahren. 66. 6.06 Anzeigen der Teamauswahl-Benutzeroberfläche: Lassen Sie uns nun die Benutzeroberfläche anzeigen bevor wir sie tatsächlich so gestalten, dass sie die Benutzeroberfläche anzeigt Wenn wir mit der Benutzeroberfläche arbeiten, tun wir das normalerweise innerhalb des Player-Controllers. Hier steuern wir die Benutzeroberfläche innerhalb des Player-Controllers. Gehen wir hier zum Event-Graph. Was wir normalerweise im Einzelspielermodus machen, wir nehmen das und sagen, Widgets erstellen, einfach so. Erstelle ein Widget und dann wählst du das Widget aus, zum Beispiel WB-Teamauswahl Und dann fügen wir das normalerweise einfach so zum Viewport hinzu Und dann können wir auf Play klicken und freuen uns, dass wir die Benutzeroberfläche sehen können Und wenn ich auf Escape klicke, siehst du, dass ich eine Ära erhalte. Und das liegt daran, dass wir jetzt im Mehrspielermodus sind , um die Benutzeroberfläche anzuzeigen und wir können tatsächlich etwas sehen. Gehen wir zuerst wieder in die Benutzeroberfläche. Lassen Sie mich einfach wieder eine Leinwand hinzufügen, lassen Sie mich ein zufälliges Bild hinzufügen, weil ich tatsächlich sehen möchte, ob es zum Viewport hinzugefügt wurde oder nicht Also werde ich einfach dieses seltsame Bild hier zu meiner Benutzeroberfläche hinzufügen. Und ich klicke auf Play und du kannst sehen, dass es tatsächlich auf meinem Bildschirm angezeigt wird, sowohl auf dem Client als auch auf dem Server. Ich zeige gerade die Benutzeroberfläche an. Wenn ich jedoch hier klicke, wenn ich auf Escape klicke, kannst du sehen, dass Widgets nur lokale Player-Controller zugewiesen werden können. Denken Sie daran, wenn wir mit der Benutzeroberfläche arbeiten, müssen wir sie nicht wirklich über den Server laufen lassen. Das liegt daran, dass jeder einzelne Spieler seine eigene Benutzeroberfläche hat. Es ist nicht wie bei einer Waffe, die du im Spiel hast, wo du sie über den Server laufen lassen musst und dann muss der Server diese Informationen an die Clients replizieren und ihnen mitteilen, dass du hier eine Waffe auf dem Boden hast Bei der Benutzeroberfläche ist es anders, jeder einzelne Spieler hat seine eigene Benutzeroberfläche Es ist nicht so, dass es über den Server läuft und der Server dann seine Benutzeroberfläche aktualisiert. Es ist nicht so, wie es passiert. Es passiert nur von jedem einzelnen Spieler seiner eigenen Benutzeroberfläche. Es läuft nicht über den Server. Wenn Sie mit der Benutzeroberfläche arbeiten, müssen Sie sie über den Client ausführen. Denken Sie daran, dass Sie jedes Mal, wenn Sie eine Benutzeroberfläche haben , diese über den Client ausführen müssen. Lassen Sie uns das alles vorerst löschen. Was ich tun werde, ist, mit der rechten Maustaste zu klicken und hier im Player-Controller ein neues benutzerdefiniertes Ereignis zu erstellen . Nennen wir dieses Widget „ Show Hide“. Im Grunde wird dieses Widget oder dieses Ereignis das Widget entweder ein - oder ausblenden, je nachdem, was Sie ihm sagen. Jetzt müssen wir ihm zwei Parameter geben. Welches Widget wird es ein- oder ausblenden? Und wird es ein- oder ausblenden? Lassen Sie mich diesen Stier nur dem Namen nach sagen, um zu zeigen, dass das entweder wahr oder falsch sein wird. Wenn es falsch ist, wird es die Benutzeroberfläche verbergen. Wenn es wahr ist, wird die Benutzeroberfläche angezeigt. Wir können diesen Bullen hier gebrauchen. Für das zweite müssen wir ihm jedoch sagen, über welches Widget wir sprechen. Wir müssen eine Aufzählung vornehmen. Lassen Sie uns das minimieren. Gehen Sie zum Ordner Blueprints to Enumerations Denken Sie daran, dass wir diesen Status schon früher Bewegungsstaaten genannt Jetzt klicken wir mit der rechten Maustaste und erstellen einen neuen. Gehe zu Blueprint und Aufzählung. Nennen wir dieses eine Spiel Widgets. Wir können eine Liste aller Spiel-Widgets erstellen , die wir haben. Lassen Sie mich für diesen einen neuen Enumerator hinzufügen, einen Listeneintrag. Lassen Sie mich das Teamauswahl nennen, denn im Moment wollen wir das Teamauswahl-Widget erstellen das Teamauswahl-Widget Sie können es auch später machen. Zum Beispiel die Mau I, die eigentlich die wichtigste ist deine Gesundheit geht und so weiter. Du kannst auch ein neues Menü namens Escape-Menü erstellen , wenn du eins hast und so weiter, aber ich werde diese vorerst löschen. Ich habe nur die Teamauswahl. Lass uns jetzt im Rahmen unseres Spielerkontrollgesetzes sparen. Lass uns noch einmal auf unser Event klicken. Ändern wir diesen Typ in E. Wir nannten ihn Spiel-Widgets. Und es ist diese, diese Aufzählung. Mach weiter und nenne es Widgets. Und hier haben wir es. Also lass uns jetzt kompilieren. Wie Sie sehen können, wenn ich schreibe, anfange, spiele und das Begin Play-Event mache. Wenn ich von hier aus ziehe und dieses Ereignis aufrufe , zeige das Widget „Ausblenden“ an. Widget einblenden, du kannst jetzt sehen, dass ich auswählen kann, welches Widget oder welches Widget ich meine. Und dann kann ich auswählen, ob ich es ausblenden möchte, was bedeutet, dass die Anzeige falsch ist. Oder wenn ich die Benutzeroberfläche anzeigen möchte. Und wir können den Code hier ausführen. Okay, also sehr, sehr cool. Lassen Sie uns jetzt mit dem Code fortfahren. Ich habe Ihnen gesagt, dass dies auf dem Client ausgeführt werden muss , sodass die gesamte Benutzeroberfläche, die Sie erstellen, über den Client ausgeführt werden muss. Klicken wir also mit der rechten Maustaste und erstellen Sie ein neues benutzerdefiniertes Ereignis. Nennen wir es CL für Client, Widgets einblenden und ausblenden. Und lassen Sie uns das über den Client und zuverlässig laufen lassen, genau wie den hier oben, wir brauchen die beiden Eingaben. Lassen Sie uns die beiden Eingaben erstellen. Das erste heißt Widgets und dieses wurde bereits ausgewählt. Der zweite heißt Show the Bullion. Ein- oder Ausblenden Und lassen Sie uns das Goldbarren als Typ auswählen. Wir müssen es hier durchgehen. Wählen Sie hier auch die CL-, Ein-/Ausblenden-Widgets . Also verbinden wir das Client-Event hier oben. Und mach weiter und verbinde es miteinander. Okay, was gerade passiert, ist unter „Spiel beginnen“. Wenn du anfängst, das Spiel zu spielen, werde ich sofort die Benutzeroberfläche für die Teamauswahl anzeigen. Also werde ich das ankreuzen und Benutzeroberfläche für die Teamauswahl anzeigen. Wenn ich das hier in der Startphase mache, wird der Code hier durchgespielt . Also wird es diese Information in den Client schreiben. Und jetzt kommen diese Informationen hier raus und wir können sie verwenden, wie wir wollen. Jetzt werde ich diesen Bullen reinziehen und einen Zweig schreiben, weil ich wissen will, werde ich die Benutzeroberfläche zeigen oder werde ich die Benutzeroberfläche verstecken? Ist das falsch oder ist das wahr? Das frage ich gerade. Wenn ja, lassen Sie uns eine neue Funktion erstellen. Lassen Sie uns diese Funktion mit dem Namen Widgets anzeigen machen. Lassen Sie uns ein weiteres namens Hyde-Widgets erstellen. Klicken Sie erneut darauf und fügen Sie eine neue Eingabe des Widgets vom Typ A Die Aufzählung, die wir zuvor erstellt haben und die wir Widget nennen, kompilieren Sie erneut, weil wir wissen müssen welches Widgit wir im Hyde-Widget sprechen Machen Sie eine neue Eingabe und nennen Sie sie Widget. Stellen Sie erneut sicher, dass es sich bei diesem Typ auch um ein Spiel-Widget handelt. Okay, gehen wir zurück zur Grafik. Lassen Sie uns die Funktionen, die wir gerade erstellt haben, ziehen . Sie sind immer noch leer. In ihnen ist nichts drin. Aber vorerst fügen wir sie einfach hier hinzu. Okay, Widget anzeigen und ausblenden. Wenn es wahr ist, müssen wir das Widget anzeigen. Dieses hier, ich kann es verbinden. Wenn es falsch ist, müssen wir das Widget ausblenden und können es hier auswählen. Nun, über welches Widget sprechen wir? Diese Informationen haben wir hier, weil wir sie hier eingerichtet haben, wir können sie mit den Eingaben verbinden , die wir gerade für die hier gemacht Jetzt werden diese Informationen in die Funktion übernommen. Jetzt haben wir das hier und wir können machen, was wir wollen. Was ist unser Ziel hier? Um ein Widget anzuzeigen, müssen wir den Knoten namens create widgit verwenden . Wir müssen diesen hier verwenden Dann müssen wir auswählen, über welches Widget wir sprechen. Dieses hier zum Beispiel, wie Sie anhand der Aufzählung sehen können, könnten wir viele Elemente haben Wir müssen wissen, welchen Wert diese Aufzählung hat. Wir machen das, indem wir einfach von hier ziehen und nach Switch suchen Und wir haben diesen namens Switch on Enumeration. Fahren Sie fort und wählen Sie es aus Und jetzt erhalten Sie eine Ausführungs-PIN, je nachdem, welche Listenelemente Sie haben. Zum Beispiel, wenn ich zu meiner Aufzählung zurückkehre und sagen wir, ich habe ein Menü-UI und ich habe ein Escape-Menü, einfach so zum Mach weiter und speichere es. Und lass uns zurück zum Player-Controller gehen. Jetzt können Sie sehen, dass ich je nach meinen Listenelementen Hinrichtungs-Pins erhalte , was auch immer Sie hier einrichten. Wenn ich also zurückgehe, wird das, was auch immer Sie hier auswählen , dieses Ereignis durchlaufen es in den Client einfügen und es wird den Code fortsetzen, ihn in die Funktion einfügen. Jetzt weiß es, dass du über die Teamauswahl sprichst , weil du sie hier ausgewählt hast. Also wird es den Code innerhalb der Spielerauswahl ausführen . Es wird den Code, der hier geschrieben ist, nicht ausführen. Und es wird den Code, der hier geschrieben ist, nicht ausführen. Ich werde nur den Code ausführen, der hier geschrieben wurde , weil Sie den Wert auf Teamauswahl gesetzt haben. Es wird es jetzt nur über diesen Ausführungs-Pin laufen lassen . So machen wir das. Lassen Sie uns die vorerst einfach löschen. Wir brauchen sie nicht wirklich, wir brauchen nur die Teamauswahl. Mach weiter und speichere und kompiliere das auch. Okay, um ein Widget zu erstellen oder anzuzeigen, erstellen Sie das Widget. Wählen Sie aus, welches Sie anzeigen möchten. Dann klicken wir mit der rechten Maustaste darauf und machen daraus eine Variable. Da es mit der Variablen wirklich nützlich ist, können wir sie später verwenden, um Ereignisse auszuführen. Diese werde ich WB-Auswahl nennen . Nachdem Sie die Benutzeroberfläche erstellt haben, jetzt, wenn Sie auf Play klicken, wird jetzt, wenn Sie auf Play klicken, nicht wirklich etwas angezeigt Dies liegt daran, dass es nicht ausreicht, nur die Benutzeroberfläche zu erstellen. Sie müssen auch von hier aus ziehen und „Zum Viewport hinzufügen“ sagen. Jetzt wird es zum Viewport hinzugefügt. Wenn Sie jetzt auf Abspielen klicken, können Sie sehen, wie es zum Viewport hinzugefügt wurde . Wenn Sie auf die Escape-Schaltfläche klicken, treten keine Fehler auf Okay, das sieht gut aus. Um sicherzugehen, dass Sie das nicht ohne Grund immer wieder zu Ihrem Viewport hinzufügen, lassen Sie mich hier einfach die Verbindung trennen und es wegbewegen Lassen Sie mich diese Variable nehmen, sie hierher ziehen, rechten Maustaste klicken und sie in ein validiertes GET umwandeln , weitermachen und sie verbinden Wenn diese Variable nun nicht gültig ist, bedeutet, dass wir diese Variable noch nicht erstellt haben das Programm oder die Unreal Engine , weiß das Programm oder die Unreal Engine nicht wirklich, wovon Sie mit dieser Variablen sprechen, weil Sie keine Informationen darin eingegeben haben. Das bedeutet, dass wir diesen Code noch nicht ausgeführt haben. Wenn es nicht gültig ist, erstellen Sie die Benutzeroberfläche. Wenn es jedoch gültig ist, wenn diese Variable das Widget bereits enthält. Also haben wir diesen Code schon einmal ausgeführt. Wir wollen es nicht wirklich noch einmal ausführen, wir wollen es einfach weitermachen und es dem Viewport hinzufügen , einfach so, okay? Dadurch wird vermieden, dass wir die Benutzeroberfläche immer wieder erstellen. Wenn es nicht gültig ist, erstellen Sie die Benutzeroberfläche und fügen Sie sie dann dem Viewport hinzu, wenn es gültig ist. Fahren Sie jedoch fort und fügen Sie es einfach zum Lassen Sie uns weitermachen und alles kompilieren und speichern. Nun zum Widget zum Ausblenden hier, das Gleiche. Lassen Sie uns von hier aus zuschlagen und sagen, Enumeration einschalten. Nehmen wir diese Variable. Nachdem wir sie erstellt haben, klicken wir mit der rechten Maustaste auf „In ein validiertes GET umwandeln“ . Mach weiter und verbinde es. Nun, ob es gültig ist, was bedeutet, dass wir es tatsächlich verstecken wollen. Jetzt schlagen wir von hier aus zu und sagen „Aus Elternteil entfernen“. So entfernen Sie die Benutzeroberfläche aus Ihrem Viewport. Aus dem übergeordneten Element entfernen, falls es gültig ist , entfernen Sie es, da wir es ausblenden möchten Wenn Sie jetzt kompilieren und auf Play klicken, können Sie das Viewport sehen Im Viewport haben Sie die Benutzeroberfläche hinzugefügt. Wenn du im Player Control Event Graph weitermachst, wenn du einfach die Show entfernst, weil es jetzt tatsächlich so ist, wenn es falsch ist, wird es hier durchgehen und es wird hier durchgehen Und es wird falsch angezeigt, weil Sie es auf Falsch gesetzt haben. Das heißt, es wird weitermachen und die Benutzeroberfläche, das Widget, ausblenden. Und es weiß, von welchem Widget Sie sprechen, weil es diese Informationen hier einspeist. Und es wird die Benutzeroberfläche für die Teamauswahl ausblenden. Wie du hier sehen kannst, wenn ich spiele, sehe ich die Benutzeroberfläche für die Teamauswahl nicht. Aber im Moment wollen wir eigentlich die Benutzeroberfläche für die Teamauswahl im Voraus anzeigen die Benutzeroberfläche für die Teamauswahl im Voraus Fahren Sie fort und klicken Sie auf Anzeigen. Jetzt sollte es perfekt funktionieren. Wenn Sie das übersichtlicher gestalten möchten , können Sie jederzeit klicken und Ausführungs-Pins erstellen, oder Sie können alle auswählen. Klicken Sie auf Ihrer Tastatur auf C und nennen Sie es zum Beispiel Show Hide UI und so weiter. Also mach einfach weiter und bleib organisiert. Aber lassen Sie uns vorerst weitermachen und kompilieren, alles speichern und weitermachen. 67. 6.07 Dynamische UI-Größe für alle Bildschirmgrößen: Bevor Sie mit der Gestaltung der Benutzeroberfläche beginnen, ist es wirklich wichtig zu wissen die Benutzeroberfläche auf anderen Bildschirmen aussieht, nicht nur auf Ihrem Bildschirm, sondern auch auf meinem Bildschirm Wenn Sie Ihr Spiel entwerfen, müssen Sie wissen, wie es auf meinem Bildschirm aussieht , einem Monitor mit einer Auflösung von vier K. Und auch auf einem Laptop-Bildschirm und so weiter. Also musst du die Größe richtig ändern. Lassen Sie uns das eigentlich lernen, bevor wir tatsächlich entwerfen, denn es wird später sein wenn Sie es falsch entwerfen Gehen wir zum Beispiel zum Widget-Blueprint. Lassen Sie uns weitermachen und etwas Text hinzufügen. Dies wird der einfachste Weg sein, es zu sehen. Füge einen Textbildschirm hinzu und lass uns sagen, ich ändere die Größe von so etwas, was auch immer. Nun, da Sie das in der Benutzeroberfläche haben , können wir weitermachen und kompilieren. Und mach weiter und klicke auf Plate. So sieht es auf meinem Bildschirm aus. Und normalerweise nehme ich einfach meinen Widget-Blueprint auf und fange hier mit meinem Spiel Und normalerweise versuche ich es einfach zu vergleichen. Mach weiter und öffne dein Spiel hier. Ich werde es etwas minimieren und versuchen zu sehen, wie es im Spiel aussieht. So sieht es wirklich aus. Wenn ich es mit hier vergleiche, sieht es hier etwas größer aus, es sieht tatsächlich so aus. Wenn ich hinein- und herauszoome, kann man den Zoom hier tatsächlich sehen. Im Moment habe ich plus drei vergrößert, und jetzt sieht es richtig aus Bei Zoom plus drei sieht es richtig aus. Nun, es könnte ein bisschen komisch aussehen, das zu beheben. Jetzt geh in der Bildschirmgröße hier nach oben. Normalerweise möchten Sie in der Benutzeroberfläche auf den kleinstmöglichen Bildschirm klicken. Wenn Sie es für Handyspiele entwerfen möchten, müssen Sie auf die Bildschirmgröße klicken, zu Telefonen wechseln und dann das Telefon auswählen. Sie möchten es für den kleinsten Bildschirm entwerfen. Im Moment möchte ich nur ein Computerspiel machen. Ich werde hier oben klicken. Normalerweise entwerfe ich es für Laptops. Diese generischen 14, 15-Zoll-Notebooks. Das werde ich jetzt nicht tun. Ich habe einen Vier-K-Monitor. Ich kann das auswählen und es einfach hier entwerfen. sieht es jedoch vielleicht so aus Auf Ihrem Bildschirm sieht es jedoch vielleicht so aus, wenn Sie einen One-K-Monitor haben und so weiter. Sehr wichtig, es richtig zu gestalten. Klicken wir zunächst auf die Bildschirmgröße. Und ich werde die generische Laptop-Größe auswählen. Im Moment, wenn ich heranzoome und es eins zu eins so ist wie hier bei der Laptop-Größe, schaue ich es mir gerade an und sehe, wie es aussieht. Wenn ich dieses Spiel jetzt auf meinem Laptop öffne, entspricht das der Größe des Textes Klicken wir zum Beispiel auf einem Laptop auf diesen Fonds. Klicke auf den Fonds und ich stelle die Größe ein, zum Beispiel 30. So sieht es jetzt auf dem Laptop aus. Aber wenn ich spiele, sieht es jetzt so aus. Auf meinem Vier-K-Monitor können Sie sehen, dass es einen Unterschied gibt. Das ist der Laptop. Das bin ich. Ich sehe es auf meinem viel größer als auf dem Laptop. Wenn Ihnen das nicht gefällt, wenn die Benutzeroberfläche auf den größeren Monitoren manchmal zu groß wird, können Sie hier unten auf diese Schaltfläche klicken. Hier kannst du die Skalierung der Benutzeroberfläche sehen. Die generischen Laptops sind hier unten. Wie Sie sehen können, ist dies die Auflösung. Ich entwerfe es für diese Laptops. Im Moment habe ich einen Vier-K-Monitor, und er ist tatsächlich hier drüben. Sie können sehen, dass ich einen Vier-K-Monitor um 3,8 hochskaliere Er ist 3,8 größer als das, was ein Laptop ist. Wenn Sie es nicht so stark vergrößern möchten, können Sie für diese Auflösung wählen. Anstatt auf acht zu skalieren, werde ich sie zum Beispiel auf vier skalieren. Jetzt können Sie sehen, dass es im Vergleich zu früher nicht mehr so stark skaliert wird . Wenn ich jetzt auf Play klicke, ist es tatsächlich kleiner als zuvor. Wenn ich zurückgehe und tatsächlich hier klicke, lass mich es einfach auf etwa 18 erhöhen, damit du tatsächlich etwas Extremes siehst. Wenn ich auf Play klicke, kannst du sehen, dass es jetzt sehr groß ist. Normalerweise gefällt mir das, wenn ich mit der Größe für den Laptop zufrieden bin , versuche ich ihn zu skalieren. Ich bin also auch mit meinem Vier-K-Monitor zufrieden. Normalerweise liegt er in der Skalierung bei etwa 2,5. Ich gehe nicht gerne zu oft hin. Sie können auf diese Schaltflächen klicken. Es, es ist so auf deinem Bildschirm. Ich werde nur ein bisschen rauszoomen. Vielleicht klicken Sie einfach auf, ich werde die Ansicht etwas verkleinern, damit es besser aussieht. Lass mich einfach auf Jetzt abspielen klicken, ich finde das sieht gut aus. Wenn ich die Größe vergrößern muss, ändere ich die Größe Aber ich finde, das sieht gut aus. Sie können es jetzt vergleichen, und es sieht fast genauso aus. Ich werde versuchen, es im Maßstab 2,5 zu entwerfen, aber auch hier, machen Sie einfach weiter und spielen Sie damit herum. Skalieren Sie das einfach nach oben und unten, je nachdem, wie es auf Ihrem Monitor im Vergleich zum Laptop-Monitor aussieht . Okay, wenn Sie zufrieden sind, lassen Sie uns alles schließen und alles speichern. Fahren wir mit der nächsten Lektion fort. 68. 6.08 Gestaltung der Benutzeroberfläche für die Teamauswahl: wir nun die Benutzeroberfläche auf dem Bildschirm angezeigt haben und wir die richtige Größe haben, wir mit der Gestaltung der Benutzeroberfläche fortfahren Lasst uns das Spiel beenden. Gehen wir zum UI-Ordner. Und hier, innerhalb des Teamauswahl-Widgets, Blueprint. Lassen Sie uns das jetzt hier löschen. Das einzige, was wir gerade haben, ist das Canvas-Panel. Auch hier gilt: Wenn Sie es noch nicht hinzugefügt haben, fahren Sie in der Palette fort und suchen Sie nach Leinwand. Und fahren Sie fort und fügen Sie es zu Ihrem Widget, dem Blueprint, hinzu. Die Leinwand ist sehr wichtig. Sie müssen das hinzufügen, bevor Sie etwas tun. Das, was wir entwerfen wollen, ist die Teamauswahl. Das ist aus meinem anderen Projekt. Ich möchte Ihnen die Benutzeroberfläche zeigen , damit Sie wissen, was Sie entwerfen. Das wollen wir entwerfen. Wann immer Sie mit der Gestaltung der Benutzeroberfläche beginnen, müssen Sie sich vorstellen, was Sie entwerfen möchten , da es für Sie viel einfacher sein wird. Das werden wir entwerfen. Lass uns hier rüber gehen. Als Erstes wollen wir die Benutzeroberfläche aufschlüsseln. Wenn ich das noch einmal für dich übernehme, musst du es aufschlüsseln. Wie Sie hier sehen können, haben wir einen Hintergrund und darüber haben wir etwas Text. Wenn Sie zwei Dinge übereinander haben, müssen Sie dieses als Overlay bezeichnete Objekt verwenden Wenn beim Overlay Elemente übereinander liegen, wenn Sie etwas darüber haben, stellen Sie sich ein Overlay vor, das es hierher zieht. Lassen Sie uns nach einem Bild suchen, nach dem Hintergrund, und platzieren Sie es auch hier, und platzieren Sie es auch hier wenn Sie etwas darüber haben, stellen Sie sich ein Overlay vor, das es hierher zieht. Lassen Sie uns nach einem Bild suchen, nach dem Hintergrund, und platzieren Sie es auch hier, innerhalb des Overlays. Ziehen wir das einfach in die Mitte der Leinwand, damit wir sehen können, was wir tun. Einfach die Größe dieses Overlays ändern, um das Bild auszufüllen Sie können sehen, dass es sehr klein ist. Um dieses Bild auf dem gesamten Bildschirm auszufüllen, müssen Sie hier in horizontaler und vertikaler Ausrichtung klicken, um es horizontal und vertikal auszufüllen, es füllt das gesamte Overlay Es spielt keine Rolle, wie groß Ihr Overlay ist, Ihr Bild wird das Ganze ausfüllen Wir wollen es mit dem Hintergrund füllen. Jetzt der Hintergrund, du kannst hier für das Bild klicken, und im Pinsel hier, auf das Bild klicken und du kannst suchen, ich glaube, ich habe es Panel genannt. Und dieses eine Panel ist blau. Auch hier liegt es an Ihnen, was Sie verwenden möchten. Sie können eine andere Farbe verwenden, aber ich nehme nur die blaue. Und hier ist sie. Okay. Neral-Engine, damit die Dinge nicht so unscharf werden und sich richtig dehnen, musst du das ändern, statt eines Bildes, du musst es in eine Box verwandeln Bevor ich das mache, möchte ich Ihnen zeigen , wie es funktioniert Wenn ich zu den UI-Bildern gehe und nach dem Panel suche, können Sie sehen, ob ich die Maus darüber halte Es ist eigentlich ein sehr kleines Bild. Es ist 68 mal 68 Pixel groß. Wenn Sie es öffnen, ist es tatsächlich so groß, wie groß es ist, als ich es in Photoshop entworfen habe. Diesen kannst du sehr groß machen und trotzdem in Unreal Engine gut aussehen Wenn Sie nur das Bild hinzufügen, malen Sie die Zeichnungen in ein Feld und ändern Sie dann den Rand auf 0,5, als ob Sie auf dieses Bild klicken Hier entfernst du diese gestrichelten Linien. Ich würde das gerne tun, um meine Benutzeroberfläche ohne Ablenkungen zu sehen meine Benutzeroberfläche ohne Ablenkungen Und so sieht es aus, wenn Sie es sehen können Auch wenn es ein kleines Bild ist können Sie jetzt einfach auf das Overlay klicken es dehnen und etwas anderes daraus machen , ohne dass es verschwommen ist Wirklich cooles Feature in Unreal Engine. Sie müssen nicht jede einzelne Taste entwerfen, Sie können einfach die Basis entwerfen und dann können Sie die Tasten selbst hier entwerfen die Tasten selbst hier Das ist unser Hintergrund für die Teamauswahl. Was nun die Teamauswahl angeht, haben wir auch, wenn ich das wieder hier reinziehe , etwas Text darunter. Wir haben diese Knöpfe. Wir haben so etwas wie eine vertikale Box. Wenn du hier rübergehst und nach vertikal suchst, siehst du dieses eine vertikale Feld. Ich werde es dem Overlay hinzufügen. Jetzt haben wir im vertikalen Feld oben etwas Text als Titel. Wie Sie hier sehen können, haben wir auch diese Schaltflächen. Bevor ich diese Schaltflächen hinzufüge, müssen Sie das auch aufschlüsseln. Sie haben tatsächlich eine horizontale Box. Diese sind horizontal zueinander ausgerichtet. Wenn ich nach einem horizontalen Feld suche, diesem horizontalen Feld, musst du in das vertikale Feld legen. Wir haben den Titel, wir haben den Titel hier. Und dann haben wir das horizontale Feld , in dem wir die beiden Schaltflächen hinzufügen. Okay, der hier drüben. Der Titel muss eigentlich in die Mitte. Ich werde auf den Text klicken und ihn hier horizontal zur Mitte ausrichten. Und du kannst sehen, dass nichts passiert , wenn ich ihn in der Mitte ausrichte. Manchmal, wenn Sie das innerhalb einer Benutzeroberfläche tun, sich nicht verwirren, Sie müssen sich auch das übergeordnete Objekt ansehen. Es spielt keine Rolle, ob der Text so ausgerichtet ist oder ob das vertikale Feld auch nicht ausgerichtet ist. Sie können das vertikale Feld sehen , wenn Sie auf eines davon klicken. Hier kannst du sehen, dass das vertikale Feld eigentlich nur dieser Abschnitt ist. Das tut es nicht, wenn du diesen Text hier, hier und hier ausrichtest, hast du nur das Leerzeichen. Es füllt nicht das Ganze aus. auf das vertikale Feld klicke, muss ich es hier auf diesem Overlay ausfüllen indem ich auf die horizontale Ausrichtung und die vertikale Ausrichtung und die vertikale Ausrichtung Jetzt kannst du sehen, dass es so ist. Horizontal und vertikal füllen. Okay, wenn ich den Text jetzt ausrichte, sollte er funktionieren. Achte immer auf das Elternteil hier oben, wie es ausgerichtet ist. Denn wenn es so ausgerichtet ist, wird dieser Text niemals hierher kommen. Fahren Sie fort und richten Sie sie so horizontal aus. Um den Kanten mehr Platz zu geben, können wir nun auf das vertikale Feld klicken und es hier in der Polsterung nach unten oder nach links schieben Eigentlich kannst du hier auch eine Zahl schreiben, zum Beispiel 50 oder 102030 Sie können sehen, dass Sie es von den Kanten 50, 60 usw. aus verschieben können , 60 usw. Und wenn Sie es gezielt in bestimmte Richtungen verschieben möchten, z. B. nach links, setze ich auf 55 und nach oben auf 45. Nicht so sehr wie links und rechts. Die rechte Seite ist 55 und die Unterseite ist ebenfalls 45. So etwas in der Art. Denk dran, ich bin in Zoom plus zwei. Die tatsächliche Größe sieht so aus. Achten Sie einfach darauf , in welchem Zoom Sie sich befinden , da Sie möglicherweise zu stark vergrößert So sieht es momentan tatsächlich aus. Ich denke, der Abstand zu den Rändern ist momentan in Ordnung. Was Sie tun können, ist weitermachen und unser Design fortsetzen. Und dann können wir weitermachen und alles stilisieren. Lass uns auf das horizontale Feld klicken. Für das horizontale Feld haben wir nun diese beiden Schaltflächen. Jetzt überlagern wir wieder eine Schaltfläche. Darüber befindet sich ein Bild und wir haben auch etwas Text. Auch hier musst du ein Overlay verwenden, sonst kannst du keine Dinge übereinander legen In der horizontalen Box haben wir ein Overlay. In diesem Overlay haben wir eine Schaltfläche und dann haben wir ein Bild, das das Symbol der Schaltfläche ist Wir haben auch etwas Text. Wenn ich nach Text suche und ihn hier hinzufüge, haben wir die Schaltfläche, das Bild und etwas Text. auf dieses Overlay klicken , dieses horizontale Feld, müssen wir es wieder hier ausfüllen. Sie können also sehen, ich es zwar horizontal und vertikal ausrichte, es aber nicht vertikal ausgerichtet ist Und das liegt daran, dass Sie auf Füllen klicken müssen, und das Ganze wird gefüllt wir auf diese Schaltfläche klicken, können wir dieser Schaltfläche etwas hinzufügen. Klicken Sie auf die Schaltfläche, gehen Sie zum Stil, klicken Sie hier oben auf Normal und wählen Sie die Schaltfläche aus. Ich werde die rote Taste auswählen. Und normalerweise nenne ich Tasten BTN. Sie können versuchen, nach der Taste zu suchen, die Sie verwenden möchten. Auch hier ist es optional, es liegt an Ihnen. Was ich jedoch verwenden möchte, ist dieser namens Button Red, glaube ich, oder Button Square Red, wie diesen. Und ich werde es hier wählen. Was Sie tun können, ist, nochmal, färben zu lassen . Ich klicke auf den Farbton und setze ihn auf Weiß, weil ich keinen Grauton auf meiner Schaltfläche haben möchte Das ist tatsächlich die echte Farbe. Wenn du es hier auf weiß setzt, das abgerundete Feld, werde ich es in ein Kästchen ändern , ein normales Kästchen. Nochmals, der Rand, wie ich dir schon gesagt habe, setze ihn auf 0,5 und er wird normal aussehen. Lassen Sie uns nun sehen, ob wir noch andere Dinge ändern müssen und wir nicht Wenn Sie diese Einstellung auf den Hovert kopieren möchten, müssen Sie das alles nicht tun Halten Sie erneut die Umschalttaste gedrückt und klicken Sie mit der rechten Maustaste. Oder Sie können einfach mit der rechten Maustaste klicken und kopieren. Aber Sie können die Umschalttaste und die rechte Maustaste gedrückt halten, um es zu kopieren, und die Umschalttaste und die linke Maustaste, um es auch für diese beiden einzufügen. Denken Sie daran, auf den Hoverd zu klicken. Und denken Sie auch daran , den Hoverd-Modus gegen den Hort auszutauschen Und klicken Sie auf den gedrückten auf den, gedrückten auf diesen. Okay. Wir müssen vielleicht auch die Bildgröße anpassen, aber das machen wir später. Vorerst kann man an diesem Bild sehen, dass es sehr gestreckt ist. Also was ich tun werde, ich werde auf das Overlay klicken und ich werde auf Füllen klicken Es füllt also das Ganze aus. Dann lass es mich tatsächlich noch einmal kopieren. Wenn ich auf dieses Overlay klicke, klicke ich auf Control D, und dadurch wird die andere Schaltfläche kopiert So kann ich tatsächlich sehen, wie es aussieht , wenn ich zwei Knöpfe habe Jetzt habe ich diese beiden Überlagerungen, und lassen Sie uns einen Abstandshalter zwischen ihnen platzieren, nach einem Abstandhalter suchen und sie zwischen diesen beiden Überlagerungen hinzufügen Und dann fügen wir etwas Abstand zwischen diesen beiden Überlagerungen hinzu. Das ist die X-Achse und das ist die Y-Achse Und wir brauchen Platz auf der X-Achse. Lass mich so etwas wie 50 schreiben. Und jetzt können Sie sehen, dass etwas Platz ist. Nun zu diesem Text. Ich möchte, dass es hier unten auf dieser Schaltfläche steht. auf den Text klicke, werde ich ihn an der Schaltfläche hier und auch in der Mitte ausrichten . Und das Gleiche mit dieser einen unteren Ausrichtung und in der Mitte horizontal. Okay, jetzt zu den Knöpfen. Ich möchte nicht, dass sie so gestreckt werden. Wenn ich auf eine der Schaltflächen klicke, anstatt sie vertikal auszurichten, klicke ich hier unten. Das Gleiche hier. Klicken Sie unten. Richten Sie es vertikal aus, so. Anstatt es vertikal auszurichten, sollten wir es tatsächlich selbst kontrollieren Klicken Sie auf die Schaltfläche, Sie können auf die Bildgröße klicken. Hier ist das Y, das nach oben und unten zunimmt. Sie können das Y für die Schaltfläche erhöhen und wählen, wie groß es für diese und diese sein soll , etwa 160. Vorerst 160. Fügen wir die Symbole hinzu, bevor wir entscheiden können, welche Größe sie haben sollen. Ich mache das nochmal für das Bild, richte es in der Mitte Lass es uns tatsächlich für beide machen. Lass uns auf beide klicken. Klicken Sie auf ein altes Steuerelement, klicken Sie auf das nächste. Richten wir sie wieder in der Mitte und unten aus. Um sie wieder nach oben zu drücken, können wir die Polsterung verwenden, indem sie von unten nach oben drücken Sie können sie also zum Beispiel 40 drücken , so etwas, 50, 60. Sie können sehen, dass Sie sie um etwa 40 erhöhen können. Lassen Sie mich zuerst das Symbol ändern. Klicken Sie auf das Bild und lassen Sie uns das Symbol ändern. Wenn Sie für diesen nach ICO suchen , wähle ich den Counter oder den Terroristen für diesen aus. Ich wähle den Counter-Terroristen aus. Hier können wir sehen, dass sie aus irgendeinem Grund sehr klein sind. Auch hier funktionieren diese Schaltflächen nicht, daher muss ich die Größe manuell hinzufügen. Wenn du einfach hier runter gehst und wenn ich runter zur UI gehe zu den Icons klickst, wenn du die Maus über diese Icons hältst, kannst du die Abmessungen sehen. Die wahre Größe ist 256 mal 256 Pixel. Wenn Sie darauf klicken können, wenn Sie 256 mal 256 schreiben, ist dies tatsächlich die wahre Größe des Symbols. Das ist jedoch viel zu groß. Beachten Sie jedoch , dass es verschwommen ist, wenn Sie es über die maximale Größe hinaus vergrößern es verschwommen ist, wenn Sie es über die maximale Größe . Übertreiben Sie das nicht Ich werde es vielleicht auf 150 mal 150 machen. Und das Gleiche gilt für die Terrorismusbekämpfung, die Größe 150 mal 150. Okay. Sowas in der Art. Um nun zu kontrollieren, wie weit diese Schaltflächen hoch und runter sind, können Sie auf das vertikale Feld klicken, eigentlich auf das Overlay selbst Und dann können Sie einfach die Größe des vertikalen Felds ändern. Wählen Sie dann aus, wie weit diese Schaltflächen im Vergleich zum Titel nach oben und unten verschoben werden sollen Klicken Sie auch auf diesen Text. Ich möchte diese Texte stilisieren. Denken Sie daran, dass wir einige Gelder aus Google-Fonds hinzugefügt haben , The Rubic Wir können jederzeit auf den Text klicken, auf die Schriftfamilie und dann einen der Rubrikstile auswählen. Für diesen wähle ich einfach die Rubrik fett. Und dann werde ich die Größe etwas kleiner einstellen, vielleicht so etwas wie 22. Stattdessen werde ich dem Text eine Gliederung hinzufügen. Wenn Sie beide erneut auswählen, gehen Sie zu den Gliederungseinstellungen. Ich werde die Größe auf etwas einstellen, du kannst es mit 1234 versuchen, ich denke, so etwas wie drei ist hier in Ordnung. Und dann auch die Farbe ändern. Ich werde die Farbe ändern, indem ich auf die Konturfarbe klicke und dann den Farbwähler Dann wähle ich die dunkle Farbe, vielleicht diese hier. Mach weiter und klicke darauf und es wird diese Farbe auswählen. Sie haben gerade ausgewählt. Okay, für den Text, wenn du ihn nach unten drücken willst, kannst du es hier zum Beispiel immer mit diesem unteren Teil versuchen. Minus zwei, minus fünf. Sie können sehen, dass Sie sie nach unten ziehen können. Wenn du eine Plus-Zahl schreibst, drückst du sie tatsächlich nach oben. So etwas in der Art. Du kannst auch das hier unten benutzen, das Translate, falls ich es hier unten finde, das Transform. Und dann die Übersetzung, du kannst es im Y übersetzen. Wenn du hier zwei schreibst, zum Beispiel 56, kannst du es auch in der Übersetzung nach oben und unten schieben , denn das kann etwas sein, zwei ist in Ordnung. Wir haben es nur leicht nach unten gedrückt. Okay. Ich werde diesen Text auch stilisieren Klicke darauf. Fahren Sie fort und wählen Sie Ruby Bold aus. Diesen habe ich 22 gemacht. Bei diesem mache ich 24 , weil es ein Titel ist. Und dann fahren Sie fort und wählen Sie die Gliederungseinstellungen aus. Ich werde es auf drei setzen, genau wie die anderen. Für die Konturfarbe wähle ich vielleicht diese dunkle Farbe oder diese, ich wähle diese dunkle Farbe und mache ich wähle diese dunkle weiter und klicke auf. Okay. Jetzt können Sie einfach weitermachen und den Text ändern. Wählen Sie beispielsweise ein Team für dieses aus. Ich werde Terri für den anderen schreiben, ich werde Terrorist schreiben Okay, für den Daterrist. Eigentlich möchte ich den Knopf ändern. Du kannst darauf klicken, diesen Button ändern. Ich werde zu quadratisch wechseln, ich denke quadratisch grün. Und mach weiter und wähle Square Green. Einfach so. Nochmals, genau wie zuvor. Sie können dies über die anderen kopieren, Sie können auf den Text klicken, klicken Sie auf die Konturfarbe. Nimm den Farbwähler und wähle stattdessen diesen aus. Okay, ich denke, das sieht viel besser aus als zuvor. Okay, lass uns jetzt sehen, was falsch ist. Wenn du jetzt auf Play klickst, ist es immer schön zu kompilieren. Klicken Sie auf Play und sehen Sie , was passiert. Im Moment können Sie sehen, die Benutzeroberfläche oder das Steam-Auswahl-Widget tatsächlich oben im Bild befindet und nicht in der Mitte. Du kannst sehen, wenn du auf die Leinwand klickst, sie ist tatsächlich hier drüben. Wenn du dieses Overlay einfach hierher ziehst, zum Beispiel unten rechts, und auf Abspielen klickst, kannst du tatsächlich sehen, dass es sich in der Mitte befindet Das ergibt wirklich keinen Sinn. Es sollte hier unten sein, weil ich es gerade hier platziert habe. Das ist ein sehr wichtiges Konzept, dass Sie diese Ankerpunkte verstehen müssen . Sie sind momentan sehr wichtig. Was passiert ist, dass Sie den Ankerpunkt hier oben haben. Wenn ich auf Abspielen klicke, versuche ich, den Bildschirm zu vergrößern. Du kannst sehen, dass diese Benutzeroberfläche angezeigt wird. Gegen Ende des Bildschirms hier oben wird es nach oben geschoben. Das liegt daran, dass dein Ankerpunkt da oben ist. Es wird hier unten nicht so bleiben, wie du es dir wünschst. Du musst den Ankerpunkt ändern. Denken Sie daran, das immer für Ihre Benutzeroberfläche zu tun. Wenn Sie auf das Overlay klicken, müssen Sie den Ankerpunkt ändern, indem Sie hier oben klicken Wie du hier sehen kannst, hat nur das Elternteil einen Ankerpunkt Alle anderen haben keine Ankerpunkte, nur der übergeordnete. Klicken Sie auf diesen, fahren Sie fort und klicken Sie auf Anker und wählen Sie dann aus, wo Sie ihn ausrichten möchten. Für diese Benutzeroberfläche Ich möchte es in der Mitte ausrichten und den mittleren Ankerpunkt in der Mitte des Bildschirms wie folgt auswählen . Dann schreibe ich für die Position 00, um sie in der Mitte auszurichten. Aber wie Sie sehen können, ist es nicht zur Mitte ausgerichtet. Es ist tatsächlich bis zu diesem Punkt hier drüben. Hier musst du mit der Ausrichtung spielen. Wenn Sie diesen Wert einfach erhöhen, können Sie sehen, dass Sie ihn jetzt richtig erhöhen. Es ist in der Mitte, an der Position 00. Für diesen müssen Sie jetzt stattdessen die genaue Zahl schreiben. 0,50 0,5 Du kannst hier sehen, wenn du Null in die Ausrichtung schreibst, das ist die X-Ausrichtung Es wird sich so ausrichten. Wenn du 0,5 schreibst , ist es in der Mitte. Wenn du eins schreibst, geht es auf die andere Seite der Ausrichtung. Sie können entweder 00 Punkt 5.1 schreiben. Sie haben diese Optionen. Ich werde 0,5 mal 0,5 schreiben, weil das dann in der Mitte und an der Position 00 ausgerichtet wird . Jetzt kannst du sehen, dass es direkt in der Mitte ist. Und wenn ich kompiliere und spiele, sollte es in der Mitte sein. Es spielt keine Rolle, welche Bildschirmgröße ich habe, er bleibt in der Mitte des Bildschirms. Okay. Das nächste Problem , das wir gerade haben, ist, dass die Maus nicht wirklich erscheint, und das werden wir später tun . Wir werden das beheben. Wenn ich jedoch versuche, mit der Maus über die Tasten zu fahren, hören sie tatsächlich auf. Und das muss ich reparieren. Das liegt daran, dass Sie, wenn Sie auf die Schaltfläche klicken und auf das Normale klicken, die Bildgröße auf 32 mal 160 festgelegt haben. Hovert ist die Bildgröße jedoch immer noch sehr gering Sie müssen die Bildgröße aus dem normalen Bild kopieren, und zwar sowohl beim Hovert als auch beim Drücken aller Und mach dasselbe mit dem grünen. Kopieren Sie dies, basierend auf der Hovert-Bildgröße und auch auf der gedrückten Bildgröße Lass uns weitermachen und kompilieren, okay. Klicken Sie auf Abspielen. Auch wenn ich mit der Maus darüber fahre , können Sie tatsächlich sehen, dass ich meine Maus über die Schaltfläche bewegen kann Wenn ich jedoch die Maus über das Bild halte, kann ich nicht wirklich über die Schaltfläche fahren, und das Bild und der Text blockieren die Schaltfläche tatsächlich Lassen Sie uns das beheben. Klicken Sie auf die Bilder, alle hier. Und der Text auch. Du musst das finden, was man Sichtbarkeit nennt. Und Sie müssen es so einstellen, dass es nicht getestet werden kann. Und das bedeutet, dass die Bilder und Texte nur Dekoration sind Ich möchte nicht, dass meine Maus mit ihnen interagiert. Ich wähle diese Option, die nicht getestet werden kann, und das stellt sicher, dass sie nicht mit meiner Maus interagieren Wenn ich jetzt auf Play klicke und versuche, den Mauszeiger über die Schaltfläche zu bewegen, kannst du sehen, dass sie auch bewegt wird, obwohl ich mit der Maus über das Symbol und den Text fahre Okay, das war es also für das CI. Das Letzte, was ich tun möchte, ist, dass ich auch den Hintergrund verschwommen machen möchte den Hintergrund verschwommen machen denn wie Sie sehen können, sieht alles gut aus Ich mag es aber auch, wenn mein Hintergrund verschwommen ist. Jetzt ist es optional. Vielleicht entferne ich es später. Aber lassen Sie uns vorerst nach Unschärfe suchen und sie hier im Hintergrund platzieren, also über dem Overlay außerhalb von allem Denken Sie auch hier daran, den Ankerpunkt zu ändern Ich möchte, dass diese Unschärfe den ganzen Bildschirm ausfüllt. Wie Sie sehen können, können Sie für diese Unschärfe die Stärke der Unschärfe ändern Also etwa 50, wie Sie hier sehen können. Aber ich möchte, dass es den ganzen Bildschirm ausfüllt. Sie müssen lediglich erneut auf den Ankerpunkt klicken und den gesamten Bildschirm ausfüllen. Einfach so. Und ändere den Offset einfach so auf 0000. Jetzt wird es den ganzen Bildschirm ausfüllen . Und wenn Sie auf Play klicken, ist der Bildschirm verschwommen. Was die Menge der Unschärfe angeht, werde ich sie tatsächlich auf etwa zehn reduzieren auf etwa zehn reduzieren Das liegt daran, dass Sie auch den Hintergrund sehen können, wirklich cooler Effekt, wenn Sie das Team auswählen Wenn du dem Spiel beitrittst, kannst du sehen, wie die anderen Spieler spielen, während du das Team auswählst. Okay, jetzt, wo wir fertig sind, speichern Sie alles und fahren wir mit der nächsten Lektion fort . 69. 6.09 Button-Sound-Effekte: Lassen Sie uns nun fortfahren und den Tasten einige Soundeffekte hinzufügen Tasten einige Soundeffekte hinzufügen Und um das zu tun, gehen wir zu den Kostenmaterialien über. Und hier drinnen, lass uns zum Audio gehen. Und ich habe diese Soundeffekte für dich. Die Taste bewegt sich und die Taste ist gedrückt. Gehen wir auch zum Audioordner und zur Engine und den Soundeffekten Und ziehen wir sie einfach in den Inhaltsbrowser. Klicken wir nun mit der rechten Maustaste auf die Schaltfläche, bewegen Sie den Mauszeiger und klicken Sie auf Erstellen. Und ich werde es nennen, also Button Hover. Für das andere, das gedrückte, klicken wir mit der rechten Maustaste auf Create Q und nennen es Sound Button Press Gehen wir in beide hinein. Das Schweben und das Gedrückte. Lassen Sie mich den Ton auf vielleicht 0,25 reduzieren . Das klingt gut für die Presse Lassen Sie mich es vielleicht auf 0,4 setzen. Ja, das klingt gut. Okay, lass uns alles nochmal speichern. Wie ich dir schon gesagt habe, können wir sehen, ob du den Sound spielst. Wenn du willst, dass das anders ist. Jedes Mal, wenn Sie einen Modulator hinzufügen und ihn hier anschließen können, können Sie Ich würde gerne die Tonhöhe von 0,9 auf 1,1 ändern . Es klingt jedes Mal anders , wenn Sie hier dasselbe tun können Ich werde den Modulator kopieren. Ich werde es hier einfügen und es auch hier verbinden Jetzt klingt das auch jedes Mal anders, wenn Sie mit der Maus über die Tasten fahren Okay, großartig. Fahren Sie fort und speichern alles. Um nun die Soundeffekte hinzuzufügen, kehren wir zur Benutzeroberfläche zurück. Öffnen Sie das Widget, den Blueprint, klicken Sie auf die Schaltfläche. Dann siehst du hier unten Optionen gedrückt. Sound Sie können weitermachen und es so ändern , dass Sie die Taste drücken, wenn Sie mit dem Hover Sound Sie können es in die Taste ändern , bewegen Sie den Mauszeiger. Das Gleiche gilt für den anderen. Sie können die gedrückte Taste auf die Taste drücken und die Taste, auf die der Mauszeiger zeigt , auf die Taste „ Hover“ ändern und die Taste, auf die der Mauszeiger zeigt , auf die Taste „ Hover“ . Fahren Sie fort und kompilieren Sie Und wenn Sie jetzt auf Play klicken und mit der Maus über sie fahren, wenn Sie auf OK drücken, können Sie jetzt sehen, dass es funktioniert Sie können jedoch sehen, dass ich hier tatsächlich Geld habe, also muss ich das grüne ändern Grün schwebte und Grün gedrückt. Ich möchte eigentlich den anderen benutzen, den großen. Ich glaube, ich habe einen großen. Dieser ist viel besser für mich. Ich werde das tatsächlich kopieren. Wählen Sie die Version, auf die der Mauszeiger zeigt und gedrückt wird. Ich klicke auf den Text und wähle den Farbwähler Und wähle stattdessen diesen aus. Ich denke, es sieht viel besser aus. Okay, was den Sound angeht, ich muss den Soundeffekt für den Hover reduzieren, ich finde es ein bisschen nervig Lass es mich stattdessen auf 0,15 ändern. Spiel. Und jetzt lass es uns testen. Es funktioniert hier. Okay, jetzt funktionieren sie. Und du hast auch ein paar Geräusche auf den Tasten. 70. 6.10 Wie man Schauspieler hervorbringt: Lass uns jetzt weitermachen und den Spieler spawnen. Und bevor wir das tun, gehen wir noch einmal auf die Einstellungen der Welt Gehen wir tatsächlich zu den Bauplänen. Klicken Sie auf den Spielmodus für den Spielmodus. Denken Sie daran, dass wir in den Klasseneinstellungen standardmäßig festgelegt haben, dass die Klasse als Anti-Terror-Spieler erscheint . Lassen Sie uns das vorerst klären. Lassen Sie uns, bevor ich etwas anderes mache, schauen wir die Pläne an und lassen Sie uns die Terrorabwehr öffnen, um sicherzugehen und lassen Sie uns die Terrorabwehr öffnen , dass sie korrekt ist Wenn ich den Viewport hier öffne, stelle ich einfach sicher, dass das Netz aus der dritten Person dem Netz identisch ist und ich glaube, dass der Terrorist einen Bug Wenn ich ihn also öffne und Sie sehen, dass es einen Bug gibt, dann ist das Mesh der Terrorist. Das ist richtig. Und das Third-Person-Mesh, wir müssen es auf den männlichen Terroristen umstellen , genauso wie auf dieses Mesh hier drüben. Okay. Ich stelle nur sicher, dass auch die Kamera aus irgendeinem Grund falsch ist und das liegt eigentlich daran, dass wir hier auch die Buchse für die Kamera brauchen die Buchse für die Kamera und die Elternbuchse. Denn denken Sie daran, dass der Terrorist ein anderes Skelett benutzt. Wenn ich auf den Marktplatz gehe, benutzt der silberne Charakter dieses Skelett, das Militär tut es, der Terrorist benutzt dieses Skelett. Ich werde dieses Skelett für den Terroristen öffnen. Geh zum Kopf. Ich klicke mit der rechten Maustaste und füge auch für diesen einen Socket hinzu. Ich werde den Namen in Kamera ändern, genau wie den anderen, den ich speichern werde. Und jetzt müssen wir es genauso positionieren wie das andere. Ich werde den Charakter Silver Skeleton öffnen. Ich werde auf die Buchse klicken. Ich werde einfach die Umschalttaste gedrückt halten und mit der rechten Maustaste klicken, um diese Einstellungen zu kopieren. Und dann gehe ich zur Terroristenseite und halte die Umschalttaste gedrückt und klicke mit der linken Maustaste darauf , und das wird es in dasselbe einfügen, weitermachen und alles speichern. Und jetzt sollten Sie sehen, ob Sie zum Terroristen zurückkehren. Er hat die Kamera automatisch hier oben platziert, Er hat die Kamera automatisch hier oben platziert weil der Federarm tatsächlich an der Sockelkamera befestigt ist . Okay, lassen Sie uns alles speichern. Das sieht jetzt richtig aus. Nochmals für den Spielmodus. In den Klasseneinstellungen müssen wir die Standardeinstellung „Schwenken“ entfernen und sie auf „Nicht“ setzen, weil jetzt der Spieler selbst entscheiden muss, ob er als Terrorist oder als Terrorist spawnen möchte oder als Terrorist Okay, lass es uns schließen. Vergewissere dich außerdem, dass in den Welteinstellungen, wenn du hier drüben klickst, auch diese Standard-Pan-Klasse auf „Nicht“ gesetzt ist. Okay, wenn du jetzt auf Play klickst, kannst du sehen, wie du in einem zufälligen Bereich spawnst Und das ist in Ordnung. Das ist beabsichtigt Jetzt spawnen wir also nicht wie jeder andere Charakter. Wir müssen es selbst auswählen. Okay, um Spieler zu spawnen, müssen wir das innerhalb des Player-Controllers, des Player-Controllers, hier Wir machen die Benutzeroberfläche wie hier, aber wir machen auch das Spawnen von Gegenständen und Charakteren und so weiter Jedes Mal, wenn du etwas spawnst, musst du die Benutzeroberfläche des Player-Controllers aufrufen und das Spawnen erfolgt innerhalb des Lass uns den Player Controller öffnen. Und hier drinnen möchte ich dieses Mal tatsächlich rückwärts arbeiten, möchte ich dieses Mal tatsächlich rückwärts arbeiten weil du es beim Laichen viel besser verstehen wirst . Sehr, sehr wichtig Wir möchten ein Ereignis ausführen, und es muss sich nicht im Player-Controller befinden. Sie können das Event vom Player oder von einem anderen Ort aus ausführen . Sie haben also ein erstes Event, das Sie durchführen möchten. Dann muss dieses Event den Spielmodus durchlaufen. Denken Sie daran, dass der Spielmodus nur auf dem Server läuft. Der Client kann nicht mit dem Spielmodus kommunizieren. Also das Spawnen von Gegenständen und Spielern. Wir gehen tatsächlich den Spielmodus durch , um sicherzustellen, dass der Client nicht schummelt Der Server überprüft also immer , ob das, was du tust, legal ist oder nicht Und wenn dann in diesem Spielmodus alles in Ordnung ist, gehst du zum Spieler-Controller und spawnst diesen Gegenstand oder Charakter Das letzte Spawnen findet immer im Controller statt. Da wir momentan keinen Charakter haben und den Charakter eigentlich spawnen wollen, starten wir dieses Event vom Player-Controller aus Eigentlich möchte ich rückwärts arbeiten. Das letzte Event, das wir erreichen wollen, ist, wenn du klickst und schreibst ein benutzerdefiniertes Event und dann Saw Player machst, nennen wir dieses benutzerdefinierte Event Spawn-Spieler Du ziehst von hier und sagst Spawn-Schauspieler aus dem Unterricht. Das ist die Funktion , die benutzt wird, um Dinge in die Welt zu bringen Nun zu dieser, anstatt nur auszuwählen, was wir spawnen wollen, lassen wir den Spieler entscheiden Ich ziehe einfach diese Eingabe oder diesen Pin hierher in das Event und es wird automatisch diese Variable für mich erstellen Und ich werde dasselbe für die Spawn-Transformation tun für die Spawn-Transformation Für diese Klasse wähle ich einfach Team aus oder nenne es Team , weil entweder der Anti-Terrorist oder der Terrorist erscheinen wird Der Spieler wählt das Team aus, dann wird es irgendwann hier für die Kollision erscheinen. Ich muss es so einstellen, dass versucht wird, den Standort anzupassen, aber achte nur darauf, dass du diesen Spieler immer spawnst Okay. Es ist immer schön, eine Variable dieses Spielers zu haben. Lass uns mit der rechten Maustaste klicken, eine Variable heraufstufen und sie Spielerfigur nennen, okay? Das ist der letzte Schritt , den wir erreichen wollen. Wir möchten zum Beispiel eine Veranstaltung mit dem Namen Select Team veranstalten. Und dann durchläuft das ausgewählte Team den Spielmodus. Und der Spielmodus geht zurück in den Player-Controller und startet diesen einen Spawn-Spieler, wenn alles in Ordnung ist , und wir werden in der Welt spawnen Okay, lass uns jetzt alles speichern , lass uns zum Spielmodus übergehen Im Spielmodus wollen wir diesen Spawn-Player ausführen Ich arbeite tatsächlich rückwärts, Moment arbeite ich Dieser Spawn-Spieler muss hier drinnen laufen. Lassen Sie uns dazu tatsächlich ein neues benutzerdefiniertes Ereignis erstellen. Und nennen wir diesen einen Request-Spawn-Spieler, wir bitten darum, den Spieler für diesen Spieler zu spawnen Nochmals, ich möchte dieses Event veranstalten. Wir haben nicht wirklich einen Verweis auf unseren Player-Controller. Lassen Sie uns ihn tatsächlich zu diesem hinzufügen. Ich klicke einfach auf das und suche nach meinem PC. Ich glaube, es heißt PC Counterstrike. Dieser. Fahren Sie fort und wählen Sie Ihren Player-Controller aus. Und ich nenne es Player-Controller, wir können es jetzt von hier wegziehen. Und wie haben wir es dann genannt, Spawn Player. Ich ziehe von hier und sage Spawn Player und wähle ihn Okay, jetzt führst du das aus. Jetzt können wir sehen, dass du das Team und die Spawn-Transformation festlegen das Team und die Spawn-Transformation Nun zum Team: Das Team wird bestimmt, wann immer der Spieler diese Taste drückt Bei diesem Spiel geht es also bis zum Drücken der Taste zurück. Also werde ich das einfach anklicken und auch hierher ziehen. Was nun die Spawn-Transformation angeht, müssen wir festlegen, wo der Welt wir die Spieler spawnen wollen, und das auf der Welt wir die Spieler spawnen wollen, und das zusätzlich Spawnpunkten, die wir Lassen Sie uns also in der nächsten Lektion weitermachen und die Logik dafür schreiben 71. 6.11 Standort des Spawns von Spielern: Ordnung, jetzt müssen wir festlegen, wo wir die Spieler spawnen wollen Und denken Sie daran, dass wir die Spawnpunkte für den Terroristen und den Anti-Terroristen hier bereits platziert die Spawnpunkte für den Terroristen und den Anti-Terroristen hier für den Terroristen und den Anti-Terroristen haben und dass wir diese Spawnpunkte bereits in diesen Arrays gespeichert diese Spawnpunkte bereits in diesen Lassen Sie uns weitermachen und die Spawnpunkte für die Terrorismusbekämpfung und die Spawnpunkte für Terroristen nehmen die Terrorismusbekämpfung und die Spawnpunkte und Lasst uns von hier aus zuschlagen und nach dem Zufallsprinzip schreiben. Wir haben also eine Funktion namens Random Array Item, also spawnen wir den Spieler einfach nach dem Zufallsprinzip an einem dieser Spanien-Punkte und wählen dann zufällig und wählen dann einen dieser Spanien-Punkte Und dann nehmen wir den Punkt Spanien und sagen: Get Act Transform Okay, mach das Gleiche hier. Wir schreiben nach dem Zufallsprinzip und lassen uns dann transformieren. Jetzt haben wir den Standort, die Rotation und den Maßstab der Schauspieler . Sie können sehen, dass Sie, wenn Sie hier mit der rechten Maustaste klicken und die Struktur teilen, Spawnpunkt sehen können , den sie zufällig ausgewählt hat Sie haben die Position dieses Sägepunkts, Sie haben seine Drehung und Sie haben auch seinen Maßstab Ich werde den Strukturpin neu kombinieren , weil ich ihn tatsächlich transformieren möchte Was du jetzt machen kannst, sehr cool hier, ist, dass du aus diesem Team ziehen kannst, und jetzt kannst du „ Gleich“ sagen und es hier auswählen Wenn dieses ausgewählte Team beispielsweise der Kategorie Terrorismusbekämpfung entspricht , wählen wir dieses Team aus. Wenn der Spieler den Anti-Terror-Modus ausgewählt hat, können wir hier die Maus von hier ziehen und sagen: Wähle, benutze diesen. Lassen Sie uns tatsächlich diese Methode namens Select Transform verwenden. Sie können aber auch diese Option namens Select verwenden. Und dann kannst du es einfach hier platzieren und es falsch oder richtig verwenden. Das ist übrigens dasselbe, die Auswahltransformation. Es gibt uns bereits einen Goldbarren. Lass uns eigentlich einfach diesen benutzen. Lass uns weitermachen und es verbinden. Nun, was es hier sagt, lassen Sie es uns hier verbinden. Es bedeutet , dass das Team, das hier ausgewählt wurde, der Terrorismusbekämpfung ebenbürtig ist . Wenn das stimmt, dann wählen Sie A. Wenn es falsch ist, wählen Sie B. Das ist es, was es sagt. Wenn es stimmt, dass ich die Terrorismusbekämpfung ausgewählt habe, muss ich hier die Punkte zur Terrorismusbekämpfung angeben und das dann in A eintragen hier die Punkte zur Terrorismusbekämpfung angeben und das dann in A eintragen Denn es stimmt, ich habe die Terrorismusbekämpfung ausgewählt. Ich nehme die Anti-Terror-Zielpunkte und stecke die Transformation hier ein. Wenn es jedoch falsch ist, ist es der Terrorist , den der Spieler ausgewählt und hier eingestellt hat. Wenn du mehrere Teams für deinen Shooter hast, musst du dieses Team namens Select verwenden , da dir dieses Team eigentlich nur die Wahl zwischen zwei bietet. Dieser gibt dir die Möglichkeit, mehr als zwei auszuwählen, genau wie du es zuvor gesehen hast. Wenn Sie hier eine Aufzählung eingeben, erhalten Sie die Optionen aller Aufzählungen, für die Sie ausgewählt haben Lassen Sie uns jetzt einfach diese löschen. Konzentrieren wir uns für das Team darauf, ich werde es hier wieder miteinander verbinden Ich weiß nicht, warum die Verbindung unterbrochen wurde. Und lass uns weitermachen und die Dinge ein bisschen mehr organisieren. Ordnung, jetzt wird es weitergehen und diesen Spieler nach dem Zufallsprinzip bis zu einem dieser Punkte spawnen , je nachdem , ob der Spieler Terrorismusbekämpfung oder Terrorist wählt Wie ihr hier sehen könnt, wähle ich für diese Events nie wieder „Auf dem Server ausführen“. Denkt daran, dass der Spielmodus nur auf dem Server läuft Du musst das nicht auf dem Server oder auf dem Client ausführen . Übrigens kannst du niemals auf dem Client im Spielemodus laufen , denn auch hier läuft es nur auf dem Server. Du musst es hier nicht wirklich replizieren. Es wird automatisch sowohl auf dem Server als auch hier in der Playersteuerung ausgeführt . Das kannst du hier sehen. Oder beachten Sie, dass ich das nicht auch auf dem Server ausgeführt habe. Denken Sie daran, was ich zuvor gesagt habe, es ist immer der Server , der Dinge in die Welt Realistisch gesehen sollte es ein Run-On-Server sein. Denken Sie jedoch daran, dass Sie aus dem Spielmodus kommen. Der Spielmodus läuft nur auf dem Server und dieser Spawn-Player wird ausgeführt Dieser ist automatisch immer noch auf dem Server. Das läuft nie vom Client aus. Dies kommt aus dem Spielmodus , der vom Server aus ausgeführt wird. Dieser wird also immer auf einem Server ausgeführt, sodass Sie ihn auch nicht wirklich replizieren müssen Okay, wenn ich jetzt zum Spielmodus zurückkehre, haben wir jetzt diesen Request-Spawn-Player Und das kommt tatsächlich vom Play-Controller. Wenn ich also hierher zurückkehre, klicke ich mit der rechten Maustaste und erstelle ein benutzerdefiniertes Ereignis. Und nennen wir das Select Team. Wir sind fast fertig. Wähle Team aus. Und ich möchte auch einen weiteren Server namens Server Select Team auf dem Server ausführen lassen . Und dieser wird zuverlässig auf einem Server ausgeführt. Okay, jetzt werden wir ein Team auswählen. Wenn wir auf die Benutzeroberfläche klicken, für dieses eine Auswahlteam möchte ich für dieses eine Auswahlteam das Serverauswahlteam ausführen. Jetzt wird es also über den Server laufen. Für diesen werde ich den Spielmodus ausführen. Einer namens Request Spawn Player. Jetzt kann ich den Request Spawn Player nicht ausführen weil ich, wie ihr hier sehen könnt, kein Blueprint-Interface für meinen Spielmodus habe und ich auch keine Verweise darauf Lassen Sie uns also mit der nächsten Lektion weitermachen und ein Blueprint-Interface für den Spielmodus erstellen 72. 6.12 Blueprint-Schnittstelle für den Spielmodus: Ordnung, also lasst uns weitermachen und ein Blueprint-Interface für den Spielmodus erstellen ein Blueprint-Interface für den Jetzt kannst du es selbst machen, weil wir es schon so oft gemacht haben Jetzt, wenn du dich nicht erinnern kannst, mach einfach weiter und folge mir hier in dieser Lektion. Lassen Sie uns im Ordner Blueprint-Schnittstellen weitermachen. Klicken wir mit der rechten Maustaste, gehen wir zu Blueprint und wählen Sie die Blueprint-Schnittstelle Mach weiter und rufe es an und ich gehe in den Modus . Gehen Sie in dieses Blueprint-Interface Rufen wir diese Funktion auf und holen uns die Referenz zum Spielmodus hier. Lassen Sie uns eine Ausgabe erstellen. Sie müssen auswählen, worauf Sie verweisen möchten. Ich versuche, mich auf meinen Spielmodus namens GM zu beziehen , glaube ich. Gegenschlag. Wenn ich nochmal hier draufklicke, richtig, Counterstrike Wähle meinen Spielmodus und nenne ihn dann Spielmodus. Okay, jetzt sind wir hier fertig. Denken Sie daran, alles zu kompilieren. Kehren wir im Blueprint-Spielmodus zu unserem Spielmodus zurück im Blueprint-Spielmodus zu unserem Spielmodus Lass uns hier auf die Klasseneinstellungen klicken, zu den Benutzeroberflächen gehen und dann die Oberfläche auswählen , die du gerade im Spielmodus erstellt Doppelklicken wir nun auf das Interface. Und hier schreiben wir eine Selbstreferenz. Jetzt haben wir diesen Spielmodus definiert. Mach weiter und kompiliere und speichere alles. Jetzt können wir zum Player-Controller gehen und ich kann hier in meinem Spiel beginnen. Lassen Sie uns weitermachen und sagen und mit der rechten Maustaste hier klicken und den Spielmodus aufrufen sagen. Davon ausgehend können wir sagen, holen Sie sich Spielmodus-Referenz, die wir gerade gemacht haben. Und es ist eine Nachricht, weil sie von einer Blueprint-Schnittstelle stammt Und mach weiter und vernetzt. Nun zu diesem Spiel können Sie jetzt mit der rechten Maustaste klicken und zu einer Variablen heraufstufen und es Spielmodus nennen. Jetzt haben wir einen Verweis auf unseren Spielmodus. Jetzt, wo wir einen Verweis auf unseren Spielmodus haben, können wir diesen Spielmodus nehmen und sagen, wenn ich zu meinem Spielmodus zurückkehre und mich daran erinnere, wie ich ihn eigentlich genannt habe, und hierher zurückkehren, nennen wir ihn Request Spawn Player Jetzt können wir direkt von diesem Spielmodus aus starten und Spawn-Spieler anfragen sagen , einfach so Okay, jetzt können wir es für die nächste Lektion verwenden. Lassen Sie uns weitermachen und alles kompilieren und speichern, und lassen Sie uns weitermachen. 73. 6.13 Fertigstellung der Teamauswahllogik: Okay, jetzt lass uns weitermachen und die Logik beenden. Gehen wir nun weiter und verbinden diese Anfrage Spawn-Spielerevent aus dem Spielmodus können wir sie mit der Serveranfrage verbinden Wenn du das hier verbindest, bekommst du tatsächlich auch eine Ära , wenn du es hier verbindest. Und dann nehmen wir für diesen Spielmodus an, dass du dieses Ziel hier eingesteckt hast Dies ist die Referenz zum Spielmodus. Wenn du das hier machst, wenn du es ausführst, ist das die Spielmodus-Referenz. Wenn du es von hier aus ausführst, bekommst du tatsächlich eine Ära, in der es heißt, dass diese Spielmodus-Variable nicht existiert. Ich weiß nicht, wovon du sprichst. Das passiert, wenn Sie das auf dem Client ausführen. Denken Sie daran, dass der Spielmodus nur mit dem Server kommunizieren kann . Wenn du versuchst, die Spielmodus-Variable über den Client laufen zu lassen, wird dir das eine Ära geben und dir sagen, ich weiß nicht, was diese Variable ist. Denkt daran, diesen Spielmodus auch über den Server laufen zu lassen. Lassen Sie uns diese Variable löschen. Lass mich meinen Spielmodus wieder verbinden, einfach so. Jetzt muss ich meinen Player-Controller auswählen. Denken Sie daran, dass wir uns schon im Player-Controller befinden , ziehen Sie von hier aus und schreiben Sie sich das Team, das Sie auswählen müssen. Auch hier wollen wir das über die Benutzeroberfläche machen. Ich werde das einfach in das Ereignis ziehen und das auch in das Ereignis ziehen und kompilieren. Was wir jetzt tun können Sie können dieses Ereignis nehmen und es über die Benutzeroberfläche ausführen. Wenn ich mein Widget, den Blueprint, öffne, klicke ich auf meine Schaltfläche. Lassen Sie uns für dieses Widget tatsächlich den Namen ändern Wenn du auf die Schaltfläche klickst, nenne ich sie BTN Terrace. Machen Sie es variabel, denn wenn Sie das nicht als Variable im Diagramm haben, werden Sie die Funktionalität für diese Schaltfläche codieren die Funktionalität für diese Schaltfläche Sie können sehen, dass Sie keine Variablen haben . Wenn Sie das angeben, können Sie es jetzt hier als Variable sehen. Und du kannst damit Ereignisse machen. Stellen Sie sicher, dass das Häkchen variabel ist. Tun Sie dasselbe für die Terrorismusbekämpfung. Nennen wir es BT N Terrorist. Lassen Sie uns dafür sorgen, dass es variabel ist. Mach weiter und kompiliere und speichere alles. Gehen wir jetzt zum Diagramm über, für dieses werde ich das alles löschen. Vorerst werde ich zum Beispiel zuerst auf die Terris klicken Und jetzt haben wir diese Ereignisse. Wir können diesen einen Klick auswählen. Was sollte passieren, wenn ich auf die Terris-Schaltfläche klicke? Was ich tun möchte, ist, wenn ich klicke, ich möchte dieses Select Team starten Ich benötige einen Verweis auf den Player-Controller. So wie Sie das innerhalb der Benutzeroberfläche machen , können Sie schreiben, klicken und sagen „Get Owning Und Sie können sehen, dass Sie hier zwei Dinge haben. Sie können entweder den eigenen Spieler bekommen und dadurch den Player-Controller für den Spieler bekommen Und du kannst den Besitzer des Spielers Pon bekommen. Dadurch wird der Spieler P anstelle des Player-Controllers angezeigt Im Moment brauchen wir den Player-Controller. Ich werde den Get Owning Player machen. Jetzt erinnern wir uns wieder daran ein Blueprint-Interface für den Player-Controller haben , von dem wir ziehen und sagen, Player-Controller-Referenz abrufen können und sagen, Player-Controller-Referenz abrufen Mach weiter und verbinde dich. Jetzt können wir das Event namens Select Team durchführen und es auswählen. Jetzt müssen Sie angeben, was das Team ist. Es ist der Terrorist, weil wir auf den Terror-Button geklickt haben Machen Sie weiter und suchen dem BP-Terroristen und kompilieren Sie nach dem Anti-Terror-Namen Mach weiter und klicke darauf. Fahren Sie fort und klicken Sie hier. Ich werde das Ganze einfach kopieren und einfügen. Du kannst es noch einmal schreiben, wenn du mehr Übung willst. Lassen Sie uns nun stattdessen den Zähler oder diesen auswählen . Lass uns weitermachen und kompilieren. Nun, nur um Ihnen zu erklären, was tatsächlich passiert, ist, wenn ich auf den Terror-Button klicke. Jetzt geht es durch die Spielersteuerung und wählt Teamevent aus. Es wird hier durchgehen. Denken Sie daran, dass dieser sowohl auf dem Client als auch auf dem Server läuft . Wir lassen es hier über den Client laufen und dann laufen wir zuerst auf dem Server. Wenn wir es auf dem Server ausführen, kommunizieren wir jetzt mit dem Spielmodus. Wir werden den Spielmodus durchgehen und den Spielmodus fragen, dürfen wir das tatsächlich spawnen Und wir werden das alles durchgehen und die Spielersteuerung spawnen Es wird hier runter gehen. Denken Sie daran, dass es weiß, was zu spawnen ist, weil wir sie hier in der Benutzeroberfläche eingestellt haben, wir haben das Team hier eingestellt Es wird diesen Wert an das ausgewählte Team weiterleiten, es wird es hier durchgehen lassen, es hier einstecken, es hier einloggen, es hier durch den Spielmodus laufen lassen. Und dann wird es hier im Spawn-Player ausgeführt . Und es weiß, was der Wert ist, weil wir ihm gesagt haben, was es ist und es weiß auch, wo der Spieler erscheinen muss Okay, jetzt lass uns weitermachen und auf Play klicken. Und wenn ich einen von ihnen auswähle, zum Beispiel den Terroristen, kannst du sehen, dass gerade nichts passiert. Lass uns in der nächsten Lektion weitermachen und das hier beenden. 74. 6.14 Den Spieler spawnen: In Ordnung, es gibt also noch eine letzte Sache, um den Spieler zu spawnen. Und wir müssen den Spieler besitzen. Wenn du tatsächlich darauf klickst, spawnst du den Spieler tatsächlich Aber du kannst den Spieler im Level nicht sehen , weil du den Spieler auch besitzen musst Wenn du von der Anzeige aus ziehst, denk daran, dass wir bereits ein Interface für die Spielerbasis erstellt ein Interface für die Spielerbasis Du kannst also vom Display ziehen und sagen Spielerreferenz abrufen. Wir haben diese Oberfläche bereits erstellt, und jetzt könnt ihr vom Player aus ziehen Du musst den Spieler besitzen um ihn kontrollieren zu können Kompilieren Sie jetzt alles und lassen Sie uns auf Play klicken. Wenn Sie jetzt auf den Terroristen klicken, können Sie sehen, dass Sie diesen Anti-Terroristen tatsächlich besitzen können . Es liegt jedoch immer noch die Benutzeroberfläche vor uns und wir müssen sie entfernen. Die Benutzeroberfläche wird über den Client ausgeführt. Wenn Sie mit der Benutzeroberfläche arbeiten, arbeiten Sie innerhalb des Clients. Anstatt es hier zu tun, klicken wir jetzt mit der rechten Maustaste und erstellen ein neues benutzerdefiniertes Ereignis. Und führe es über den Client aus. Spawn-Player, ich nenne ihn einfach Client-Spawn-Player Ich weiß, dass es mit diesem zusammenhängt . Ich werde darauf klicken. Machen Sie weiter und besitzen Sie einen zuverlässigen Client. Lassen Sie uns das auch hier durchgehen. Cl Spawn-Spieler für diesen hier unten jetzt Ich möchte mich nur daran erinnern, dass wir es Show Hide Widget nennen. Also können wir hier runterkommen und „Widget anzeigen“ sagen und es hier auswählen. Jetzt können wir die Teamauswahl auswählen und diese deaktivieren. Jetzt wird die Benutzeroberfläche für die Spieler ausgeblendet. Lass uns weitermachen und kompilieren und auf Play klicken. Und lassen Sie uns zum Beispiel den Counter Terrist auswählen zum Beispiel den Counter Terrist Jetzt können Sie sehen, dass wir hier drinnen sind. Jetzt kannst du sehen, dass ich meinen Charakter nicht bewegen kann. Und ich kann auch den Kopf meines Charakters sehen. Denken Sie daran, dass wir den Kopf tatsächlich entfernt haben. Das ist ein Bug. Wenn wir zum Player gehen und ich nur meinen Code überprüfen will, und ich nur meinen Code überprüfen will wenn du auf die Spielerbasis klickst, wenn du zum Event-Graph gehst, wird mein Kopf angezeigt. Denken Sie daran, dass wir zu Beginn des Spiels den Kopf entfernen, wir können den Spieler auch nicht kontrollieren. Ich habe den Verdacht , dass dieser Code hier, der Bewegungscode und das Verstecken des Kopfes nicht funktionieren. Denn wenn ich spiele und klicke, siehst du, dass ich meinen Kopf sehen kann, dieser Code läuft nicht. Auch dieser läuft nicht weil ich meinen Charakter nicht wirklich bewegen kann. Ich glaube, das liegt daran, dass man hier eigentlich einfach eine Zeichenfolge drucken kann. Nochmals eine Zeichenfolge drucken, eine Zeichenfolge drucken ist wirklich mächtig. Es sollte hier Hallo sagen. Wenn es das tut, weiß ich, dass mein Code hier läuft. Wenn ich auf meine Blässhühner klicke, siehst du, dass sie nicht Hallo sagen Aber wenn ich es mit dem ungültigen verbinde. Also wenn ich es einfach abtrenne, setze ich es einfach so auf ungültig. Und ich kann das wieder verbinden. Ich klicke auf Play und jetzt heißt es Hallo. Es heißt eigentlich , dass das nicht gültig ist. Im Mehrspielermodus musst du das wissen. Du musst dem Spieler etwas Zeit geben , damit spawnen kann , weil es nicht wie im Einzelspielermodus ist Sie brauchen einige Zeit, um auf dem Server zu spawnen oder eine Verbindung zum Server Man muss also etwas abziehen und sagen wir mal verzögern. Manchmal behebt das das Problem tatsächlich. Wenn ich nur eine Verzögerung hinzufüge und nicht wirklich eine große, einfach um 0,01 also sehr, sehr niedrig und kompiliere. Und wenn ich jetzt auf Play klicke, wähle Counter Terrorist aus. Jetzt kannst du sehen, dass ich meinen Charakter bewegen kann und mein Kopf ist auch weg. Eigentlich war das Einzige, was wir hier brauchten, diese Verzögerung hinzuzufügen. Denn wenn Sie eine Verbindung zum Netzwerk auf dem Server herstellen, müssen Sie eine sehr kleine Verzögerung haben damit der Player tatsächlich Verbindung herstellt und dann diesen Code ausführt. Ordnung, wie Sie jetzt hier sehen können, funktioniert alles hervorragend. Sie können jedoch sehen, dass die Maus jedes Mal verschwindet, wenn ich auf den Bildschirm klicke Und es ist nervig, ich muss meinen anderen Bildschirm auswählen , bevor ich tatsächlich auf die Schaltflächen klicken kann Und ich muss hier klicken, bevor ich spielen kann. Sie können also sehen, dass ich klicken oder das Ganze minimieren muss. Und jetzt kann ich auf die Benutzeroberfläche klicken. Und ich muss erneut auf den Bildschirm klicken , bevor ich meinen Charakter mit der Maus bewegen kann. Also müssen wir das reparieren. Und das müssen wir in der nächsten Lektion tatsächlich mit einem sogenannten Eingabemodus tun in der nächsten Lektion tatsächlich mit einem sogenannten , den wir einstellen müssen. Gehen wir zur nächsten Lektion über. 75. 6.15 Einstellen des Eingabemodus: Ordnung, jetzt lass uns weitermachen und unseren Player-Controller öffnen Wenn du also den Player Controller öffnest, kann ich, wie du sehen kannst, wenn ich auf Play klicke, meine Maus nicht sehen und ich kann auf nichts drücken. Wenn ich zum Player-Controller gehe und auf die Standardwerte für die Klasse klicke, kann ich diese Option auswählen, die Schuhe genannt wird Wenn ich kompiliere und spiele, kannst du jetzt sehen, dass ich meinen Mauszeiger sehen kann Manchmal, wenn ich ins Spiel komme, kann ich den Mauszeiger jedoch nicht über meine Tasten Und hier kommt der eingestellte Eingabemodus ins Spiel. Hier drüben im Player-Controller. Lasst uns von hier aus zuschlagen, von Anfang an. Spielen Sie und stellen Sie, sagen wir, den Eingabemodus ein. Sie haben diese verschiedenen Typen. Sie können den Eingabemodus auf Nur Benutzeroberfläche , Nur Spiel oder Spiel und Benutzeroberfläche einstellen . Im Moment, wenn wir eine Verbindung zum Server herstellen, wollen wir nur, dass es nur zur Benutzeroberfläche geht. Weil wir uns nur auf unsere Teamauswahl konzentrieren und das Team auswählen wollen . Das Spiel ist uns momentan egal, ich werde ausreichen. Dann müssen wir den Player-Controller angeben. Denken Sie daran, dass wir bereits die Kontrolle über den Spieler haben, also werde ich die Maus von hier wegziehen und selbst sagen. Damit sich das Widget darauf konzentrieren kann, müssen wir hier nichts tun. Und alles sieht gut aus. Also lasst uns weitermachen und kompilieren. Und wenn ich jetzt auf Play klicke, konzentriert es sich eigentlich nicht auf mein Spiel. Und ich kann weitermachen und all das machen. Wenn der Spieler jetzt spawnt, musst du auch den Eingabemodus ändern Denn wenn wir ins Spiel gehen, kannst du sehen, dass ich mich nicht mehr bewegen kann weil dein Eingabemodus momentan nur auf UI eingestellt ist, also musst du das auch ändern Lass uns hier runter gehen. Und denken Sie daran, wenn Sie hier oben hinaufgehen und das Symbol sehen , können Sie die Maus darüber halten . Sie können sehen, dass dort oben nur Kunde steht. Es läuft nur auf dem Client. Lass uns hier runter gehen. Wenn wir den Spieler spawnen, lassen wir ihn tatsächlich zum Client laufen. Spawn-Spieler. Ziehen wir von hier und sagen wir Eingabemodus einstellen. Im Moment brauchen wir das Spiel nur, weil wir jetzt im Spiel sind. Wir wollen uns bewegen. Wir interessieren uns nicht für die Benutzeroberfläche, den Player-Controller, sagen wir einfach selbst, so wie zuvor. Das sollte es sein. Lass uns kompilieren und spielen. Jetzt wähle ich zum Beispiel Counter Terrace und jetzt bin ich hier drin. Aber wie Sie sehen können, kann ich meine Maus immer noch sehen. Lass uns von hier wegziehen und Maus sagen. Sie haben diese Veranstaltung hier unten. Das Goldbarren heißt Set Show Mouseursa. Ich werde es so einstellen, dass es hier oben fällt. Sie können es standardmäßig immer auf true setzen Wenn Sie möchten, können Sie das kopieren. Und du kannst es hier einfügen und einstecken und es auf true setzen. Das haben wir bereits getan, indem wir es standardmäßig auf true gesetzt haben, aber nur um sicherzugehen, dass es sichtbar ist, nur für den Fall, dass Sie in Zukunft etwas tun , können Sie das haben. Aber im Moment wird es eigentlich nicht benötigt. Aber lassen wir es eigentlich einfach hier sein. Lass uns auf Play by Select, No Terrorist klicken. Sie können sehen, dass meine Maus verschwindet und alles perfekt funktioniert. In Ordnung, also lass uns alles schließen. Denk daran, dein Spiel zu speichern und lass uns weitermachen. 76. 6.16 Platzierung einer Zuschauerkamera: Wenn Sie gerade auf Play klicken, können Sie sehen, dass es an einem zufälligen Punkt beginnt Und ich möchte eigentlich an einem coolen Ort beginnen dem du alle Spieler direkt sehen kannst , wenn du dich verbindest. Das wird wirklich nett sein. Was Sie tun können, ist, dass Sie hier zum Beispiel einfach eine Kamera aufstellen können . Lass mich einfach zuerst meine Kamera platzieren. Ich möchte zum Beispiel meine Kamera so platzieren und ich kann das gesamte Level und auch die Spieler sehen . Wenn du jetzt mit der Position deiner Kamera zufrieden bist , kannst du hier oben auf den Viewport klicken und dann auf diesen klicken Erstellen Sie hier eine Kamera und wählen Sie Kamera aus. Dadurch wird automatisch ein Kameradarsteller erstellt. Wenn ich jetzt auf die Kamera klicke, wurde sie hier erstellt. Um sicherzugehen, dass ich die Kamera nicht versehentlich hierher bewege, schreibe ich klicken und transformieren und wähle dann Lock Movement selected. Wenn du jetzt darauf klickst und das Verschiebewerkzeug auswählst, kannst du sehen, dass es nicht da ist. Ich kann das nicht aus Versehen wirklich verschieben. Jetzt hat es die Bewegung für diesen gesperrt. Okay, ich werde das umbenennen und es Zuschauerkamera nennen . Lass uns sparen Ab und zu können wir zum Player-Controller gehen und uns Player-Controller gehen daran erinnern, was ich zuvor gesagt habe. Wenn du einen Verweis auf etwas innerhalb der Welt haben willst, versuche dich daran zu erinnern, welche Funktion wir tatsächlich verwenden. Ich gebe dir nur eine kurze Sekunde , um darüber nachzudenken, welche Funktion wir hier verwenden können , um die Referenz für diese Kamera hier zu finden. Gehen wir jetzt zum Player-Controller. Was wir tun können, ist, diese Ansicht immer dann einzustellen , wenn der Player eine Verbindung herstellt. Ich werde es tatsächlich hier in der Startphase machen. Was du tun kannst ist, ich werde es einfach hier nach dem Modus machen, ich werde das wegziehen. Und dann von hier aus und sag Klassenkurs bei Floss. Das ist die Funktion , die Sie verwenden müssen. Wählen Sie dann die Kamera aus. Wenn ich nach einer Kamera suche, können Sie weitermachen und die Kamera auswählen. Das ist eine Kamera. Wir holen uns die Kamera von unserem Level. Jetzt können wir diese Funktion namens Set View Target, Blend verwenden . Ansichtsziel mit Mischung festlegen“ wird die Ansicht für Ihre Kamera festgelegt, wenn Sie eine Verbindung herstellen. Jetzt werden Sie gefragt , wie die Ansicht ist? Die Ansicht ist nur diese Kamera , die wir erstellt haben. Mach weiter und verbinde dich. Das war es eigentlich. Lassen Sie uns sie einfach hier auswählen. Mach weiter und kompiliere, speichere alles. Lass uns auf Play klicken. Und jetzt können Sie sehen, dass wir hier anfangen. Und ich kann dieses Level sehen. Es sieht cool aus, wenn die Spieler spielen und ich mein Team auswählen und die Spieler im Hintergrund sehen kann . Wenn du zum Beispiel auf Terrorist klickst , spawnst du innerhalb des Levels Und für den anderen funktioniert alles gut. Und wenn ich als Anti-Terrorist spawne und ich rübergehe und du siehst, dass sie sich sehen können. Im Moment kannst du sehen, dass es einen Bug gibt. Lassen Sie uns das tatsächlich beheben. Der Kopf verschwindet wenn ich den Client als Server sehe, wenn ich hier kündige, wird mir tatsächlich eine Ära angezeigt , und das könnte an dieser liegen Hier steht, dass Axis nicht versucht, diese Ära zu lesen Sie können jetzt versuchen, es selbst zu korrigieren bevor Sie mir nur zum Üben folgen Axis bedeutet nicht, dass es versucht, diesen Wert namens Get Local-Player-Subsystem zu lesen diesen Wert namens Get Local-Player-Subsystem Wenn ich hier draufklicke, ist das das Get Local Player-Subsystem Es versucht, diesen Wert zu lesen, aber es heißt Access None, was bedeutet, dass ich keine Informationen von diesem Wert bekommen kann Lass uns das einfach weglassen. Es ist immer nett, einfach zu streichen und zu sagen, dass es nur gültig ist, wenn es gültig ist. Wir werden diesen Code ausführen, lassen Sie uns ihn auch hier verbinden. Immer wenn der Player-Controller gültig ist und diese erweiterte Eingabe gültig ist, dann wollen wir den Code erneut ausführen. Doppelklicken Sie einfach hier auf den Reroute-Knoten. Machen Sie weiter und machen Sie diese organisierte Kompilierung. Lass uns auf Play klicken und sehen, was es macht. Machen Sie jetzt weiter und wählen Sie zum Beispiel Terroristen für diesen Fall aus. Wir gehen in die Mitte und wählen die andere aus. Wählen wir den Anti-Terroristen aus. Lass mich den anderen Kerl hier sehen und sehen, ob sie sich sehen. Und jetzt kannst du sehen, dass es behoben ist. Es war nur ein Problem mit dieser Ära, das wir schon einmal hatten. Wenn du es jetzt testen willst, kannst du es als Client spielen. Sie können es zum Beispiel mit drei Spielern spielen. Lassen Sie uns all diese drei Spieler öffnen. Ich werde diesen großen Teil vorerst minimieren und die etwas größer machen. Einfach so für diesen, lass uns einen Anti-Terroristen hervorbringen Und für den anderen lassen Sie uns einen Anti-Terror-Gegner hervorbringen. Und drittens: Laßt uns einen Terroristen hervorbringen. Lass mich hier in die Mitte gehen. Für diesen werde ich auch in die Mitte gehen. Und für den anderen auch. Jetzt können Sie sehen, dass sie perfekt funktionieren. Jeder kann jeden sehen. Und die Animationen, man kann sie in der Hocke sehen, diese auch, die Soundeffekte funktionieren, und alles ist startklar Lass uns weitermachen und alles speichern und lass uns weitermachen. 77. 7.01 Räume für die Pistolenmischung: Jetzt sind wir tatsächlich bereit, mit den Waffen zu arbeiten und sie ebenfalls im Level zu platzieren Aber bevor wir das tun, lassen Sie uns die Animationen mit dem Gewehr und der Pistole machen , weil sie uns momentan fehlen Lassen Sie uns diese fertig stellen, bevor wir mit den Waffen arbeiten, denn zu diesem Zeitpunkt werden wir alle Animationen haben und alles wird für uns viel einfacher sein Gehen wir also zurück zum Blueprints-Ordner, klicken auf den Player und gehen zurück zum Animationsordner hier. Was ich für diese Lektion tun möchte, ist, die Zwischenräume für Pistolen zu erstellen. Genau wie die, aber jetzt die mit Pistolen , falls Sie sie selbst erstellen möchten Es ist also eine nette Übung und dann kannst du sehen, was ich mache Aber du solltest inzwischen wissen, wie das geht. Weil es eigentlich dasselbe ist wie die die unbewaffnet ducken und unbewaffnet rennen und auch unbewaffnet gehen Wenn Sie folgen möchten, klicken wir mit der rechten Maustaste hier. Gehen wir in die Animation und wählen für diese Animation den Blend Space aus. Wählen Sie erneut unseren Skelettstil, einen männlichen, und nennen Sie ihn Blend Space. Nennen wir das eine Hockerpistole. Lassen Sie uns das zuerst erstellen. Doppelklicken wir hier. Für die horizontale Achse ist dies die Bewegungsrichtung für die vertikale Achse, das ist die Bewegungsgeschwindigkeit. Für die Bewegungsrichtung reicht sie von minus 180 bis 180. Und dann haben wir acht Defizite, weil wir eine Bewegung in acht Richtungen haben Was die Bewegungsgeschwindigkeit angeht, hängt es jetzt davon ab, ob wir uns ducken oder ob wir gehen oder Gehen wir jetzt zurück zu, eigentlich kann ich es hier machen, drüben nach rechts Gehen wir zurück in die Hocke für die Unbewaffneten. Ich möchte sehen, wie hoch die Bewegungsgeschwindigkeit war. Da sind es 100, also werde ich es hier für die Pistole genauso einstellen, 100 Und die letzte Sache hier , was die Gewichtsgeschwindigkeit angeht, setzen wir sie auf 6,5. Wenn du dich daran erinnerst , kannst du auf die Hocke klicken , du kannst runter gehen Und dann kannst du die Gewichtsgeschwindigkeit sehen, wir haben sie auf 6,5 gesetzt. Mach dasselbe für diesen , damit sie gleich sind. Und bevor ich etwas mache, werde ich das speichern und mit rechten Maustaste darauf klicken und es duplizieren. Das liegt daran, dass ich das alles nicht immer wieder machen muss. Und dieser heißt Run Pistol. Und dann werde ich das nochmal duplizieren und das wird S-Walk-Pistole heißen Ich werde die Laufpistole öffnen. Jetzt müssen wir nur noch die Bewegungsgeschwindigkeit ändern. Ich glaube, es sind 350 und wenn Sie sich nicht mehr erinnern, klicken Sie auf Unbewaffnet Für den Lauf siehst du, es sind 350. In der Hocke oder eigentlich in der Hocke, der Laufpistole, musst du sie auch auf 350 stellen Okay. Und lass uns die Pistole überprüfen Und ich glaube, es sind 200 auf dem Bild. Ja, es sind 200. Also setzen wir auch den Walk eins auf 200 und lassen Sie uns alles speichern. Jetzt können Sie sehen, wann ich es dupliziert Ich muss das alles nicht immer wieder machen Jetzt sind sie also alle bereit. Okay. Fangen wir mit der Pistole Lass uns nach der Hocke suchen oder ich kann einfach nach der Pistole suchen Das ist viel einfacher. Und dann kann ich mir die Hocke hier drüben ansehen Genau wie zuvor. Du musst zuerst den Leerlauf haben. Mal sehen, im Leerlauf hocken, wieder diesen, Shift gedrückt halten und sie hier unten einstecken Einfach so. Und dasselbe auf der anderen Seite, einfach so. Okay, hier oben ist die Vorwärtsbewegung so, wie Sie hier sehen können. Und dann hast du vorne links bis hier und dann vorne rechts bis hier. Dann hast du die Linke hier drüben und du hast die Rechte hier drüben. Und dann hast du die Rückseite links und du hast die Rückseite rechts, und dann hast du die Rückseite auf beiden Seiten. Und ich kann die Beschriftungen aktivieren sodass Sie auch sehen können, wie ich sie platziere. Aber Sie können die Steuertaste gedrückt halten und die Maus bewegen, um zu überprüfen, ob alles in Ordnung ist. Alles sieht gut aus. Ich werde es speichern und schließen. Und jetzt kann ich die Laufpistole öffnen . Ich suche nach der Leerlaufpistole und benutze diese Pistole, die Leerlaufpistole genannt wird, und mache weiter und platziere sie erneut Halte die Umschalttaste gedrückt und platziere sie alle. Jetzt, wo du sie platziert hast, lass uns nach der Pistole suchen und ich werde die weggefallenen finden. die Pistolen laufen, jetzt brauchen wir, wenn ich sie hier finde, die vordere Dann brauchen wir vorne links und dann vorne rechts. Dann brauchen wir links, rechts, und wir brauchen hinten links, hinten rechts. Wir brauchen auch den Rücken hier drüben auf beiden Seiten. Halten Sie auch hier die Taste gedrückt , um zu sehen, wie es aussieht. Alles sieht gut aus. Okay. Wir können es schließen. Jetzt öffnen wir die letzte, die Walk-Pistole. Nochmals, ich werde den Leerlauf finden. Nimm die ungenutzte Pistole und lege sie wieder hier hin. Dann suchen wir nach einer Pistole. Jetzt müssen wir den Weg an diesem einen Gehweg finden und ihn so hier platzieren Und dann brauchen wir links, vorne, rechts. Dann brauchen wir links und rechts hier drüben, hinten links, gehen zurück nach rechts. Und dann brauchen wir auf beiden Seiten. Auch hier kann ich diese Beschriftungen aktivieren, sodass Sie sehen und ich die Kontrolle behalten kann. Bewege meine Maus, um zu sehen, wie es aussieht und alles sieht gut aus. Jetzt können wir also alles speichern. Und das war es einmal für die Pistole. Lass uns mit der nächsten Lektion weitermachen und das Gewehr machen. 78. 7.02 Räume für Gewehrmischungen: Für das Gewehr. Auch hier kannst du versuchen, es selbst zu machen, jetzt, wo wir auch die Pistole gemacht haben Aber lassen Sie uns weitermachen und es gemeinsam machen, wenn Sie immer noch Schwierigkeiten damit haben Lass uns hier mit der rechten Maustaste klicken. Gehen wir zu Animation. Gehen wir zu Blend Space und wählen unser Skelett aus. Nennen wir es nochmal S. Nennen wir es Rifle. Lassen Sie uns auf diesen eingehen. Ruf den horizontalen an. Bewegungsrichtung. Die vertikale Achse. Geschwindigkeit der Bewegung. Die Richtung geht von minus 180 bis 180. Bei acht Rasterunterteilungen beträgt die Gewichtsgeschwindigkeit 6,5. Was die Bewegungsgeschwindigkeit betrifft, so ist dies die Hocke Sie ist also auf 100 gesetzt. Das ist richtig. Schließen wir es wieder. Ich werde das duplizieren und es Un-Gewehr nennen. Und ich werde das noch einmal duplizieren. Nennen wir das One Walk Rifle. Ich öffne das Laufgewehr und ändere die Bewegungsgeschwindigkeit auf 350 Ja, wir müssen nichts anderes ändern. Lass uns das Walk-Gewehr hier drüben öffnen. Lasst uns die Bewegungsgeschwindigkeit wie bei den anderen auf 200 ändern . Und lass uns alles speichern und schließen. Okay, für das Gewehr. Lass uns wieder mit der Hocke beginnen. Für die Hocke werde ich nach einem Gewehr suchen und dann werde ich Crouch-Leerlaufgewehr finden und Und mach weiter und platziere sie wieder, ganz unten. Ordnung, wenn das erledigt ist, suchen Sie das nach vorne geduckte Gewehr und legen Sie es hier hin Manchmal halte ich nur die Steuerung gedrückt, um zu überprüfen, ob Animation, die ich für Sie importiert habe, korrekt ist Normalerweise halte ich einfach die Kontrolle und überprüfe nur , ob das korrekt ist. Ich mache hier auf diesem Kurs keinen Fehler. Jetzt haben wir diese Front. Okay, also wir haben vorne links, wir haben vorne rechts, dann haben wir die linke Hocke links und auch die Hocke rechts Dann haben wir hinten links und hinten rechts. Dann haben wir auch Rücken und Rücken. Ups, ich muss das nochmal so zurückkopieren. Halten Sie die Kontrolle gedrückt, überprüfen Sie, ob alles korrekt ist, alles scheint in Ordnung zu sein Lassen Sie uns das schließen. Lass uns nochmal zum Gewehr übergehen. Ich suche nach Idle Und ich nehme dieses ungenutzte Gewehr und lege es hier hin. Und platziere es wieder, ganz unten. Und wenn das erledigt ist, mach weiter und suche nach einem Gewehr. Und jetzt finde ich einmal das Run-Forward-Gewehr und das sieht richtig Und lassen Sie uns es vorne, links, vorne, rechts platzieren. Und dann haben wir links und rechts. Und wir haben die Rückseite links und hinten rechts, und wir haben die Rückseite auf beiden Seiten. Und ich werde die Kontrolle behalten und überprüfen, ob alles richtig aussieht. Es sieht richtig aus. Lass es uns schließen. Das letzte ist das Walk-Gewehr. Auch hier suche ich nach dem Leerlauf, ziehe es das Gewehr runter und platziere es ganz unten Lassen Sie uns noch einmal weitermachen und nach einem Gewehr suchen. Und jetzt brauchen wir den Walk One. Gehen wir zum Walk Forward. Leg es hier hin und lass es uns überprüfen. Das ist richtig. Dann vorne, links. Vorne rechts, und wir haben links. Wir haben die Rechte. Dann haben wir die Bccrights Wir haben auch Rücken auf beiden Seiten. Ich werde noch einmal kontrollieren, nur um zu überprüfen, ob alles richtig aussieht und alles richtig zu sein scheint. Lass uns alles speichern. Lassen Sie uns es schließen. Und jetzt sind das Gewehr und die Pistolen fertig. Gehen wir zur nächsten Lektion über und machen den Zielversatz. 79. 7.03 Ziel-Offsets mit Pistolen: Lassen Sie uns nun weitermachen und den Zielversatz durchführen. Jetzt hast du das schon einmal gemacht. Versuche das nochmal ohne mich zu machen. Das ist eine nette Übung. Und wenn du dich nicht erinnern kannst, lass uns weitermachen und das zusammen machen. Klicken wir mit der rechten Maustaste hier, gehen wir zu Animation und dann zu Legacy. Und wähle sie aus, Offset one D, lass uns den Charakter auswählen. Nennen wir es O für einen Offset. Und lass uns ducken. Und nennen wir das eine Pistole. Und lass uns darauf doppelklicken. Für diesen ist die horizontale Achse die Richtung. Sie können auch einfach auf die andere klicken , um zu sehen, was Sie getan haben. Also machst du das Gleiche. Es ist nicht wirklich gut, verschiedene Dinge in demselben Spiel zu tun . Es ist also immer schön , einfach dasselbe zu tun. Wenn Sie es hier Richtung genannt haben, versuchen Sie, es auch hier Richtung zu nennen, anstatt Richtung zu bewegen und so weiter. Versuchen Sie also, dasselbe zu tun. Sie haben also Konstanz in Ihrem Spiel -90 und ich denke, die Mängel bleiben einfach die gleichen Alles sieht gut aus. Die Gewichtsgeschwindigkeit habe ich auf 5,5 eingestellt. Ich klicke auf die Pistole und stelle die Gewichtsgeschwindigkeit ebenfalls auf 5,5 Ich werde jetzt alles speichern. Lass uns nach dem Offset mit der Hockerpistole suchen. Wenn ich nach einer Pistole suche und runter zum Am-Offset gehe und das sind die Die mittlere werde ich halten und Shift gedrückt halten und sie hier unten platzieren Dann haben wir oben und ich werde die Kontrolle behalten, um zu sehen, ob alles richtig aussieht. Das ist in Ordnung. Lassen Sie uns es schließen. Ich klicke mit der rechten Maustaste auf Animation Legacy Am. Offset eins. D. Wähle dein Skelett aus und nenne das 10-Stand-Pistole. Lass es uns wieder öffnen. Nennen wir es Richtung mit einer Gewichtsgeschwindigkeit von -90 auf 95,5 Und lassen Sie uns wieder nach einer Pistole suchen. Diesmal ist es die Standpistole, die mittlere werde ich in die Mitte stellen Dann haben wir das Unten und dann haben wir das Oben. Und Sie können das Etikett auch hier sehen. Wir haben das Unten, wir haben das Oben. Es sieht alles gut aus. Speichern wir alles und fahren wir mit der nächsten Lektion fort. 80. 7.04 Ziel-Offsets für Gewehre: Okay, jetzt fehlt uns nur noch das Gewehr. Zielt nochmal versetzt, versucht es zum Üben alleine zu machen . Und wenn du dich wieder nicht erinnern kannst, lass uns weitermachen und es gemeinsam machen. Klicken wir mit der rechten Maustaste auf Animation. Wählen Sie Legacy und zielen Sie mit Offset ein D. Und lassen Sie uns unser Skelett auswählen und es, nennen wir es Crouch Rifle In diesem Fall doppelklicke ich, nenne es Richtung für den Minimalwert -90. Für den Maximalwert ist es Die Gewichtsgeschwindigkeit beträgt 5,5. Lassen Sie uns dieses Mal nach einem Gewehr suchen, damit sie versetzt sind. Das ist das in der Hocke. Wir brauchen den Crouch Offset. Ich werde dieses Zentrum angreifen und es hier hinstellen. Dann haben wir das Unten, dann haben wir das Oben. Das hier sieht nett aus. Nun, die Animation selbst sieht seltsam aus. Ich meine, er ist wirklich verbogen und das sieht so komisch aus. Aber das sind nur die Animationen als ob es nicht deine Schuld ist, wir machen nichts falsch. Es ist nur die Animation , die so gemacht ist. Wenn ich bessere Animationen hätte, würde ich sie dir geben. Leider habe ich nicht wirklich bessere Animationen. Vielleicht lasse ich in Zukunft jemanden alles individuell machen. Aber im Moment ist das das Beste, was wir tun können. Alles sieht gut aus. Jetzt schließen wir es. Und lassen Sie uns erneut mit der rechten Maustaste klicken. Gehe zu Animation und Legacy, hier werde ich sagen, wähle das Skelett aus. Nenn es AO-Standgewehr. Doppelklicken wir hier und nennen es Richtung. Dann für den Minimalwert -90 für das Maximum 90, für das Gewicht, Geschwindigkeit 5,5 Und lasst uns nach Gewehr suchen und dann können wir jetzt das Standgewehr auswählen, das ist Dann haben wir den Down. Und dann haben wir die alte Steuerung , um zu überprüfen, ob alles korrekt ist und alles gut aussieht. Okay, lass uns alles speichern. Lass es uns schließen. Und jetzt haben wir auch das Ziel verschoben. Lassen Sie uns in der nächsten Lektion weitermachen. 81. 7.05 Misch-Posen von Bool: Jetzt sind wir bereit, zum Animations-Blueprint zurückzukehren und dort etwas zu arbeiten Lass uns auf den Player-Ordner Animationen klicken und den Animations-Blueprint öffnen Jetzt möchte ich, dass du hier auf das Animationsdiagramm klickst Also sind wir hier drin. Wie Sie feststellen können, haben wir früher den Offset für den Stand verwendet. Wir haben jedoch den anderen Wert, den Zielversatz, auch für die Hocke verwendet den Zielversatz, auch für die Hocke verwendet Wir haben nur den für den Stand benutzt. Wenn wir in der Hocke sitzen, verwenden wir nicht den richtigen Zielversatz. Um das zu tun Lass uns mit der rechten Maustaste klicken und nach Crouch suchen. Dieser eine Offset-Spieler, wir sind gerade in der Richtung, ich werde sie einfach kopieren Und kopiere diesen , während wir ihn einstecken. Jetzt haben wir das. Aber das Problem ist momentan, dass ich das hier nicht einstecken kann, weil, wie Sie sehen können, nur ein Eingang. Wir müssen etwas finden , das diese beiden Dinge zusammenbringt. Wir können das tun, indem Sie mit der rechten Maustaste klicken und nach Blend Poses suchen. Sie können sehen, dass wir diese beiden Posen durch viele Faktoren miteinander verbinden können diese beiden Posen durch . Sie können all diese sehen. Was wir jedoch brauchen, ist das Mischen von Posen von, Sie können sehen, dass es etwas gibt, das man Blend Poses by Bull nennt. Dadurch ist es möglich, die Posen durch einen Goldbarren miteinander zu vermischen Wenn Sie einen Goldbarren haben , der wahr ist, wird er diese Pose verwenden Wenn es falsch ist, wird es diese Pose verwenden. Wir müssen ihm ein Goldbarren geben. Mit dem Goldbarren wollen wir überprüfen, ob der Spieler gerade hockt oder Wenn der Spieler hockt, verwenden wir den Zielversatz für die Hocke Wenn der Spieler nicht hockt, verwenden wir den Offset für den Stand Machen wir weiter und finden den Goldbarren hier drüben, falls wir das jetzt schon gemacht haben, hockt und läuft Denken Sie daran, dass wir sie zuvor von hier gelöscht haben. Sie werden momentan eigentlich nicht benutzt und sie sind falsch. Lassen Sie uns das löschen Ist hockt und geht. Denken Sie daran, dass wir sie hier mit dem Bewegungsstatus vertauscht mit dem Bewegungsstatus Lasst uns diesen schlagen. Lassen Sie uns von hier wegziehen und sagen, holen Sie sich eine Kopie. Und jetzt können Sie von hier aus ziehen und Letzter Index sagen, und dann können wir das einfügen. Wir überprüfen, ob der Spieler gerade die Ducktaste drückt Wir können von hier aus ziehen und gleich sagen , wenn der letzte Index gleich Hocken ist, was bedeutet, dass der Spieler gerade auf die Ducktaste drückt, dann können wir weitermachen und in die Hocke gehen Jetzt setzen wir es ein, wenn es wahr ist, was bedeutet, dass der Spieler in der Hocke sitzt. Wir wollen dieses Feld verwenden, bei dem der Zielversatz hockt Wir wollen dieses Feld verwenden, bei dem der Wenn der Spieler jedoch nicht in der Hocke sitzt, wollen wir diesen Modus mit dem Ständer verwenden Mach weiter und kompiliere sie und füge sie hier ein. Kompiliere alles. Und ich werde einfach alles hierher verschieben und organisieren. In Ordnung, also ist jetzt alles organisiert. Jetzt können Sie versuchen zu überprüfen , ob das funktioniert. Sie können also auf den Bewegungsstatus klicken. Sie können hier ein Array hinzufügen, dem Array ein Element hinzufügen. Und du kannst es einfach auf Hocken einstellen. Und du kannst sehen, wie es aussieht. Jetzt können Sie tatsächlich sehen, dass es funktioniert. Denn wenn ich es auf Hocken setze, dann hockt es sich. Wenn ich es auf etwas anderes setze, ändert es sich auf Jetzt können Sie sehen, dass es hochgeht, das funktioniert einwandfrei. Denken wir daran, das vorerst zu löschen. Okay. Also das funktioniert richtig. So mischt man Posen, indem man Posen durch Mobbing mischt Okay. Also haben wir noch eine, die wir später benutzen müssen, weil diese nur die unbewaffnete Bewegung ist Wir brauchen auch die Bewegung für Pistole und die Bewegung für das Sie können also sehen, dass es etwas komplexer wird weil wir all das für die Pistole und das Gewehr erstellen müssen für die Pistole und das Wir brauchen noch eins namens Blend Poses by Enumeration. Aber lassen Sie uns zunächst zur nächsten Lektion übergehen und mehr über das Thema erfahren 82. 7.06 Misch-Posen von Enum: In Ordnung, hier sind wir wieder. Diesmal wollen wir diese Methode verwenden , die als Blend Poses by Enumeration bezeichnet Wenn Sie Blend Pose oder Blend Pose schreiben, klicken und schreiben, all jene angezeigt, die mit einem E beginnen . Beginnend mit einem E, das ist eigentlich eine Aufzählung Und das sind nur Aufzählungen , die standardmäßig in Unreal Engine erstellt werden Lassen Sie uns jetzt stattdessen unsere eigene Aufzählung erstellen Lassen Sie mich das alles minimieren Lass uns zu den Enos gehen. Lassen Sie mich mit der rechten Maustaste auf diesen Ordner klicken, zu Blueprint wechseln und eine neue Aufzählungsliste erstellen Aber nennen wir es Waffentyp. Lassen Sie uns weitermachen und die Aufzählung eingeben. Und Sie können jetzt hinzufügen, welche Waffentypen wir haben. Wir haben die Pistole und das Gewehr, aber wir haben auch die unbewaffnete Waffe, weil ich auch die unbewaffnete Bewegung brauche Also werde ich zunächst das Unbewaffnete machen. Und wir können eine für die Pistole machen und wir können eine für das Gewehr machen Auch hier spielt es keine Rolle, in welcher Reihenfolge sie sich befinden. Ob es so ist, du sie geschaffen hast oder so, es spielt keine Rolle. Das heißt, es bedeutet nicht wirklich etwas. Okay. Ich mache es einfach wie eine unbewaffnete Pistole, Mach weiter und spare, das sind die Waffen, die wir haben. Wenn Sie mehr Waffen haben, können Sie sie hinzufügen. Aber lassen Sie uns vorerst alles speichern. Lass uns hier reingehen. Jetzt können wir mit der rechten Maustaste klicken und nach gemischten Posen suchen. Und dann können Sie nach der Aufzählung suchen , die Sie gerade erstellt haben, dem Waffentyp, wir können nach dem Waffentyp suchen Und hier ist es. Und du kannst es jetzt auswählen. Jetzt hast du es hier. Mit dieser Aufzählung können Sie jetzt Posen mischen Wir können mit der rechten Maustaste auf diese Standardpose klicken und dann können Sie eine Stecknadel für das unbewaffnete Ding auswählen und hinzufügen können Sie eine Stecknadel für das unbewaffnete Ding auswählen und hinzufügen. Rechtsklick, Pistole wählen, Rechtsklick, Gewehr wählen Jetzt haben Sie Stecknadeln für alle Bewegungen, die Sie haben, sodass Sie die unbewaffnete Bewegung, die Pistolenbewegung und die Gewehrbewegung Und Sie müssen die Aufzählung eintragen , damit Sie sie entsprechend ändern können Okay, mach weiter und speichere alles. Nun, was wir hier tun müssen, ist, lassen Sie mich zum Spieler zurückkehren, denn jetzt müssen wir eigentlich wissen, was der Spieler gerade ausrüstet Denn wenn du ein Gewehr ausrüstest, müssen wir deine Pose in ein Gewehr umwandeln Wenn ich zur Spielerbasis gehe und einfach eine neue Variable hinzufüge, die wir später verwenden werden, nenne ich diese Waffe ausgerüstete Ich werde diesen Variablentyp zum Waffentyp machen . Wir werden diese ausgerüstete Waffe später verwenden wenn wir festlegen, welche Waffe der Spieler ausgerüstet hat. Und lass uns alles speichern. Ich denke, dieser wird später repliziert. Lassen Sie uns das jetzt replizieren, damit die anderen tatsächlich sehen können , welche Waffe Sie ausgerüstet haben Und lassen Sie uns zum Animationsplan zurückkehren. Gehen Sie hier sogar zur Grafik. Denken Sie daran, dass wir bereits die Referenz für den Spieler haben, also können wir von hier aus ziehen und nach der ausgerüsteten Waffe suchen und diese Variable finden. Was wir jetzt tun können, ist rechten Maustaste in eine Variable umzuwandeln und diese auch als ausgerüstete Waffe zu bezeichnen Mach weiter und verbinde es. Ich werde hier klicken, um einen Knoten für die Umleitung zu erstellen, nur um die Dinge etwas übersichtlicher zu gestalten. In Ordnung, jetzt, wo wir das haben, kompilieren Sie. Gehen wir jetzt zurück zum Animationsdiagramm. Jetzt können wir die ausgerüstete Waffe hier einstecken und uns kompilieren lassen. Für die Standardpose müssen Sie jetzt eine Standardpose haben. Normalerweise füge ich die unbewaffnete Bewegung in die Standardpose ein Für Unbewaffnete musst du dasselbe einstecken. Allerdings kann man das nicht wirklich zweimal so einstecken. Du musst das tatsächlich kopieren und einfügen. Um das Ganze besser zu organisieren, möchte ich die Verbindung trennen. Und deshalb ist es so schön, die Cache-Notizen zu machen , weil Sie nicht alles kopieren und einfügen müssen. Was wir tun können, ist, es einfach hier zu platzieren. Und dann werde ich diesen Cache für unbewaffnete Bewegungen umbenennen diesen Cache für unbewaffnete Bewegungen Ich werde es einfach Unarmed State Machine nennen. Cache für unbewaffnete State Machine. Denken Sie daran, dass dieser als Zustandsmaschine bezeichnet wurde Unbewaffnete Zustandsmaschine Sie sind hier korrekt angeschlossen . Für diesen werde ich tatsächlich Cache und neue Cache-Pose ziehen und sagen . Für diesen werde ich es tatsächlich unbewaffnete Bewegung nennen weil das jetzt die unbewaffnete Bewegung ist, die auch die Zielversätze beinhaltet Diese können wir jetzt einfach hier nehmen und sie hier verwenden, wenn Sie nach einer Armbewegung suchen, nicht nach der unbewaffneten Bewegung der Staatsmaschine, die zwischengespeichert wurde Und jetzt können Sie sehen, wie einfach es ist und wie gut organisiert es Wir müssen das alles nicht wirklich kopieren und immer wieder hier einfügen. Jetzt können wir das einfach kopieren, einfügen und es auch als unbewaffnete Pose verwenden Jetzt müssen wir die Pistole und das Gewehr herstellen Lassen Sie uns das einfach ziehen, hier einstecken, weitermachen und kompilieren . Also hier, was ich jetzt tun kann, ist, auf die Waffe zum Ausrüsten zu klicken. Und sagen wir, ich habe im Spiel ein Gewehr in die Hand genommen. Sie können also sehen, dass es sich ändert. Wir haben jedoch nicht wirklich etwas angeschlossen. Und das sagt diese Notiz. Es heißt, dass die Pose mit Pistole und Gewehr ignoriert wurde , weil wir hier nichts angeschlossen haben Aber wie Sie sehen können, funktioniert es tatsächlich. Und wenn Sie es wieder auf unbewaffnet umschalten, geht es zurück zur unbewaffneten Bewegung Was uns jetzt also fehlt, ist, dass uns hier die Pistole und die Gewehrzustandsmaschinen fehlen die Pistole und die Gewehrzustandsmaschinen Lassen Sie uns also zur nächsten Lektion übergehen und die Pläne für die Pistolenanimation 83. 7.07 Pistolenanimations-Blueprint: Hallo und willkommen zurück. Jetzt sind wir bereit, die Pistolenzustandsmaschine zu machen. Jetzt haben wir also die Unbewaffneten. Ich werde das kopieren. Fahren Sie fort, klicken Sie auf Kopieren und kontrollieren Sie C und kontrollieren Sie erneut V. Und jetzt haben wir das. Ich drücke F zwei, um das umzubenennen, und ich nenne das Pistolenbewegung Jetzt gehe ich in diese Zustandsmaschine und denke daran, die gesamte Bewegung für den Leerlauf zu ändern Bewegung für den Leerlauf Lassen Sie uns weitermachen und das gegen diesen eintauschen. Wenn du nur nach einer Pistole suchst, musst du eigentlich nicht schon suchen Hab sie hier unten unten. Und wir haben die Pistole laufen lassen. Zieh das hier rein. Mach weiter und lösche diesen. Und geben Sie die Bewegungsrichtung und Geschwindigkeit ein. Und mach weiter und schließ es an. Geh zurück zum Spaziergang, jetzt zum Spaziergang. Lass es uns löschen. Lasst uns hier nach der Walk-Pistole Stellen Sie nur sicher, dass Sie den richtigen Blend Space hineinziehen , den Sie erstellt und kompiliert haben Gehen wir jetzt zurück und gehen in die Hocke. Gehen Sie voran und löschen Sie diesen und ziehen Sie ihn für die Hockerpistole hinein und geben Sie die Bewegungsrichtung Mach weiter und stecke das auch ein. Kompilieren Sie, gehen Sie zurück, jetzt haben wir all das. Ich glaube nicht, dass wir an den Übergangsregeln etwas ändern müssen , und das tun wir auch nicht. Jetzt ist alles korrekt. Jetzt zum Sprung, wir müssen hier weitermachen. Nun zum Jump Starts, suchen wir nach Jump. Ich muss den für die Pistole benutzen. Das ist eine Starthilfepistole. Mach weiter und lösche diesen und schließ ihn an. Gehen wir in die Luft und das ist der Sprung, eine Pistole, diese löschen, die Pistole einstecken Die letzte ist Jump End und Sprungpistole, diese hier und stecke sie auch ein Denken Sie jetzt daran, die Übergangsregel für diesen zu ändern , da dort immer noch Jump Start Unbewaffnet steht Wir müssen nach dem Zeitverhältnis suchen und das für die Pistole auswählen Und es weiß automatisch , dass es die Pistole ist, weil wir die Animation der anderen Pistole aktiviert haben . Wir haben es korrigiert Also mach weiter und wähle diesen , das Verhältnis und die Pistole. Und mach weiter und lösche diesen und stecke stattdessen diesen ein Denken Sie daran, wir haben es auch hier unten. Doppelklicken Sie erneut darauf suchen Sie nach dem Verhältnis zur verbleibenden Zeit für die Sprungpistole Löschen Sie diesen und fügen Sie diesen hinzu. Kompilieren Sie jetzt, speichern Sie alles. Lassen Sie uns hier einfach nachschauen, ob wir etwas übersehen haben. Ich glaube nicht, dass wir hier noch etwas haben. Jetzt haben wir die Pistolenbewegung und wir können nur von hier wegziehen und wieder Cache sagen Wir können das als Pistol State Machine Hashed bezeichnen , einfach so Und jetzt haben wir die Pistolenbewegung. 84. 7.08 Gewehranimations-Blueprint: Richtig. Das Letzte, was uns fehlt, ist die Gewehrbewegung Also lass uns weitermachen und die Pistole kopieren, Ted hier. Und lassen Sie uns das in Rifle Movements umbenennen. Lassen Sie mich noch einmal darauf eingehen. Doppelklicken Sie stattdessen auf die Pistole im Leerlauf, um diese Pistole laufen zu lassen. Lass mich das alles einfach löschen. Geh runter, ich werde eigentlich nur nach einem Gewehr suchen, mit dem es viel einfacher sein wird, hier runter zu gehen Wir sehen nur die Zwischenräume des Gewehrs. Das ist das UN-Gewehr. Machen Sie weiter und geben Sie die Bewegungsrichtung und Geschwindigkeit ein und schließen Sie dies ebenfalls Gehen wir zurück zum Spaziergang. Lassen Sie mich diesen löschen. Stecken Sie den Blend ein, für den Spaziergang, für das Gewehr. Schließ die Einfach so. Das Gleiche gilt für die Hocke Mach weiter und nimm den Hocker. Schließ die wieder ein, so. Das Gleiche gilt für den Sprung. Schnellstart, ich suche nach Jump und finde den für das Gewehr Starthilfegewehr, dieses hier. Lösche den alten. Platziere diesen neuen. Jetzt das Gleiche für den Sprung. A, wähle den Sprung, ein Gewehr. Steck das ein Das Gleiche gilt für das Jump End. Nimm das Jump-End-Gewehr und lösche dieses. Steck das Denken Sie daran, die Übergangsregel für das Verhältnis zwischen der verbleibenden Startzeit für das Starthilfegewehr erneut zu ändern die Übergangsregel für das Verhältnis zwischen der verbleibenden Startzeit für das Starthilfegewehr erneut zu Mach weiter und lösche die alte. Wählen Sie diesen aus und dasselbe für diesen. Regel für den Übergang zum Sprungende, Verhältnis zur verbleibenden Zeit für das Jump-End-Gewehr Lösche den alten. Platziere stattdessen diesen. Mach weiter und kompiliere, speichere alles. Und ich denke, wir sind auch mit diesem fertig. Ich schaue nur schnell nach, ich denke, alles ist gut. Gehen wir zurück zum Animationsdiagramm. Lasst uns hier drinnen zuschlagen und nochmal Cache sagen. Und benenne diesen in Rifle State Machine um. Okay, du kannst das ein bisschen mehr organisieren, wenn du willst, aber im Moment ist alles erledigt Lass uns weitermachen und alles speichern. Denken Sie daran, auch zu kompilieren und lassen Sie uns weitermachen. 85. 7.09 Fertigstellung des Animations-Blueprints.: Okay, jetzt ist es an der Zeit, das zu beenden. Wir haben nicht mehr viel übrig, also lasst uns weitermachen und das alles beenden. Was wir jetzt tun müssen, ist, dass wir auch die Zielverschiebungen hinzufügen müssen dass wir auch die Zielverschiebungen hinzufügen Fangen wir mit der Pistole an. Ich werde das einfach wegschleppen. Nimm die Pistole her. Jetzt müssen wir diese Cache-Pose verwenden. Lass uns mit der rechten Maustaste klicken und nach dem Pistolen-Cache suchen. Nimm diesen, die Pistolenzustandsmaschine zwischengespeichert, und benutze ihn. Jetzt müssen wir hier dasselbe tun. Wir müssen mit der rechten Maustaste klicken und nach AO Rauch suchen. Suche nach dem mit der Pistole Am Offset-Spieler Hockerpistole Mach weiter und stecke es hier auch für die Zielrichtung Ich kann diese Variable einfach kopieren und einfügen. Das ist jetzt korrekt. Ich werde für sie eine Offset-Standpistole verwenden. Nimm die mit dem Am-Offset-Player. Geben Sie die Zielrichtung ein, fahren Sie fort und nehmen Sie dieselbe zwischengespeicherte Pose ein und fügen Sie sie auch hier ein Jetzt hast du die für die Hocke und eine für die Standpistole, genau Benutze diese eine Mischung aus Posen von Bool. Ich werde das alles eigentlich einfach kopieren. Wir müssen es nicht wirklich immer wieder schreiben. Also mach weiter und nimm das. Stellen wir das auf Hocken, das ist eigentlich immer noch richtig Stecken wir einfach den wahren ein. Wenn wir hocken, werden wir diesen benutzen. Wenn wir nicht hocken, werden wir diesen benutzen. Mach weiter und kompiliere. Und jetzt werde ich das einfach ein bisschen später organisieren . Im Moment möchte ich das nur anschließen, weil diese etwas größer werden , genau wie dieser hier. Ich werde das nehmen und eine neue zwischengespeicherte Pose speichern, genau wie zuvor, als du sie unun movement cached genannt hast Diese hier nenne ich Pistolenbewegung, einfach so Pistolenbewegung, Und mach weiter und schließ sie hier an. Jetzt werde ich das genauso organisieren wie zuvor. Okay. Jetzt ist es also organisiert. Ich habe gerade versucht, alles zu organisieren. Und jetzt haben wir das Gewehr hier drüben. Wir können es vorerst einfach nach unten verschieben. Ich werde tatsächlich die unbewaffnete Bewegung über die Pistole bewegen , eine solche Versuche, so organisiert wie möglich zu sein , denn wenn du ein großes Spiel erstellst, wird es sehr chaotisch sein , weil so viele Dinge passieren werden Und es ist immer schön zu versuchen, bis zum letzten Mal, wegen der Pistole oder des Gewehrs , organisiert zu bleiben letzten Mal, wegen der Pistole oder des Gewehrs , organisiert Pistole oder des Gewehrs Lassen Sie uns noch einmal, genau wie zuvor, ich klicke mit der rechten Maustaste und suche nach AO Rauch und wähle das für das Gewehr Und wieder aufstehen und wieder das für das Gewehr wählen. Jetzt können wir weitermachen und das Zustandsmaschinengewehr nehmen, Zustandsmaschine zwischenspeichern, es hier einstecken, die Richtung bestimmen und es hier einstecken Wir können das jetzt auch hier eintragen. Stecken Sie es in diese Eingänge. Jetzt sieht alles gut aus. Nochmals, genau wie zuvor, werde ich all diese kopieren. Die Mischung, die hier auch schikaniert. Mach weiter und füge es ein. Verbinde die Hocke. Wenn du hockst, machst du Wenn du nicht in die Hocke gehst, dann tust du das, das ist Und wir können von hier wegziehen und wieder Cache sagen. Wir können eine neue Cache-Pose speichern und diese eine Gewehrbewegung so Cached nennen diese eine Gewehrbewegung so Cached Okay, alles sieht richtig aus . Und lass uns kompilieren. Und ich werde das wieder organisieren genau wie zuvor. Jetzt ist es organisiert. Und ich werde das alles nehmen und es direkt unter den für die Pistole legen , genau wie das hier. Okay? Versuche es so gut wie möglich zu machen. Jetzt haben wir es hier. Wir haben die für die Unbewaffneten, wir haben die für die Pistole und wir haben auch die für das Jetzt können wir alles kompilieren und speichern , nur um sicherzugehen, dass bei der Pistole nichts abstürzt Jetzt können wir ziehen und sagen, wir können das benutzen, jetzt benutzt dieser nur die Bewegung, weil wir anhand der Bewegung bestimmen, ob wir Hocke oder den Stand benutzen sollen Suchen Sie hier nach dem Cache und denken Sie daran, die Pistolenbewegung zwischengespeichert auszuwählen, nicht die Zustandsmaschinen-Bewegung zwischengespeichert nicht die Zustandsmaschinen-Bewegung Dann können wir das Gewehr ziehen und erneut nach dem Cache suchen Und wähle die eine gecachte Gewehrbewegung aus. Mach weiter und organisiere das so gut du kannst. Ich werde das auch ein bisschen nach unten ziehen. Es sieht ein bisschen besser aus, vielleicht so etwas. Und jetzt lass uns kompilieren. Und jetzt können Sie sehen, dass die Notiz weg ist , weil wir alles angeschlossen haben Und wenn ich auf die ausgerüstete Waffe klicke und sie auf Pistole umstelle, funktioniert sie Wenn ich es auf Gewehr umstelle, funktioniert es. Wenn ich es wieder auf unbewaffnet ändere, funktioniert es auch. Jetzt können Sie auch die Mischzeit ändern, wenn Sie möchten. Wir können also sehen, ob Sie all diese erhöhen und versuchen, sie zu ändern Was Sie jetzt tun können ist, wenn Sie zur Pistole und zum Gewehr wechseln, können Sie sofort sehen, wie sich das ändert Was ihr tun könnt, könnt ihr auch diese Zeit erhöhen. Ich kann es zum Beispiel auf zwei erhöhen. Es wird tatsächlich viel langsamer gemischt. Ich erinnere mich daran zu kompilieren, sonst wird es nicht funktionieren. Kompilieren und dann zur Pistole wechseln. Sie können jetzt sehen, dass es viel Zeit dauert , bis es zu diesen Posen wechselt Du kannst versuchen, damit zu spielen. Zum Beispiel 0,0 0,3 vielleicht zwei bis extrem. Lassen Sie uns kompilieren und wählen wir ein Pistolengewehr aus. Vielleicht ist das viel besser. Ich denke, es ist immer noch zu langsam. 0.20 0.20 0.2 Lass uns kompilieren. Wählen wir die unbewaffnete Gewehrpistole aus. Einfach kompilieren und sicherstellen, dass es richtig funktioniert. Ich denke, das ist viel besser. 0,2 statt 0,1 ist viel besser. Jetzt kannst du sehen, dass wir mit der Bewegung fertig sind, und vielleicht können wir diese Bewegung hier in der Mitte platzieren. Das ist der letzte. Und jetzt funktioniert alles. So können wir diese ausgerüstete Waffe später in unserer Spielerbasis jederzeit ändern , wenn wir Waffen plündern Und es wird automatisch, im Ereignisdiagramm, diese Variable hier setzen und sie wird sich im Animationsdiagramm ändern Aber für den Moment setze ich die ausgerüstete Waffe einfach standardmäßig auf „Bewaffnet“, kompiliere alles, speichere alles und schon können wir weitermachen. 86. 8.01 Importieren der Waffen-Assets: Lassen Sie uns nun weitermachen und die Waffenbestände importieren. Kehren Sie dazu zum Epic Games Launcher zurück. Und hier drinnen, lass uns zum Marktplatz gehen. Gehen wir auf dem Marktplatz zu Durchsuchen und dann zu Waffen in Waffen. Du musst auf die kostenlosen Waffen klicken, damit wir einige kostenlose Ressourcen erhalten , die wir für den Kurs verwenden können. Ich habe dieses Spiel namens FPS Weapon Bundle heruntergeladen. Wenn Sie darauf klicken, fahren Sie fort und klicken Sie auf Herunterladen. Wenn Sie es noch nicht heruntergeladen haben, können Sie auf Zum Projekt hinzufügen klicken . Sobald es erneut heruntergeladen wurde, klicken Sie auf Alle Projekte anzeigen und wählen Sie dann unser eigenes Projekt, Counterstrike, Und fahren Sie fort und wählen Sie die Version aus, die mit der neuesten Version kompatibel ist , dieser Es spielt keine Rolle, ob es diese Version ist, mit der sie kompatibel ist, sie wird uns keine Probleme bereiten. Wählen Sie es aus und gehen Sie zu Zum Projekt hinzufügen. Es wird dies zu einem Projekt hinzufügen. Und es könnte einige Zeit dauern. Wenn du es zum ersten Mal tust, gehe ich wieder hierher. Ich werde dieses auch herunterladen, weil dieses Paket hier keine Pistolen enthält Und ich möchte natürlich auch eine Pistole bauen. Du weißt also, wie man mit Pistolen schießt und so weiter Es sind also nicht nur Gewehre. Lass uns auf diesen klicken Und lassen Sie uns diesen erneut herunterladen. Militärische Waffen Doc. Mach weiter und lade es herunter. Du kannst auch dieses verwenden, stattdessen Militärsilber, aber ich werde einfach dieses verwenden. Laden Sie es herunter und fügen Sie es erneut zum Projekt hinzu, klicken Sie auf Alle Projekte anzeigen, wählen Sie unser Projekt aus und wählen Sie die neueste Version aus. Und auch zum Projekt hinzufügen. Dann können Sie sehen, sobald das fertig ist und ich es schließen kann. Sie können in unserem Projekt sehen, dass wir jetzt das FPS-Waffenpaket und wir haben auch das Dokument mit militärischen Waffen. Und bevor ich etwas mache, wähle ich beide aus und ziehe sie dann in den Marketplace-Ordner. Und wähle Hierher verschieben. Und dieser wird einige Zeit in Anspruch nehmen, also werde ich weitermachen, bis er fertig ist. In Ordnung. Also, jetzt wurden sie verschoben, und wie Sie sehen können, den Marketplace-Ordner, habe ich jetzt auch das Militärwaffen-Dock und das FPS-Waffenpaket. Aber wie ihr draußen sehen könnt, habe ich immer noch diesen Ordner mit FPS-Waffenpaketen. Und das könnte dir auch passieren. Sie können sehen, dass sie leer sind. Wenn ich auf meiner Tastatur auf Löschen drücke und Löschen auswähle, werden sie nicht gelöscht. Und das passiert manchmal in einem echten Motor. Also was ich mache, normalerweise speichere ich einfach das Projekt und mache weiter und schließe es. Dann öffne ich die Projektdatei, also ist sie hier drin, der Counter Strike. Und dann öffne ich den Inhaltsordner und dann lösche ich dieses FPS-Bundle. Stellen Sie also sicher , dass es sich bereits auf dem Marktplatz befindet , alle Dateien. Ihr könnt also hier sehen, das FPS-Bundle, es ist leer und es ist nichts drin. Ich weiß nicht, warum es aus irgendeinem Grund nicht gelöscht wird. Lassen Sie uns also weitermachen und diesen Ordner löschen. Und dann kann ich in der Bibliothek weitermachen und mein Projekt erneut ausführen. Und es sollte jetzt gelöscht werden, wie Sie hier sehen können Sobald ich wieder in meinem Projekt bin, ist der Ordner weg, weil wir ihn gerade gelöscht haben. Und im Marketplace-Ordner haben wir das FPS-Waffenpaket und das Dokument mit militärischen Waffen. 87. 8.02 Einrichten der Waffe: Nun, da wir die Waffen importiert haben, wollen wir weitermachen und sie aufstellen Klicken wir mit der rechten Maustaste hier in den Blueprint-Ordner. Und lassen Sie uns einen neuen Ordner erstellen, den wir Waffen nennen Klicken wir mit der rechten Maustaste darauf und legen Sie eine neue Farbe für diesen Ordner fest. Lassen Sie uns erneut diesen Ordner öffnen, rechten Maustaste klicken und zur Blueprint-Klasse wechseln Für diesen Fall werden wir nur einen einfachen Akt erstellen. Denn eine Waffe ist nur ein statisches Ta, das es in der Welt gibt. Es ist keine Spielfigur oder ein Charakter , den du kontrollieren kannst. Und es ist auch keiner von denen, es ist nur ein Schauspieler. Nennen wir das BP Weapon Base. Auch hier werde ich eine Basisklasse erstellen. Und von dort aus können wir schreiben, klicken und Create Child Blueprint Class auswählen Lassen Sie uns für diesen einen AK 47 bauen, damit wir ihn PK 47 nennen können Dann können Sie erneut mit der rechten Maustaste klicken und eine untergeordnete Blueprint-Klasse für diese Klasse erstellen Nennen wir es BP M41. Da ist die andere Waffe. Die letzte ist eine Pistole. Wir können mit der rechten Maustaste auf Create Child Blueprint Class klicken und sie BP-Pistole nennen Lass uns einfach weitermachen und alles speichern. Lassen Sie uns zuerst die Waffenbasis öffnen , denn wir müssen zuerst hier drinnen etwas arbeiten. Hier brauchen wir eine neue Komponente. Die Komponente, die wir benötigen, ist entweder ein statisches Netz oder ein Skelettnetz, da wir das Drei-D-Modell für die Waffe hinzufügen müssen. Wenn Sie nun darauf klicken und nach Mesh suchen, haben wir entweder das Skelettnetz und das statische Netz. Wenn Sie es nicht wissen, besteht der Unterschied darin, dass das statische Netz nur ein statisches Drei-D-Modell ohne Animationen ist . Und wir haben ein Skelettnetz, das ein Drei-D-Modell mit Animationen ist. Wenn du zurückgehst, müssen wir hier nach den Waffen auf dem Marktplatz suchen , wie sie kommen, wenn du das FPS-Waffenpaket öffnest, du öffnest die Waffen und du öffnest Meshes Und lassen Sie uns dieses eine K für sieben öffnen. Und Sie können sehen, dass es ein Skelettnetz ist. Wenn Sie diese rosafarbene Linie sehen oder auch hier nach unten schauen können, steht dort Skelettnetz. Wir müssen es tatsächlich als Skelettnetz hinzufügen. Wir können auch den anderen Ordner überprüfen, nur um sicherzugehen, dass das Dokument über militärische Waffen Waffen öffnet und es auch als Skelettgitter geliefert wird Sie können hier sehen, dass sie Animationen haben. Sie haben Reload-Animationen, Aufnahmeanimationen und so weiter Diese Waffen haben Animationen. Wenn wir zur Waffenbasis hier zurückkehren, klicken wir auf Ad und suchen nach Skelettnetz. Und wähle es hier aus. Und nennen wir es Waffe. Nun, für diese Waffe hier brauchen wir auch eine Kollisionskugel. Weil wir mit der Waffe interagieren müssen. Wenn sie sich zum Beispiel im Boden befindet, müssen wir zu der Waffe gehen und sie plündern Deshalb brauchen wir eine Kollisionskugel damit wir mit ihr kollidieren und einige Aktionen ausführen können Wenn Sie nur nach einer Kollision suchen, können wir sehen, dass wir entweder eine Box-Kollision, eine Kapselkollision oder eine Kugelkollision durchführen können Kapselkollision oder eine Kugelkollision Jetzt sind sie gleich, nur die Form ist anders. Also werde ich einfach eine Kugelkollision für diese auswählen . Und ich werde den Radius dieser Kugel etwas vergrößern. Jetzt ist es im Moment egal, weil wir es später anpassen werden. Wenn wir die Waffen innerhalb des Levels ausprobieren, können wir den Radius festlegen, in dem der Spieler die Waffe plündern kann und so weiter So steuerst du es hier. Aber im Moment setze ich es einfach auf eine Zufallszahl und speichere alles. Lassen Sie uns jetzt die Waffenbasis schließen und zu den Bauplänen für Kinder übergehen Wenn du Waffen öffnest. Und lassen Sie uns die AK 47 hier öffnen. Nun zur Waffe: Wenn Sie darauf klicken, wählen wir das Skelettnetz aus. Wenn du einfach danach suchst, ich weiß nicht warum sie KA 47 heißt, aber du kannst danach suchen und du kannst sie finden und diese auswählen. Und lassen Sie uns den zweiten öffnen. Und du kannst auf Waffe klicken, diese hier öffnen und nach R Four suchen. Du kannst es hier auswählen, dann die letzte, die Pistole, öffnen, auf die Waffe klicken und dann eine Pistole auswählen oder einfach danach suchen und diese hier auswählen Jetzt kannst du sehen, dass sich alle Waffen jetzt hier drin befinden Mach weiter und kompiliere oder alle Pläne. Aber wie Sie hier sehen können, drehen sie sich alle in diese Richtung Das ist eigentlich die falsche Richtung, denn in Unreal Engine ist die X-Achse die Vorwärtsachse Und Sie können hier sehen, dass der rote Drehpunkt hier die Vorwärtsachse ist Die Waffen müssen sich in diese Richtung drehen. Hier biegen sie alle in die falsche Richtung ab. Wie Sie sehen können, müssen wir sie alle drehen, anstatt sie einfach nacheinander so zu drehen . Und wir müssen hierher gehen und es auch umdrehen. Lass uns tatsächlich etwas anderes tun. Denken Sie daran, dass wir eine Waffenbasis haben , die der übergeordneten Blueprint-Klasse entspricht Was auch immer Sie hier drinnen tun , gilt für alle Kinder Wenn du auf die Waffe klickst und das Drehwerkzeug nimmst und es um -90 Grad drehst, kannst du weitermachen und kompilieren Schauen Sie sich jetzt die Pistole M vier an, die AK . Jetzt biegen sie alle in die richtige Richtung ab ist die richtige Richtung, in die sie abbiegen sollten Mach weiter und speichere alles. Ich glaube, das war es für alles. Jetzt, wo wir das haben, ziehen wir sie einfach in das Level und schauen uns an, wie sie aussehen. Ich werde sie nur ein bisschen trennen. Ich werde sie alle auswählen und sie dann hier im Level nach oben verschieben. Auch hier kannst du auf G klicken, um alle Symbole auszublenden, und du kannst sie dir ansehen und alles sieht gut aus. Sie vorerst alles und Speichern Sie vorerst alles und lassen Sie uns weitermachen. 88. 8.03 Erleichterung der Physik: Wie ihr hier sehen könnt, schweben alle Waffen, wenn ich auf Play klicke schweben alle Waffen Wenn ich gehe, sind sie tatsächlich auf der Seite der Terroristen. Wenn ich auf Abspielen klicke und Terroristen auswähle, können wir sehen, dass alle Waffen im Umlauf sind. Wir wollen, dass sie auf den Boden fallen. Anstatt sie so schweben zu lassen. Wir müssen Physik aktivieren. Wenn wir zum Bauplan zurückkehren und bevor ich das mache, werde ich tatsächlich die Anzahl der Spieler reduzieren, die ich auf dem Unterrichtsserver ausspioniere Okay, lass uns zu den Waffen gehen, die Waffenbasis öffnen. Drinnen klickst du auf die Waffe. Sie können hier unter Physik Simulieren Physik simulieren etwas namens Physik simulieren sehen. Aus irgendeinem Grund kann ich jedoch nicht auswählen und ich habe keine Ahnung warum. Aber was Sie tun können, ist diese Ereignisse vorerst einfach zu löschen. Lass es uns im Begin Play hier machen. Lass uns die Waffe nehmen. Lass uns von hier wegziehen. Wenn du einfach den gleichen Namen schreibst du hier siehst, klickst du auf Waffe. Es heißt Simulate Physics. Wenn Sie von hier wegziehen und einfach Simulate schreiben, können Sie sehen, dass es sich um dieses Programm namens Set Simulate Physics handelt. Wenn du es einfach hier auswählst und es verbindest und es einfach auf true setzt, damit es Physik simuliert und weiterkompiliert funktioniert es immer noch nicht, weil die Kollision falsch ist Wenn du auf Waffe klickst und zur Kollision gehst, kannst du sehen, dass es keine Kollision gibt Wenn du auf „ Jetzt spielen“ klickst und den Terroristen auswählst, kannst du sehen, dass er immer noch nicht herunterfällt. Sie fliegen immer noch in der Luft. Schließen wir es und ändern wir es für die Kollision auf Benutzerdefiniert. Im Moment klicke ich einfach auf Kollision ignorieren um vorerst alles zu ignorieren. Ich gehe hierher, um keine Kollision zu vermeiden. Fahren Sie fort und wählen Sie nur Physik aus. Wir wollen nur Physik. Was Abfrage bedeutet. Es bedeutet, ob wir mit der Waffe interagieren können oder nicht. Das brauchen wir nicht wirklich, weil unsere Kollisionssphäre eigentlich nur eine Abfrage ist. Das ist, als würden wir hier kollidieren. Wir machen gerade eine Aktion mit dieser Kollisionskugel. Das ist eine Kollision und du kannst mit ihr interagieren , ohne Physik zu haben. Aber was die Waffe angeht, will ich das nicht, weil wir die Kollisionskugel für diese Waffe bereits haben, wir wollen nur, dass die Physik aktiviert ist. Dann werde ich alles ignorieren. Allerdings musst du die Welt statisch und weltdynamisch blockieren die Welt statisch und weltdynamisch , weil das jetzt der Boden ist. Wenn du alles ignorierst, kannst du sehen, wenn ich auf Jetzt spielen klicke und den Terroristen auswähle, sind die Waffen weg. Das liegt daran, dass du den Boden nicht blockiert hast . Sie fallen durch den Boden. Wir müssen den Boden blockieren, die Welt ist statisch und dynamisch. Fahren Sie fort und kompilieren Sie und klicken Sie auf Spielen und wählen Sie Terroristen aus. Nochmals, ich werde tatsächlich all die nehmen und sie stattdessen einfach so hier haben. sie einfach in der Mitte, damit ich sie schneller sehen kann , wenn ich auf Abspielen klicke, zu Terrorist gehe Du kannst sehen, dass sie jetzt vom Boden blockiert werden und auf den Boden fallen, okay. Jetzt kannst du auch sehen, ob ich als Terrorist oder als Spielfigur auf sie trete. Es passiert wirklich nichts und das liegt daran, passiert wirklich nichts und das liegt daran dass ich nicht mit ihnen kollidiere Wenn du willst, dass die Spielfigur mit ihnen kollidiert, werde ich das nicht innerhalb dieses Projekts tun Wenn du das möchtest, kannst du aber auch auswählen, dass dein Teich, den du kontrollierst, sie ebenfalls blockiert Und das bedeutet, dass du jetzt mit ihnen als Spielfigur interagieren kannst, sodass wir in sie hineinlaufen können und die Kollision funktioniert auch Das können Sie auch tun, wenn Sie möchten. Für dieses Projekt werde ich das jedoch nicht wirklich tun, ich werde das vorerst ignorieren. Jetzt haben wir also Physik aktiviert und wir simulieren Physik für alle Waffen Lassen Sie uns also weitermachen und alles kompilieren und speichern, und lassen Sie uns weitermachen 89. 8.04 Replikation von Schauspielern: Zuvor haben wir Variablen repliziert, aber Sie können auch Blueprint-Akteure replizieren Und das müssen wir tun , damit sie für alle Kunden korrekt angezeigt werden Wenn du die Waffenbasis öffnest und hier in den Klasseneinstellungen siehst du, dass sie auch Replikate genannt werden Und du musst das auswählen, wenn du allen Clients, auf denen diese Waffen angezeigt werden, die korrekten Informationen vom Server anzeigen möchtest , ebenso wie die Bewegungen für die Waffen und so weiter Sie müssen also auf Replikate drücken. Also funktioniert es im Multiplikator. Sie müssen auch die Bewegung replizieren, um sicherzustellen, dass die Bewegung nicht auch um sicherzustellen, dass die Bewegung nervt Das war das Einzige, was man manchmal tun musste , wenn man das vergisst, manchmal macht man Code und man sieht, dass er bei den Clients nicht funktioniert , und man ist verwirrt, warum das so ist Also, aber das liegt daran, dass man auch einen Schauspieler einsetzen muss, den man selbst erstellt, das ist zum Beispiel die Waffenbasis. Und du musst sowohl Replikationen auswählen als auch Bewegungen replizieren. Es funktioniert im Mehrspielermodus. Mach weiter und speichere alles. Wie Sie sehen können, wird er jetzt auch für alle Kinder repliziert, da es sich um den übergeordneten Blueprint jetzt auch für alle Kinder repliziert, da es sich um den Gehen Sie voran und speichern Sie alles, und lassen Sie uns weitermachen. 90. 8.05 Waffenüberlappung: Jetzt sind wir bereit, einige Ereignisse für den Fall durchzuführen , dass wir uns mit der Waffe überschneiden Um es besser zu sehen, kannst du vorerst die Waffenbasis öffnen Wenn du auf die Kugel klickst, kannst du auf dieses eine Versteckspiel klicken Du kannst es entfernen. Und wenn du kompilierst, kannst du die Kollisionskugel im Spiel sehen . Es ist schön, das hier zu sehen. Sie können sehen, wie weit Sie mit der Waffe interagieren können. Du kannst sie jederzeit vergrößern oder verkleinern, je nachdem, welches Spiel du gerade erstellst. Aber es ist immer schön , hier einen Blick hinein zu werfen. Lassen Sie uns einige Interaktionsereignisse durchführen. Was wir hier in der Waffenbasis machen wollen, wir wollen unten auf die Sphärenkollision klicken . Wenn ihr hier im Detailbereich hingeht, könnt ihr diesen Effekt mit dem Namen Component Begin Overlap sehen. Wenn du auf das Plus klickst, wird das Event für dich erstellt. Jetzt steht da, was passieren soll wenn ihr euch mit dieser Kugelkollision überschneidet? Bei diesem muss ich zuerst überprüfen, ob es der Spieler ist, der damit kollidiert Denn wenn Feinde herumlaufen oder etwas anderes damit kollidiert, wird dieser Code tatsächlich ausgelöst Ich möchte sichergehen, dass nur der Spieler mit diesem interagieren kann Der andere Akteur ist der Akteur, mit dieser Kollisionssphäre interagiert. Ich kann direkt von diesem anderen Schauspieler aus sagen Schauspieler ein Tag hat und dann kann ich diese Funktion hier auswählen. Und was diese Funktion aussagt, ist, wenn der Akteur, der mit dieser Sphärenkollision interagiert , dieses spezielle Tag hat, kann ich weitermachen und den Code abfeuern. Ich kann hier eine Abzweigung machen. Wenn das stimmt, hat der Spieler dieses Tag, das wir gleich schreiben werden. Die Ereignisse können hier den Tag auslösen, den wir hier schreiben müssen. Wir müssen dem Spieler ein Tag zuweisen. Wenn du den Player einfach wieder öffnest, Spielerbasis hier, innerhalb von hier in den Klasseneinstellungen. Wenn du im Detailbereich nach einem Tag suchst, kannst du dieses unter Schauspieler sehen Es befindet sich nicht unter den Stichworten. Sie müssen sicherstellen, dass es unter Schauspieler steht. Und du kannst die Tags sehen. Es heißt Schauspieler hat Tag. Es muss unter dem Schauspieler sein. Wenn du auf die Klausel klickst, kann ich diesen einen Spieler nennen. Jetzt haben wir hier ein Tag für diese Blueprint-Klausel hinzugefügt. Wir haben den Tag-Player hinzugefügt. Was wir tun können, ist, zur Waffenbasis zu gehen und einfach zu fragen, ob dieser Schauspieler den Tag-Player hat? Wenn das stimmt, können wir diese Funktionen aktivieren. Jetzt gilt das nur für die Spieler in der Spielerbasis. Sie haben den Tag Player. Und das gilt sowohl für den Terroristen als auch für den Anti-Terrorismus, denn auch hier handelt es sich um sowohl für den Terroristen als auch für den Anti-Terrorismus, die übergeordnete Blauprint-Klausel Lass uns hier aufmachen. Bei Kollisionen hier, bei der Überlappung der Komponenten, musst du immer sicherstellen, dass du es über den Server laufen lässt, um Cheaten zu verhindern Von hier aus ziehen und sagen wir, dass der Switch autorisiert ist und dann können wir den Code von dieser Autorität hier schreiben. Das ist der Server , der immer sicherstellt, dass Sie diesen Code über den Server ausführen Denn wenn Sie das nicht tun, wir an, der Client steht hier und betrügt irgendwie, hat Software heruntergeladen, kann tatsächlich mit der Waffe interagieren , obwohl er hier steht und sie über den Server laufen Der Server überprüft, ob der Spieler tatsächlich damit interagiert oder nicht Okay, von diesem anderen Schauspieler, was wir tun können, ist, dass wir auch ziehen können. Jetzt wissen wir, dass es der Player und jetzt lassen wir ihn über den Server laufen. Wir können von hier wegziehen und sagen, Spielerreferenz abrufen denn denken Sie daran, dass es der Spieler ist, der mit dem Server interagiert. Außerdem haben wir dafür gesorgt, dass Spieler F aus der Benutzeroberfläche abgerufen wird. Zuvor hatten wir die Spielerreferenz, sodass wir weitermachen und sie verbinden können. Doppelklicken Sie hier, um Notizen zur Weiterleitung zu erstellen und das Ganze übersichtlicher zu gestalten Einfach so, Gott, und kompiliere. Und jetzt können wir tatsächlich damit interagieren. Um zu sehen, ob das korrekt ist, können Sie von hier aus ziehen und eine Druckzeichenfolge schreiben. Vielleicht kannst du diesen Player damit verbinden . Mach weiter und sieh nach, ob es raus ist. Wenn du auf „Spielen“ klickst und wir den Terroristen auswählen, dann sind wir nicht auf der anderen Seite der Karte. Wenn ich jetzt rübergehe und mit ihm interagiere, solltest du sehen, dass hier „BP-Terrorist“ steht. Jetzt ist es tatsächlich richtig, wir interagieren damit. Alles funktioniert, also mach weiter und lösche das vorerst, kompiliere und lass uns weitermachen. 91. 8.06 Festlegen des Waffentyps: Bevor wir weitermachen, muss ich jedoch den Waffentyp zu jeder Waffe hinzufügen Und es ist nett, das später zu verwenden, weil es immer schön ist zu wissen, ob es sich bei der Waffe, die man plündert, um ein Gewehr oder eine Pistole handelt Das brauchen wir später für das Inventar, damit wir nicht mehrere Gewehre, mehrere Pistolen usw. plündern mehrere Pistolen kannst du natürlich in deinem eigenen Spiel machen, aber auch überprüfen, ob du zum Beispiel nicht drei Gewehre plündern drei Gewehre Du musst also wissen, ob es ein Gewehr oder eine Pistole ist , die du plünderst, denn im Moment haben wir keine Ahnung, was wir plündern, wir interagieren wir Was wir tun können, ist hier in der Waffenbasis. Bevor wir das tun, gehen wir eigentlich zu den Aufzählungen Und wir haben schon diesen Waffentyp, haben wir tatsächlich schon Gehen wir zurück zur Waffenbasis und fügen wir es hier hinzu. Klicken Sie auf das Plus in den Variablen und schreiben Sie hier einfach den Waffentyp. Für den Typ der Variablen kannst du nach dem Waffentyp suchen, das ist unsere Aufzählung Geh raus und wähle es aus, klicke und kompiliere und speichere alles Das Coole daran ist, dass du es zur Waffenbasis hinzugefügt hast , was die übergeordnete Klasse dieser Waffenpläne ist die übergeordnete Klasse dieser Waffenpläne Wirklich nett ist, wenn du die AK 47 jetzt öffnest und auf die Klassen-Standardeinstellungen klickst, du kannst jetzt den variablen Waffentyp sehen und auswählen, um welchen Waffentyp es sich handelt Wenn du Variablen zur übergeordneten Klasse hinzufügst, sind sie in Kinderklassen nutzbar Sie können jetzt sehen, ob ich die 44 oder die Pistole öffne, ich auf die Klassenstandardwerte klicke, ich kann die Variablen der übergeordneten Klasse sehen Was auch immer Sie hier hinzufügen, kann auch auf alle Kinder angewendet werden jetzt auf die AK klicke, kann ich den Waffentyp als Gewehr auswählen Ich kann jetzt kompilieren. Ich kann zu den vier gehen den Waffentyp auswählen , der auch ein Gewehr sein soll Wenn ich die Pistole öffne, gehe ich zu den Klasseneinstellungen und klicke hier oben und wähle Pistole Mach weiter und kompiliere für all diese Baupläne. Und jetzt können wir sie retten. Ja, jetzt wissen wir welcher Waffentyp für sie alle ist. Das ist eine Pistole, das ist ein Gewehr. Und das ist auch ein Gewehr. Und das müssen wir tun, damit wir wissen, was wir plündern. 92. 8.07 Überprüfen, ob der Spieler die Waffe hat: Lass uns nun etwas erstellen, ein Waffeninventar für den Spieler und prüfen, ob der Spieler die Waffe schon hat Denn ich versuche, ob der Spieler mit der Waffe interagiert, er muss überprüfen, ob der Spieler die Waffe bereits hat oder nicht Wenn der Spieler die Waffe bereits hat, kann er sie nicht plündern Es wird das Gewehr nur plündern , wenn sie noch kein Gewehr haben Und sie werden die Pistole plündern, wenn sie noch keine Pistole sie noch keine Lass uns in der Spielerbasis weitermachen und hier drinnen, lass uns auf das Plus klicken Ich werde eine neue Variable namens Waffeninventar erstellen. Hier suchen wir einfach nach dem Waffentyp oder der Waffenbasis, weil wir die Waffen zu diesem Inventar hinzufügen müssen, sie müssen dem Typ der Waffenbasis entsprechen. Und fahren Sie fort und wählen Sie die Objektreferenz aus. Da es sich jetzt um ein Inventar handelt, lassen Sie mich einfach weitermachen und hier auf das X klicken. Da es sich um ein Inventar handelt, müssen wir es von einer einzelnen Variablen in ein Array ändern. Denken Sie daran, ein Array ist wie eine Box, zu der Sie Dinge hinzufügen. Wir müssen die verschiedenen Waffen hinzufügen, die Sie geplündert haben Du kannst sehen, ob ich auf das Plus klicke. Jetzt kann ich hier nicht auswählen, weil es die übergeordnete Klasse ist. Und wir können hier nicht wirklich einfach Dinge automatisch hinzufügen . Aber du kannst sehen dass du das Gewehr und die Pistole während des Spiels hinzufügen kannst Sie können diesem Inventar mehrere Waffen hinzufügen. Aber für uns wollen wir zum Beispiel ein Gewehr und eine Pistole hinzufügen zum Beispiel ein Gewehr und eine Pistole Und du kannst eine Schrotflinte und so weiter für dein Spiel haben. Aber im Moment haben wir nur das Gewehr und die Pistole. Mach weiter und lösche es vorerst einfach. Das war nur ein Beispiel. Gehen wir zurück zur Spielerbasis. Nun können wir von der Spielerbasis aus, da wir die Referenz bereits haben, da wir die Referenz bereits haben, von hier aus ziehen und das Waffeninventar durchsuchen und wir können das Array abrufen. Nun zu dieser Reihe wollen wir das gesamte Inventar durchgehen und prüfen, ob der Spieler ein Gewehr hat, das wir von hier aus ziehen können, und zwar für jede Schleife mit Bremse. Und du kannst weitermachen und das auswählen Jetzt kannst du die Waffen durch diesen Spin sehen, wenn du die Maus darüber hältst. Jetzt ist es ein einzelnes Element. Es ist die BP-Waffenbasis. Es wird jede einzelne Waffe hier drin nehmen und den Code durchgehen, dieses Array durchgehen und du kannst etwas damit machen. Wir versuchen nun zu überprüfen, ob der Spieler diese Waffe, mit der er interagieren möchte , bereits besitzt . Was wir tun müssen, ist jede der Waffen im Inventar, die wir von hier herziehen müssen, zu nehmen Inventar, die wir von hier herziehen müssen, zu und ihren Waffentyp zu überprüfen. Denkt daran, dass ihr gerade diesen einen Waffentyp hergestellt habt, also könnt ihr ihn hier nennen. Jetzt durchläuft es jeden von ihnen. Du nimmst den Waffentyp, du fragst hier nur, ziehst und sagst gleich, ob dieser Waffentyp in deinem Inventar dem Waffentyp entspricht , den du plündern willst Und wir können einen Zweig anlegen, wenn das stimmt, dann kannst du die Waffe nicht plündern Wir müssen es später tun, damit du die Waffe nicht plündern kannst. Wenn es jedoch falsch ist, können wir es tatsächlich plündern. So machst du es. Jetzt müssen wir replizieren, weil der Kunde auch diese Information sehen muss, welche Art von Waffe Sie haben Ich wähle „Es replizieren“ aus. Fahren Sie fort und kompilieren und speichern Sie alles. Jetzt können Sie hier sehen, dass wir das Waffeninventar durchführen. Wir versuchen zu überprüfen, ob der Spieler die Waffe bereits hat. Wir nehmen den Waffentyp mit der Waffe im Inventar. Und wir prüfen, ob dieser Waffentyp dem entspricht , den wir plündern wollen. Wenn das stimmt, können wir die Waffe nicht plündern weil wir die Waffe bereits im Inventar haben Wenn es falsch ist, können wir die Waffe plündern. Okay, das mit Pause, wir können es später benutzen. Ich kann erklären, was das bedeutet, aber vorerst können wir jetzt alles speichern und mit der nächsten Lektion fortfahren. 93. 8.08 Plündern der Waffe: Lassen Sie uns nun weitermachen und es dem Spieler ermöglichen, die Waffe zu plündern Jetzt haben wir überprüft, ob sich die Waffe im Inventar befindet. Wenn das stimmt, lassen Sie uns zuerst in der Spielerbasis weitermachen und ein neues Goldbarren herstellen, und ich nenne es Beutewaffe Ich werde es in ein Goldbarren umwandeln. Lassen Sie uns es in eine einzelne Variable statt in ein Array ändern . Lass uns kompilieren. Dieser wird nun wahr sein, wenn der Spieler die Waffe plündern kann Und es wird falsch sein, wenn der Spieler es nicht kann. Was ich tun werde, ist, es als Standard festzulegen. Der Spieler kann die Waffe also standardmäßig plündern, es sei denn, wir finden hier im Inventar, dass der Spieler standardmäßig bereits eine Waffe hat Mach weiter und setze es auf wahr. Speichern wir alles und gehen wir jetzt zur Waffenbasis. Jetzt können wir uns wieder von diesem Spieler trennen und nach diesem verlorenen Waffenbarren suchen Wir werden es hier aufstellen. Wenn wir diese Waffe finden , die wir plündern wollen, wenn wir sie im Inventar finden, werden wir sie reparieren. Das ist standardmäßig wahr, aber wir werden es so einstellen, dass der Spieler die Waffe nicht plündern kann, wenn wir sie tatsächlich im Inventar finden In dieser Schleife wird sie nicht im Inventar des Spielers gefunden , es wird nur für alle Gegenstände, die sie durchsucht, ein Fehler sein alle Gegenstände, die sie durchsucht Am Ende, wenn die Schleife abgeschlossen ist, ist diese immer noch wahr. Wenn wir keine Waffen gefunden haben, ist es immer noch wahr. Also können wir weitermachen und die Waffe plündern , die wir aus dieser Waffe ziehen können Jetzt nochmal, und ich kann nach der Waffe suchen. Je nachdem, ob das wahr oder falsch ist, können wir hier etwas unternehmen, wenn es abgeschlossen ist Zuerst werden die Elemente einfach in einer Schleife durchsucht. Und danach werden wir überprüfen, ob diese Waffe zum Plündern jetzt falsch oder wahr ist Jetzt werde ich das ein bisschen organisieren. Ich werde hier einen hinteren Felsknoten hinzufügen und ihn hier einstecken. Falls das wahr ist und der Spieler die Waffe tatsächlich plündern kann, gehen wir stattdessen der Spieler die Waffe tatsächlich plündern kann, in der Spielerbasis weiter und gehen wir hier runter. Ich werde Click schreiben und ein neues benutzerdefiniertes Event erstellen. Nennen wir das wieder eine Los-Waffe. Ich lasse es einfach über den Server laufen. Ich stelle nur sicher, dass es jetzt schon über den Server läuft. Weil du dich daran erinnerst es über die Behörde laufen lässt. Es läuft bereits über den Server. Ich möchte es jedoch einfach so machen, damit ich konsistent bleibe. Du kannst diesem Server einfach sofort eins schreiben. Du musst das nicht tun , weil wir den Server bereits für dich durchgehen. Sie können diesen einfach verwenden, wenn Sie möchten, aber ich möchte einfach, dass mein Code konsistent bleibt. Ich werde es hier über den Server laufen lassen. Nochmals, ich ziehe von diesem und lasse diesen so über den Server laufen . Dann werde ich meinen Code hier drüben schreiben. Auch hier kannst du einfach einen Code schreiben, wenn du willst, aber wenn du ihn in Zukunft nicht über den Server laufen lässt, musst du ihn hier durchspielen. Jetzt haben wir das geschrieben. Nun, was wir tun wollen, wenn wir die Waffe plündern, wir wollen diese geplünderte Waffe einfach dem Inventar hinzufügen Wir nehmen dieses Waffeninventar und sagen, Array-Element setzen Weil wir es dem Inventar hinzufügen wollen, Sie gefragt, zu welchem Index Sie es hinzufügen möchten. Ich möchte es nur zu dem Index hinzufügen , der verfügbar ist. Also werde ich von hier aus Regie führen und Länge sagen, dann füge ich es hier hinzu. Denken Sie daran, dass Arrays mit dem Index Null beginnen und dann bis 123 gehen und so weiter Wenn Sie von hier ziehen und sagen, letzter Index jetzt, ist der letzte Index drei, oder dieses Array hier. Wenn du diesen letzten Index nimmst und ihn hier einfügst, überschreibst du tatsächlich jede Waffe, die sich im Index von drei befindet Wenn du den letzten Index verwenden willst, musst du den letzten Index nehmen und plus eins sagen Sie suchen den letzten Index und fügen dann tatsächlich die neue Waffe hier im Index vier hinzu, die Sie hier einstecken können. Jetzt besteht eine bessere Methode darin, einfach die Länge zu ermitteln. Die Länge ist 1234. Es wird es tatsächlich zum Index von vier hinzufügen. Wir müssen das nicht hier machen. Deshalb verwende ich Länge. Es wird vier ausgeben. Und du kannst das auch sehen , wenn du einfach eine Print-Zeichenfolge schreibst und diese mit hier verbindest. Es ist immer nett, Print-Zeichenketten hinzuzufügen. Wenn Sie Werte für das, was Sie tun, überprüfen möchten füge ich sie diesem Index hinzu. Nun, welchen Artikel wollen wir hinzufügen? Es ist die Waffe, die wir hinzufügen wollen. Nun, wir haben nicht wirklich irgendeinen Bezug zu der Waffe. Lassen Sie uns das tun. Lassen Sie uns hier bei diesem Ereignis auf Verlust klicken. Und lasst uns nach einer Waffenbasis suchen. Und wählen wir es hier aus und nennen es eine Waffe. Sie können es auch als geplünderte Waffe bezeichnen, wenn Sie es als Waffe verwenden möchten. Und dann werde ich es von hier aus nehmen und es in diese Veranstaltung einbauen Und jetzt können wir es hier in der Waffenbasis verwenden. Wenn Lot Weapon wahr ist, dann wollen wir es von der Spielerbasis hierher nehmen und nach Lot-Waffen suchen. So haben wir es genannt. Gehen Sie weiter und wählen Sie es aus und Sie können es jetzt wieder hier verbinden. Ich klicke, um neu geschriebene Notizen zu machen, damit es etwas besser lesbar ist. Einfach so. Jetzt wird es dich fragen, was ist die Waffe? Was ist die Variable dafür? Nun, du definierst das so, dass du dich innerhalb der Waffenbasis befindest, wenn du einfach zuschlägst und selbst schreibst, weil es die Waffe ist, mit der du interagierst. Wenn du hier mit dieser Waffe interagierst, weiß sie, dass es die 41 weil es die ist, mit der du interagierst. Und wenn Sie selbst als Referenz angeben, weiß sie, dass diese Waffe tatsächlich die einzige Blauprint-Klausel hier unten ist die einzige Blauprint-Klausel hier unten Wenn eine Waffe als falsch bezeichnet wird, kann sie eine Waffe plündern. Das bedeutet, dass du die Waffe nicht plündern kannst , weil sie die Waffe irgendwann tatsächlich im Inventar gefunden hat und du sie nicht plündern kannst Wenn es nun die Waffe im Inventar, sagen wir zum Beispiel, im ersten Index findet , hat es die Waffe tatsächlich gefunden Und es macht keinen Sinn , alle anderen Waffen durchzugehen , weil es die Waffe bereits gefunden hat und du sie nicht plündern Wie dem auch sei, das ist es, was diese Pause bedeutet. Ich möchte den Kreislauf durchbrechen. Ich möchte dieses Array nicht mehr durchgehen. Wenn ich die Waffe im Inventar finde und ich die Waffe „Kann plündern“ auf „Stürze“ einstellen kann Ich möchte das eigentlich ziehen und es kaputt machen lassen. Ich kann jetzt doppelklicken und einige Notizen vorlesen, damit es leichter zu lesen ist. Ich meine, wenn Sie diese Waffe im Inventar finden, machen Sie weiter und durchbrechen Sie den Kreislauf. Weil es keinen Sinn macht, alle Gegenstände durchzugehen , wenn ich den Gegenstand bereits gefunden habe und ich ihn sowieso nicht plündern Es wird also kaputt gehen und das kann plündern, Waffe wird herunterfallen Also wirst du nichts plündern, weil wir hier keinen Code haben Aber denk dran, du musst diesen Wert erneut auf wahr setzen , weil er wahr ist Standardmäßig muss es wahr sein. Das wird ausbrechen, wenn du das nächste Mal mit einer Waffe interagierst. Es wird standardmäßig falsch sein, weil du nicht daran gedacht hast, es auf wahr zu setzen. Standardmäßig wird es falsch sein. Und obwohl du eine Waffe plündern kannst, obwohl sie nichts gefunden hat, wird diese falsch sein Wenn du das nächste Mal eine Waffe plünderst. Denken Sie daran, wieder von hier zu ziehen und erneut nach kann eine Waffe und ein Set verloren gehen zu lassen und denken Sie dann daran, es wieder auf wahr zu setzen Standardmäßig kannst du, wann immer du in Zukunft wieder mit einer Waffe interagierst , diese auch setzen, aber du kannst sie auch plündern wenn du sie nicht im Inventar hast Ich kann das auch einfach anklicken und hierher ziehen , es wird tatsächlich viel besser aussehen So etwas in der Art. Jetzt sollte es also wahr sein, Sie können weitermachen und alles erneut kompilieren. Denken Sie daran, wenn Sie es wie ich gemacht haben, machen Sie weiter in der Spielerbasis und im Inventar, ich werde all die hier löschen, die ich nur gemacht habe, um zu demonstrieren, dass das Waffeninventar standardmäßig nichts enthalten sollte. Mach weiter und speichere alles. Und jetzt zu dieser Waffe. Lassen Sie uns sie hier aufgreifen, sie ein bisschen besser organisieren. Und was Sie jetzt tun können, Sie können diese Waffe anschließen, weil wir sie hier als Selbstreferenz definiert haben. Jetzt kannst du nehmen, diese Waffe wird hier durchfahren und sie wird dem Inventar hinzugefügt. Doppelklicken Sie erneut, um sich Notizen zur Route zu machen. Jetzt plünderst du es ins Inventar. Und fahren Sie fort und wählen Sie die passende Größe aus. Es wird sicherstellen, dass es zu diesem Array hinzugefügt wird. Mach weiter und kompiliere. Und jetzt sollte es richtig funktionieren, es zu testen. Um sicherzugehen, ziehen Sie von hier aus und schreiben Sie eine Druckzeichenfolge. Und du kannst immer diesen nehmen, lass ihn uns hier einfügen. Und lassen Sie uns ziehen und sagen, bekommt eine Kopie. Und wir können immer den Index Null bekommen, denn das ist, denken Sie daran, dass er in Arrays mit dem Index Null beginnt Wir ermitteln den Index Null und stellen sicher, dass wir die Waffe tatsächlich plündern Das. Und füge es der Zeichenfolge hinzu, damit es den Namen der Waffe kennt. Jetzt werden wir den Namen der Waffe , die wir geplündert haben , auf den Bildschirm drucken , alles kompilieren und speichern Und lassen Sie uns sicherstellen, dass alles funktioniert. Lass uns auf Play klicken. Wählen Sie Terroristen aus Und wenn ich hier reinkomme , wird dort AK 47 stehen, wie Sie hier sehen können. Nun, die eine ist nicht wirklich wichtig, es ist nur die Nummer für diesen Bauplan Den können wir nehmen. Jetzt können Sie sehen, dass ich nicht damit interagieren kann, weil ich bereits ein Gewehr in meinem Inventar habe Wenn ich jetzt noch einmal spiele und den Terroristen auswähle und die 41 durchgehe, wird die 41 auf dem Bildschirm hier oben gedruckt Wenn ich jetzt die Pistole durchgehe, weil Sie sie für das K sehen können, druckt sie nichts, weil ich bereits ein Gewehr habe , das einwandfrei funktioniert Wenn ich jetzt die Pistole durchsehe, sollte sie sie drucken. Und Sie können sehen, dass es gedruckt wird aber es druckt den falschen Namen Und denken Sie daran, dass wir für die Druckzeichenfolge nur den Index Null drucken, also nur die 41. Einfach laut, es kann es immer auf Index eins setzen und schon wird die Pistole gedruckt Wenn Sie nun alles in diesem Inventar ausdrucken möchten , um zu sehen, was sich darin befindet, ziehen Sie immer von hier aus und sagen Sie für jeden Loop, dass Sie jetzt das gesamte Array durchgehen und den Loop verbinden können Und dann können Sie jeden einzelnen Namen des Elements auswählen , das sich darin befindet, und Sie können ihn als Zeichenfolge drucken. Ich kann zum Beispiel die AK abholen. Dann können Sie sehen, dass es auf den Bildschirm gedruckt wird. Ich kann zur Pistole gehen und jetzt werden sowohl die AK als auch die Pistole auf den Bildschirm gedruckt sowohl die AK als auch die Pistole auf den Es funktioniert so, wie es soll. Lassen Sie uns alles speichern und mit dem nächsten fortfahren. 94. 8.09 Erstellen des Waffensockels: Bevor wir die Waffe an den Händen des Spielers befestigen können, müssen wir einen Sockel erstellen Denken Sie daran, dass wir zuvor einen Socket erstellt haben. Als wir die Spielerkamera erstellt und diese Kamera am Kopf des Spielers befestigt haben, müssen wir einen weiteren Anschluss hinzufügen, über den wir die Waffe an der Hand des Spielers befestigen können. Gehen wir zum Marketplace-Ordner und gehen wir zum Militärcharakter Silva , um uns das Skelett hier anzusehen. Denken Sie daran, das ist die Kamera, das ist der Anschluss für die Kamera, die wir zuvor hinzugefügt haben Was wir jetzt tun müssen, ist , eine Buchse für die Hand des Spielers hinzuzufügen , damit er die Waffe für die Hand halten kann , richtig? Hier hält man normalerweise eine Waffe. Es an deiner rechten Hand zu haben. Für die Hand, richtig, ich kann mit der rechten Maustaste klicken und hier einen Sockel hinzufügen. Ich werde auf zwei klicken, um es umzubenennen. Und ich werde es Rifle nennen. Jetzt werde ich einen Sockel für ein Gewehr und einen Sockel für die Pistole hinzufügen Gewehr und einen Sockel für die Nun, ich habe vorhin versucht, einfach einen für die Waffe hinzuzufügen. Waffe und ich könnte die Pistole und das Gewehr dazu hinzufügen . Position in der Hand ist jedoch unterschiedlich Es ist viel besser, einen für das Gewehr und einen für die Pistole hinzuzufügen einen für das Gewehr und einen für die Pistole Es sieht viel besser aus, wenn Sie ein S-Gewehr wählen. Lassen Sie uns eine Vorschauanimation hinzufügen damit wir tatsächlich sehen können, wie es aussieht , wenn ich einfach nach einem Gewehr suche und dann nach einem davon suche Zum Beispiel die Animation Idle Rifle. Ich werde diese Animation bis zum ersten Bild anhalten , damit sie still ist und sich nicht bewegt Und ich kann die Buchse anpassen. Wenn ich auf das Sockelgewehr klicke, kann ich jetzt mit der rechten Maustaste klicken, um eine Vorschau D hinzuzufügen. Lass uns einfach weitermachen und zum Beispiel die 41 hinzufügen, oder sie heißt R Four, eigentlich hier drüben, und sie auswählen Jetzt können wir eine Vorschau anzeigen und den Sockel anpassen. Also mach weiter und klicke auf den Socket. Und fahren Sie fort und wählen Sie das Rotationswerkzeug aus. Und jetzt können Sie es auf diese Weise um 90 Grad drehen. Und ich versuche nur, es an die Hand anzupassen , damit es besser aussieht. Ich werde meine Kamerageschwindigkeit reduzieren. Es ist viel zu schnell. Jetzt siehst du den einen Fehler hier, du kannst versuchen, die Buchse einzustellen. Im Moment ist der einzige Fehler bei diesem Charakter, dass er das Gewehr tatsächlich so hält Es sieht komisch aus , weil er hier nach vorne schießen wird hier nach vorne schießen Wenn ich vor ihm stehe, schießt er tatsächlich in die Luft, obwohl er auf mich schießen sollte . Das ist ein bisschen falsch auf der Animationsseite. Du kannst wirklich nichts dagegen tun. Lass uns versuchen, es so gut wie möglich zu machen. Diese Rotation sollte eigentlich so sein, das sollte ein Vorwärtsschießen sein. Wir werden das Einrasten für die Rotation entfernen. Und ich versuche, es so gut wie möglich nach vorne zu richten Sie können auch zur rechten Ansicht wechseln. Gehe tatsächlich zur Vorderansicht. Für die Vorderansicht können Sie auch hier die Waffe so gut wie möglich drehen. Hier ist sie. Vielleicht ist es besser zu sehen, wie er so vorwärts strebt. Du kannst zur Perspektive zurückkehren und sie dir ansehen, sicherstellen, dass er nach vorne zielt und alles gut aussieht, vielleicht so etwas. Dann kannst du weitermachen und versuchen, es in die Hand des Charakters zu legen , so etwas in der Art. Versuche einfach so gut wie möglich, es korrekt in der Hand des Charakters zu platzieren . Zum Beispiel diesen Auslöser hier drüben zu haben und dafür zu sorgen, dass er ihm nicht so durch die Finger geht wie hier. Ich versuche, es ein bisschen vorwärts zu bewegen, es aber immer noch in der Hand des Spielers zu haben. Jetzt kannst du es nicht wirklich perfekt machen. Wenn das ein ernsthaftes Projekt wäre, sollten die Charaktere so gestaltet werden, dass sie diese Waffe richtig halten. Die Waffe und der Charakter passen zusammen. In Counterstrike zum Beispiel entwerfen sie es so Aber hier ist es nur ein zufälliger Charakter, eine zufällige Animation. Mit zufälligen Waffen. Du kannst nicht erwarten, dass das zu 100% machbar ist. Wir versuchen nur, es so gut wie möglich anzupassen. Also, dieser sieht gut aus. Alles sieht toll aus. Ich kann einfach versuchen, es ein bisschen zurückzuziehen, einfach so. Alles sieht toll aus. Er hält jetzt die Waffe in der Hand. Und du kannst sehen, wenn ich es animiere, wird es so aussehen. Sieht toll aus Jetzt musst du es mit dem anderen Gewehr testen. Nur um sicherzugehen, klicke ich mit der rechten Maustaste darauf und entferne alle angehängten Assets Ich werde bei der Überprüfung erneut mit der rechten Maustaste klicken. Lassen Sie mich jetzt die KA für sieben hinzufügen. Lassen Sie mich die AK hinzufügen. Sie können sehen, dass die AK leicht durchschneidet Ich werde es so weit wie möglich nach oben verschieben , ohne dass es so etwas buchen Jetzt wird es hier leicht durchkommen, aber was auch immer, wir können nicht wirklich viel dagegen tun. Diese Waffen sind nicht für diese Animationen konzipiert. Wir können nicht zu 100% genau sein. Aber so etwas hier. Und wieder kann ich das Gewehr auswählen, es richtig lutschen, um es so weit wie möglich nach unten zu bewegen , ohne dass es fehlerhaft aussieht, ungefähr so Vielleicht ist das das Beste, was ich tun kann. Wenn Sie einfach mit der rechten Maustaste klicken, angehängte Asset entfernen und erneut mit der rechten Maustaste klicken. Fügen Sie das AR Four als Vorschau hinzu, nur um sicherzugehen, wie es aussieht. Es geht ein bisschen weiter nach oben. Aber das ist das Beste, was wir für diese Waffe tun können. Beispiel können wir sie nicht wirklich besser platzieren , weil sie auch bei der AK einen Bug auslösen wird. Jetzt können wir durch das Eis dieses Charakters schauen das Eis dieses Charakters und sicherstellen, dass die Rotation korrekt ist. Ich glaube, es ist ein bisschen auf die falsche Seite gedreht. Ich werde nochmal auf die Buchse klicken und ich werde sie gedrückt halten und dann hier in diese Richtung drehen. Ich glaube, es ist vielleicht ein bisschen geneigt. So etwas in der Art. Und es sieht viel besser aus. Okay, das war es. Ja, alles sieht gut aus. Jetzt, nur um sicherzugehen, werde ich nochmal mit der rechten Maustaste darauf klicken. Entferne es. Ich werde wie beim letzten Mal mit der rechten Maustaste auf die AA 47 klicken wie beim letzten Mal mit der rechten Maustaste auf die um sicherzugehen, dass alles korrekt ist. Was wir jetzt tun können, ist es immer ein bisschen weiter in diese Richtung zu ziehen. Es nervt hier nicht durch den Griff. So etwas in der Art. Okay, jetzt sieht es besser aus, alles sieht gut aus. Jetzt kannst du es immer leicht nach oben und unten einstellen. Ich finde es sieht gut aus. Lass uns jetzt alles speichern. Jetzt musst du daran denken, das auch dem anderen Skelett hinzuzufügen , aber lass uns zuerst die Pistole hinzufügen Bevor wir das tun, gehen wir jetzt zur Vorschau. Oder keine Vorschauen. Vorschau der Animation anzeigen Und lassen Sie uns jetzt nach einer Pistole suchen, lassen Sie uns eine der Pistolen-Animationen nehmen Und ich werde hier einfach dieses eine Pistolen-Idol auswählen. Lass es uns bei der ersten Animation posieren. In diesem Fall werde ich nun alle angehängten Elemente entfernen. Klicken wir mit der rechten Maustaste auf die Hand und fügen Sie einen neuen Socket hinzu. Und das nenne ich Pistole. Eigentlich Pistole. Wir wissen, dass es eine Steckdose Lassen Sie uns nun mit der rechten Maustaste klicken und die Pistole als angehängtes Asset hinzufügen Wenn wir einfach wie zuvor unsere Pistole hinzufügen, drehen wir den Sockel Ich werde dieses Fangwerkzeug erneut um 90 Grad gedreht hinzufügen erneut um 90 Grad gedreht es so zu drehen, dass es nach vorne zeigt Sie können jederzeit zur Vorderansicht zurückkehren Fahren Sie fort und vergrößern Sie die Ansicht. Wählen Sie hier die Pistole oder den Sockel aus und entfernen Sie das Einrasten. Ich werde es leicht nach unten drehen , damit es richtig zielt Und gehe zur perspektivischen Ansicht. Überprüfe, ob alles in Ordnung aussieht. Versuche so gut du kannst , dass es nach vorne zielt. Und wir können es später jederzeit anpassen. Lassen Sie uns es jetzt in die Hand des Spielers legen. So, so, vielleicht so. Versuchen Sie erneut, den Finger so gut wie möglich auf den Auslöser zu legen . Also wieder so etwas, wir können es später jederzeit anpassen. Es ist nicht wirklich ein Problem. Wenn etwas ein bisschen durcheinander ist, können Sie sehen, dass die Rotation ein bisschen durcheinander ist . Sie ist zu stark geneigt. Ich werde es wieder so drehen, dass es nicht so geneigt ist. Ich finde das gut Wir können es später jederzeit anpassen. Versuchen wir nun, es so gut wie möglich in die Hände des Spielers zu bringen . Ich finde, so etwas sieht gut aus. Ich glaube, ich schiebe es einfach ein bisschen nach oben, einfach so. Okay, jetzt hält er die Waffe in der Hand und schießt sie nach vorne. Wir können immer versuchen, eine Vorschau davon zu sehen. Sie können versuchen, eine Vorschau mit anderen Animationen anzuzeigen, wenn Sie möchten. Wenn ich zum Beispiel nach einer Pistole suche und das Pistolenfeuer nehme, kannst du sehen, wie es aussieht Sieht gut aus. Lass uns jetzt weitermachen und alles speichern. Jetzt musst du sie kopieren. Klicken wir mit der rechten Maustaste und entfernen Sie alle angehängten Assets. Sie müssen diese auch auf das andere Skelett kopieren. Also nehme ich diesen Socket, ich klicke mit der rechten Maustaste hier und kopiere den ausgewählten Socket. Oder Sie können auf Steuerung C klicken. Gehen Sie zum anderen Skelett, dem Militärdokument. Klicken Sie auf die rechte Hand und drücken Sie V, um es einzufügen. Gehen wir auch zum anderen Skelett. Kopieren Sie das Gewehr und klicken Sie auf Strg V, um es auch hier einzufügen Dieser hat es auch. Sowohl die Terrorismusbekämpfung als auch die Terrorismusbekämpfung sollten jetzt funktionieren. Okay, das war's mit den Steckdosen. Lassen Sie uns mit der nächsten Lektion fortfahren. 95. 8.10 Erstellen der verbleibenden Sockets: Lassen Sie uns nun die verbleibenden Sockets erstellen. Gehen wir also zurück zum Skelett für den Charakter Silver. Ich möchte das Gewehr auf der Rückseite des Charakters anbringen falls der Charakter die Pistole bereits in der Hand hält Wir wollen die Pistole also nicht in die Hand des Charakters legen, der bereits eine Waffe in der Hand hält. Lass uns gehen Nehmen wir zum Beispiel die Pistolen-Animation an. Wählen Sie einfach eine davon aus. Wählen wir einfach diesen aus. wieder einer im Leerlauf. Ich werde es beim ersten Bild pausieren. Ich werde hier auf der Rückseite eine Buchse für das Gewehr anbringen. Ich werde das Gewehr auf der Rückseite anbringen, falls sie es nicht in der Hand halten Ich werde nur, wenn du dir nicht sicher bist, welchen Knochen du verwenden sollst, du kannst jederzeit auf Charakterknochen klicken und dir dann die gesamte Hierarchie anzeigen Und dann kannst du versuchen, den besten Knochen auszuwählen , den du hier auf dem Player sehen kannst , der zu dir passt. Sie können zum Beispiel Wirbelsäule zwei oder Wirbelsäule drei wählen . Ich denke, ich werde die dritte Wirbelsäule wählen. Sie können die dritte Wirbelsäule wählen. Klicken Sie mit der rechten Maustaste. Fügen Sie einen Socket hinzu. Ich nenne das Waffe. Die Waffe wird hier auf der Rückseite sein. Klicken wir erneut mit der rechten Maustaste, fügen ein Vorschau-Mesh hinzu und fügen wir einfach die K hinzu, die KA 47 heißen. Lassen Sie uns tatsächlich diesen auswählen. Lasst uns diese Waffe einfach rotieren lassen. Ich halte das Fangwerkzeug gedrückt oder wähle es aus und drehe es um 90 Grad. Auf diese Weise werde ich es nach außen bewegen und einfach versuchen, die Waffe so zu platzieren, wie Sie möchten Es gibt nicht wirklich eine Antwort darauf , was richtig ist oder nicht. Welches Spiel auch immer du versuchst, versuche es auf deine Art zu machen, in deinem Stil. Du kannst es jederzeit an den hinteren Rand des Charakters ziehen , wenn du möchtest. Du kannst es jederzeit so neigen, damit es besser aussieht , und es einfach so gut wie möglich auf der Rückseite des Charakters platzieren . Und vielleicht so etwas. Ich finde, das sieht gut aus. Ich kann es nur leicht nach oben bewegen. Ich finde, das sieht gut aus, wenn man einfach eine Animation abspielt , um sicherzugehen, dass alles gut ist und alles kaputt geht. Wenn du nur eine Laufanimation machst, zum Beispiel vorne rechts, unbewaffnet, kannst du rausgehen und die Animation abspielen Und ich kann auf die Knochen der Charaktere klicken. Und wähle es nur aus, um alle Knochen zu entfernen , damit ich sehen kann es tatsächlich aussieht. Und so sieht es aus. Okay, alles sieht richtig aus. Die Waffe bewegt sich auch mit dem Körper. Ich kann auch Remove Attached auswählen. Und ich kann den AR Four auswählen , nur um zu sehen, wie er aussieht, wenn sie ihn stattdessen in der Hand halten. Okay, alles sieht gut aus. Ja, das hängt vom Spieler ab. Jetzt können wir mit der rechten Maustaste klicken und alle angehängten Dateien entfernen. Die zweite Sache, die ich jetzt hinzufügen möchte, gehen wir zurück zum Idol und wählen eines davon Zum Beispiel das Pistolen-Idol ich vorne platzieren werde Ich möchte die Pistole an der Seite des Charakters anbringen, wenn er das Gewehr in der Hand hält Diese war für das Gewehr, die andere hier ist für Aber auch hier kannst du auf die Charakter-Bones in der gesamten Hierarchie klicken und hier einen Knochen auswählen, Zum Beispiel dieser. Das ist der Oberschenkel Wir erstellen ihn hier, den Oberschenkel, klicken mit der rechten Maustaste, fügen eine Buchse hinzu und nennen das einfach Waffe. Machen Sie weiter und klicken Sie mit der rechten Maustaste darauf. Hängen Sie ein Vorschau-Asset an und wählen Sie die Pistole aus. Genau wie zuvor, füge ich das Fangwerkzeug hinzu und drehe es auf diese Weise Lassen Sie mich es zum Beispiel auch voranbringen. Wenn die Pistole realistischerweise hier platziert wird, wird sie sich tatsächlich auf der gegenüberliegenden Seite befinden, ungefähr so Stattdessen werde ich sie drehen, wenn Sie möchten. Sie können sie irgendwie drehen und versuchen, sie so gut wie möglich zu platzieren Realistisch betrachtet würde ich, wenn es ein Spieler wäre, der für dieses Spiel entworfen wurde, wenn es ein Spieler wäre, der für dieses Spiel entworfen wurde, diesen hier nicht platzieren Also könnten wir die Pistole tatsächlich hier platzieren. Aber wir können versuchen, es so gut wie möglich unter diese Tasche zu legen und es ein bisschen nach außen zu bewegen Wir können es auch bewegen oder in diese Richtung drehen und versuchen, es so gut wie möglich auf dem Oberschenkel des Charakters zu platzieren möglich auf dem Oberschenkel des Charakters Ich finde das sieht gut aus. Jetzt speicherst du einfach alles und lass uns einfach nochmal versuchen, die Run-Animation zu haben. Wählen Sie eine davon aus, zum Beispiel Run Front Pistole. Und wenn du es jetzt einfach spielst, kannst du es hier sehen Und jetzt Charakter, ich wähle Knochen aus. Wähle nur, damit ich die Knochen entfernen kann. Und hier ist die Pistole , wenn du damit rennst. Okay. Das ist am Oberschenkel befestigt Wir können diese Animation jetzt beenden. Und ich kann mit der rechten Maustaste klicken oder eine andere Pistole, die Oberschenkelpistole. Wenn ich sie hier finde, die hier unten, kann ich mit der rechten Entfernen Sie alle angehängten Assets. Und denken Sie daran, dies auch für das andere Skelett zu kopieren. Wenn ich hier einfach doppelklicke und das Charakterdokument öffne, öffne ich auch das Skelett. Lass uns die Oberschenkelhöhle kopieren. Und ich werde den Oberschenkel genau hier finden. Wenn ich ihn finden kann. Dieser steuert V, um es einzufügen. Ich gehe zurück und suche Steckdose. Da drüben ist die Waffe zurück. Ich werde diesen kopieren. Und für die dritte Wirbelsäule werde ich sie wieder einfügen und sie wird auch für diese korrekt sein. Speichern wir alles und fahren wir mit der nächsten Lektion fort. 96. 8.11 Befestigen von Waffe an Hand: Nachdem wir diese Anschlüsse erstellt haben, können wir weitermachen und die Waffe an der Hand befestigen Gehen wir zurück zur Spielerbasis. Wenn du dich erinnerst, haben wir in der Spielerbasis bereits die Logik der Beutewaffen hier erstellt Wir können den Spieler sogar schon dazu bringen, die Waffe auszurüsten. Was wir tun können, ist, etwas namens Attach zu verwenden , wenn Sie einfach nach Attach suchen, sodass Sie eines davon verwenden können, zum Beispiel Schauspieler anhängen oder Akteur an Komponente und so weiter. Sie können also einfach eine davon auswählen, um zu sehen, was es ist. Du bist im Grunde für diesen hier, zum Beispiel, du fügst einer Komponente einen Schauspieler hinzu Zum Beispiel fügen Sie den Waffenschauspieler der Mesh-Komponente hinzu und wählen dort aus, zu welchem Sockel Sie ihn hinzufügen möchten Zum Beispiel die Pistole. Und dann kannst du es dort einrasten und an der Hand befestigen Anstatt das zu tun, denken Sie daran, dass wir uns in einem Multiplayer-Spiel befinden . Das ist kein Einzelspieler-Spiel. Wenn das ein Einzelspielermodus wäre, könnten wir es einfach hier oben machen, ohne diesen ganzen Server und so weiter, und es würde funktionieren. Da wir uns jedoch in einem Multiplayer-Spiel befinden, müssen wir Informationen vom Server auf den Client replizieren Informationen vom Server auf den Client Für solche visuellen Änderungen musst du eine sogenannte Rep Notify verwenden Und das haben wir noch nie benutzt. wenn du mit der rechten Maustaste auf diese Waffe klickst und sie zu einer Variablen hochstufst, nenne ich sie einfach geplünderte Waffe Jetzt vier Variablen. Lassen Sie uns nun zuerst diese sammeln oder verbinden. Lassen Sie mich doppelklicken, wir haben hier schon einen hinteren Routenknoten, also ziehe ich ihn hierher. Doppelklicken Sie auf diesen. Jetzt haben wir diese Variable. Und wenn Sie jetzt darauf klicken, anstatt es so einzustellen, dass es repliziert wird, haben Sie etwas, das als Kundendienst-Benachrichtigung bezeichnet wird Und wenn du visuelle Änderungen an deinem Spiel hast, die an alle Clients gesendet werden müssen, dann musst du eine rep-notify-Replikation visuelle Änderungen an deinem Spiel hast, die an alle Clients gesendet werden müssen, dann musst du eine rep-notify-Replikation verwenden Es wird nur für Informationen wie Nummern verwendet , die an den Client gesendet werden sollen Bisher hatten wir zum Beispiel diese Waffe, die als ausgerüstete Waffe bezeichnet wird. Wir sagten, er sei repliziert worden. Weil der Kunde wissen muss, ob es sich bei dieser Variablen um Informationen handelt, auf welchen Wert sie eingestellt ist, ob sie auf unbewaffnete Pistole oder Gewehr eingestellt ist unbewaffnete Pistole oder Für diesen werde ich jedoch eine visuelle Änderung vornehmen. Es geht nicht nur um Zahlen und Informationen wie Text. Ich muss die Waffe aktualisieren. Es sind also die Hände des Spielers angebracht, es ist eigentlich ein visuelles Update. Diese Waffe wird sich in die Hände des Spielers teleportieren und sie wird dort bleiben Ich habe also eine visuelle Änderung , die ich vornehmen muss, und hier wählst du eine Benachrichtigung für den Mitarbeiter aus. Wenn Sie sich erinnern, verwenden wir auch Multicast. Wenn ich also in die Fußstapfen zurückkehre, verwenden wir dieses Verfahren, das Multicast genannt wird Multicast sendet auch Informationen an alle Clients. Warum verwenden wir eine so genannte Benachrichtigung für Mitarbeiter anstelle von Multicast? Eine Benachrichtigung für Mitarbeiter wird verwendet, wenn Sie visuelle Änderungen haben , die allen Spielern angezeigt werden müssen , auch denen, die noch nicht mit dem Server verbunden sind Nehmen wir an, jemand stellt eine Verbindung zum Server her, ich gehe hierher und plündere die 44 oder 2 Minuten später stellt jemand eine Verbindung zu meinem Server her. Wenn ich diesen Code innerhalb eines Multicasts einführe, kann der verbundene Spieler nicht sehen , dass ich diese 44 in der Hand halte Der Multicast ist nur für temporäre Zwecke nutzbar. Zum Beispiel Schritte hier und jetzt. Oder wenn ich visuelle Feuerwerkseffekte spiele , die nach 2 Sekunden verschwinden Die verbundenen Spieler tun das nicht, der Spieler, der gerade eine Verbindung herstellt , muss das nicht wirklich wissen Weil es wahrscheinlich schon im Level verschwunden ist. Zum Beispiel der visuelle Effekt für einen Mitarbeiter. Er wird für visuelle Änderungen verwendet, die auch von jemandem gesehen werden müssen , der eine Verbindung zu Ihrem Spiel herstellen 2 Minuten möchte ich Spieler sehen, die sich mit meinem Spiel verbinden Ich möchte, dass sie sehen, dass ich jetzt die 41 in der Hand habe. Lass uns rüber gehen. Und lass uns darauf klicken. Und lass uns auf Rep, Notify klicken Mach weiter und kompiliere. Und Sie können sehen, dass es bereits wie eine Funktion für Sie erstellt wurde. Das wird aufgerufen, also wirst du die Waffe plündern Und dieser wird eingestellt. Wann immer dieser Wert gesetzt und geändert wird, wird diese Funktion automatisch ausgeführt. Jetzt können wir den Code in diese Funktion schreiben. Und was auch immer wir hier hineinschreiben, es wird allen Kunden mitgeteilt. Okay, also bevor wir etwas anbringen, möchte ich diese geplünderte Waffe nehmen, die wir gerade geplündert und lass uns hier zuschlagen und nach dem Waffengitter suchen Also wenn ich nach unten gehe und Waffe auswähle. Denken Sie daran, diese Waffe hier. Wenn ich zu den Waffen zurückkehre und die Waffenbasis auswähle, ist das das Waffenskelettnetz. Ich werde das Skelettnetz wählen, weil wir daran denken, dass wir Physik simulieren Wir müssen Physik nicht wirklich simulieren. Immer wenn diese Waffe in den Händen des Spielers ist, müssen wir die Physik entfernen. Ich muss zuerst die Maus von hier ziehen und sagen, die Physik simulieren. Lass uns weitermachen und es verbinden. Setzen wir es auf falsch. Wir müssen Physik nicht wirklich simulieren, wenn sie in den Händen des Spielers liegt. Als Nächstes muss ich auch die Kollision entfernen, denn wenn sie in den Händen des Spielers liegt , müssen wir nicht wirklich mit irgendetwas kollidieren Ziehe wieder von dieser Waffe und sage Set Collision und wähle dann diese Aktiviere Kollision und lass uns die Verbindung herstellen und keine Kollision verhindern. Jetzt hat die Waffe keine Kollision mehr. Wir brauchen sie nicht wirklich , wenn der Spieler sie in der Hand hat. Denken Sie jetzt daran, dass Sie in der Waffenbasis auch die Kugel haben. Sie müssen auch hier die Kollision entfernen. können andere Spieler tatsächlich auf dich zukommen, wenn du die Waffe hast, und sie können die Waffe aus deiner Hand plündern Jetzt kannst du es als Feature im Spiel haben, aber für dieses sollten wir es entfernen Nehmen wir wieder die geplünderte Waffe. Und ich werde von hier wegziehen und nach meiner Kollisionskugel suchen Und sie ist hier unten. Und tatsächlich heißt es Kollision, einfach Kugel genannt. Und ich werde es tatsächlich in Pollsionsphere umbenennen, nur damit es offensichtlicher ist Kollisionskugel. Mach weiter und kompiliere. Gehen wir zurück und suchen jetzt nach Pollsion Sphere. Lassen Sie mich nach unten gehen und es hier auswählen. Okay, genau wie zuvor, ziehen Sie es hierher und sagen Kollision aktivieren“ hier und lassen Sie es uns auf „Keine Kollision“ setzen. Wenn jetzt andere Spieler in diese Kollisionssphäre gehen, interagieren sie nicht damit, weil es hier jetzt keine Kollision gibt. Ich werde daran denken , das falsch zu machen , weil wir keine Physik simulieren müssen . Die Kollisionen der Waffe und die Kollisionen für die Kollisionssphäre Wenn wir jetzt die Funktion zum Anhängen verwenden, müssen wir vorher tatsächlich etwas tun Denn als ich das vorher gemacht habe, gab es einen Bug. Ich habe hier gespielt. Und ich habe die Waffe an meiner Hand befestigt. Immer wenn ich aus irgendeinem Grund in diese Waffen geriet, obwohl ich sie an meiner Hand befestigte, lagen sie immer noch auf dem Boden und ich verstand es nicht. Der Grund dafür ist die simulierte Physik. Sie können hier unten sehen, dass es heißt: Beachten Sie, dass, wenn diese Komponente gerade an etwas angehängt ist, Beginn der Simulation gelöst wird Das heißt, wenn ich hier Physik simuliere, wird diese Waffe tatsächlich vom Standard-Szenenstamm Im Moment ist es einfach so, als ob diese beiden nicht miteinander verbunden sind, das ist getrennt von diesem Ich muss die Waffe tatsächlich wieder an das Standard-Szenenverzeichnis anhängen . Lassen Sie uns das tatsächlich tun Lass uns die geplünderte Waffe nehmen, indem ich von hier aus ziehe und nach dem Standard-Szenenwurzel suche, derselbe Name hier unten, und sie auswähle Was ich jetzt verwenden möchte, ist, eine Komponente an eine Komponente anzuhängen Denken Sie daran, dass es sich um Komponenten handelt, wenn Sie sie von hier ziehen und Suchen auswählen können, und Sie können diese angehängte Komponente an die Komponente auswählen , die ich anhängen möchte Eigentlich nicht dieser. Ich versuche, die Waffe hier anzubringen. Ich ziehe und suche einfach der Waffe und gehe wieder nach unten, wähle die Variable aus. Ich versuche, die Waffe an die Standard-Szenenroute anzuhängen . Es sieht wieder so aus. Lassen Sie uns weitermachen und es verbinden. Jetzt müssen wir den Socket auswählen. Die Steckdose, wir haben eigentlich nichts. Wir verbinden nur die Waffe mit der Standard-Szenenroute. Dieser ist für die Standortregel in Ordnung. All dies muss schnell und zielgerichtet sein. Es schnappt einfach so und jetzt ist es korrekt Lass uns weitermachen und kompilieren. Und jetzt sollte alles richtig funktionieren. Wenn wir nun versuchen, die Waffe an der Hand des Spielers zu befestigen , können wir sie von hier aus ziehen. Nun zum Attach, wir versuchen einen Akteur anzubringen, diese Waffenbasis. Ich versuche hier, diesem Netz, das eine Komponente ist , einen Akteur zuzuordnen . Wir müssen einen Akteur an eine Komponente anhängen. Wenn ich von hier wegziehe und „ Anhängen“ sage und du nach einem Akteur zu einer Komponente suchen kannst, versuche ich, den geplünderten Waffenschauspieler zuzuordnen Wenn ich einfach das hier eingefügte Objekt in das Netz hier drüben kopiere, das eine Komponente ist, der Socket, zu dem wir es gerade hinzufügen wollen ist der Socket, zu dem wir es gerade hinzufügen wollen, sagen wir, wir nennen es zum Beispiel Gewehr. Versuchen wir es zuerst mit dem Gewehr und wir können später immer noch die Pistole machen Nochmals: Schnappen Sie sich das Ziel für all diese. Lassen Sie uns weitermachen und alles kompilieren und speichern. Mal sehen, wie es funktioniert, wenn ich auf Jetzt kompilieren oder Jetzt spielen klicke und den Terroristen auswähle. Wenn ich jetzt in das Gewehr gehe, können Sie sehen, dass es tatsächlich in meinen Händen Du kannst es hier im Schatten sehen. Es liegt tatsächlich in meinen Händen. Der Grund, warum ich die Animation mit dem Gewehr nicht abspiele, ist , dass wir auch die Ausrüstung, die ausgerüstete Waffe, aktualisieren müssen die Ausrüstung, die ausgerüstete Waffe, aktualisieren Denken Sie daran, wenn ich zum Animationsplan zurückkehre, ist es schon eine Weile her, dass wir das gemacht haben Wenn ich zum Player, den Animationen und dem Animations-Blueprint Denkt daran, dass wir diese Animationen hier ändern, je nachdem , wie die Anzahl der ausgerüsteten Waffen aussieht. Diese stammt von der Waffe, mit der der Spieler ausgerüstet ist. Wir müssen diesen ändern damit sich die Animationen ändern. Was wir hier tun müssen, ist, dass wir das schnell machen. Wenn wir zum Van-Diagramm zurückkehren, kann ich mit der rechten Maustaste klicken und ein neues benutzerdefiniertes Ereignis erstellen. Ich kann dieses eine Set als ausgerüstete Waffe bezeichnen. Auch hier kopiere ich diesen Namen mit der rechten Maustaste, erstelle ein neues benutzerdefiniertes Ereignis und lasse es über den Server laufen. Dieser läuft zuverlässig auf einem Server. Ich werde den Server einmal mit dieser normalen Eventset-Waffe laufen lassen dieser normalen Eventset-Waffe . Das Einzige, was er tut, ist diese ausgerüstete Waffe hier zu platzieren. Wenn du es einfach so verbindest. Und wenn wir es wieder so verbinden, ist das Einzige, was dieses Ereignis tut, dass es diese Variable hier auf das setzt , worauf wir sie setzen möchten, und wir werden diese Variable später verwenden. Lassen Sie uns jetzt kompilieren. Denken Sie daran, dass Sie Variablen nur setzen und replizieren , wenn sie über den Server laufen Den kannst du hier oben nicht benutzen. Sie müssen es über den Server laufen lassen, bevor Sie es einrichten und auf alle Clients replizieren Okay, jetzt ist das erledigt. Doppelklicken wir auf diese Variable. Auch hier können Sie die Funktion öffnen oder einfach hier doppelklicken und schon gelangen Sie hierher. Denken Sie jetzt daran, dass wir die ausgerüstete Waffe einstellen müssen , damit die Animation aktualisiert wird. Wenn du von hier aus ziehst und nach der Waffe suchst, die wir gerade gebaut haben, dann müssen wir auswählen worauf wir sie einstellen wollen. Wir wollen es darauf einstellen, was auch immer du geplündert hast Denken Sie an die Waffe, die Sie hergestellt haben, an diesen Waffentyp. Wenn du diese geplünderte Waffe nimmst ziehst du sie von hier und suchst nach dem Waffentyp Jetzt weißt du, ob es sich zum Beispiel um ein Gewehr oder eine Pistole handelt, und es weiß, welche Animation Wenn Sie es hier verbinden, kompilieren Sie. Lass uns auf Play klicken. Wenn du den Terroristen auswählst, nur damit wir neben ihm erscheinen Und wenn ich zum Beispiel in dieses AK gehe, wird es jetzt die Animation auf die richtige ändern die Animation auf die richtige Wenn ich jetzt auch den Client öffne, nur um sicherzugehen, dass alles funktioniert. Wenn ich hier als Server spiele und das minimiere, spiele ich auch als Client. Also öffne ich die Terrorismusbekämpfung für diesen und ich öffne den Terrorismus für diesen. Ich werde mit dem Anti-Terror-Team rübergehen und schauen, ob alles richtig funktioniert. Wenn ich diese vier zusammenarbeite, können Sie sehen, dass ich sie geplündert habe Wenn ich mich dem Spieler nähere, interagiert er nicht mit meiner Kollisionssphäre, weil ich sie auf „Keine Kollision“ eingestellt habe Und jetzt zu der anderen, wenn ich in diese AK gehe, kannst du sehen, dass sie ebenfalls geplündert ist Ich glaube, ich werde die AK-Größe reduzieren. Vielleicht sieht die Waffe sehr groß aus. Sie können jetzt sehen, dass sie nur das Gewehr plündert , denn wenn ich jetzt in die Pistole gehe, wird sie auch in die Buchse für das Gewehr gesteckt Und so sieht es komisch aus. Und das müssen wir später ändern. Lassen Sie uns das also in der nächsten Lektion tun. Im Moment haben wir es tatsächlich angehängt und wir können es etwas komplexer machen. Es funktioniert also auch für die Pistole. 97. 8.12 Waffen am Rücken anbringen: Ordnung, also lassen Sie uns diesen Code etwas komplexer machen , anstatt ihn einfach direkt anzuhängen Jetzt muss ich fragen, ob der Spieler schon eine Waffe in der Hand hat oder nicht Wenn der Spieler bereits eine Waffe in der Hand hält, möchte ich diese Waffe am Rücken des Charakters befestigen , weil er bereits eine Waffe in der Hand hält, also wollen wir sie nicht an der Hand befestigen. Ich möchte diese ausgerüstete Waffe nehmen und von hier wegziehen und sagen, ist sie gleichwertig, gleichwertig mit einer Kunst? Hast du momentan keine Waffen? Wenn das der Fall ist, also wenn du keine Waffen in der Hand hältst, möchte ich sie tatsächlich an der Hand des Spielers befestigen. Was ich tun kann, ist, es hier, hier zu verbinden. Anstatt es einfach am Gewehrsockel zu befestigen , ist es vielleicht eine Was ich tun kann, ist, von hier aus zu ziehen und zu sagen, wähle diesen aus Wir haben diesen schon einmal benutzt, aber jetzt können wir ein anderes Beispiel dafür sehen. Jetzt müssen wir je nach Waffentyp auswählen . Wenn es eine Pistole ist, wird sie die Sockelpistole benutzen. Wenn es ein Gewehr ist, wird es ein Sockelgewehr benutzen. Ich werde diesen Waffentyp erneut kopieren und ihn hier verbinden Oder wenn der Waffentyp gleich unbewaffnet ist, müssen wir eigentlich nichts tun Wenn es eine Pistole ist, möchte ich sie an der Pistole befestigen. So nennen wir die Steckdose. Wenn es ein Gewehr ist, wollen wir es am Gewehr befestigen. Jetzt weiß es, welche Buchse verwendet werden muss, je nach Waffentyp und alles andere ist korrekt Jetzt verschieben wir es einfach hierher. Wenn Sie jedoch nicht unbewaffnet sind, bedeutet das, dass Sie bereits eine Waffe in der Hand haben Lassen Sie uns das alles noch einmal kopieren und jetzt, anstatt mich auf den Waffentyp zu verlassen, werde ich entweder, wenn es eine Pistole ist, werde ich sie dem Waffenschenkel hinzufügen Denken Sie daran, dass wir das Socket für die Oberschenkelwaffe nennen für die Oberschenkelwaffe Wenn es jetzt ein Gewehr ist , wird es es auch für diese verwenden Das wird hier verbunden werden. Wenn es falsch ist, werde ich das alles näher betrachten. Jetzt ist es besser organisiert und wir können rausgehen und alles kompilieren und speichern. Wir wollen die ausgerüstete Waffe nur einsetzen , wenn wir nichts in der Hand haben. Denn wenn wir etwas in der Hand haben, wollen wir die Waffe einfach auf die Rückseite des Charakters legen. Lass uns alles speichern und lass uns auf Play klicken. Und wenn ich hier Terrorist auswähle und bis hierher gehe, lass mich das einfach öffnen lass mich das einfach öffnen, damit wir sehen können, ob es für diesen Charakter funktioniert, wenn ich es nur ein bisschen maximiere. Sie können also sehen, ob ich jetzt in das Gewehr gehe, Sie können sehen, dass ich es in meiner Hand halte Wenn ich jetzt in die Pistole gehe, können Sie tatsächlich sehen, dass die Pistole durch den Boden gefallen ist Ich möchte das eigentlich reparieren. Und ich glaube, es ist dieses Netz hier. Es ist wirklich dünn, also fällt es durch den Boden. Lassen Sie uns das tatsächlich reparieren. Lassen Sie mich die Kiste mitnehmen. Wenn ich gehe, erinnere ich mich daran, wo ich sie gespeichert habe, den Super-Grid-Ordner, das Stata-Pack und die Meshes. Und lassen Sie uns die Super-Grid-Box für den Boden statt für das Flugzeug verwenden die Super-Grid-Box für den Boden statt für das Flugzeug Ich nehme diese Kiste. Ich werde es für die Bewegung sogar auf 100 stellen. Zuerst stelle ich diese Kiste auf so etwas wie hier. Und lass es uns wieder auf den Boden legen. Und ich werde es einfach so zurückschieben , wo dieser Boden ist, ich werde es einfach so bewegen, glaube ich. Und hier. Okay, jetzt ist es auf dem Boden. Jetzt werde ich es genauso skalieren wie die Skala für den Boden. Ich werde es einfach so gut wie möglich versuchen. Lassen Sie mich es zuerst einfach vergrößern . Lassen Sie mich das hier für das Z auf 1010 hochskalieren hier für das Z auf 1010 Wir brauchen es nicht wirklich. Lass mich einfach auf dieses Schloss klicken. Und lass mich hier einen schreiben. Ich werde auf den Boden klicken, eigentlich ist es weiter unten, so hier. Und ich mache es hier drüben und drüben auf der anderen Seite. Okay, jetzt knackt es auf dem Boden. Und ich werde auf den Boden klicken. Ich werde die Umschalttaste gedrückt halten und mit der rechten Maustaste klicken, um das zu kopieren. 80, 81. Ich werde hier auf mein Feld klicken. Ich werde die Umschalttaste gedrückt halten und mit der linken Maustaste klicken, um es einzufügen. Und jetzt sollte es korrekt sein. Und wenn ich auf die andere Seite gehe, nur um zu überprüfen, ob sie den Boden bedeckt und das tut sie, okay. Jetzt werde ich das Flugzeug auswählen. Ich klicke nur ein paar Mal hier. Es wird die Super-Grid-Ebene auswählen. Ich werde dieses Material löschen und ich werde es erneut kopieren , um es zu speichern. Klicken Sie mit der rechten Maustaste auf das Ohr, gedrückter Umschalttaste mit der linken Maustaste, um den Boden hier einzufügen. Und es sieht genauso aus wie zuvor. Okay, lassen Sie uns alles speichern. Und wenn wir jetzt auf Play klicken, sollte es nicht durch den Boden fallen. Der Boden war ziemlich dünn und ich habe Verdacht, dass Weiß durch den Boden fällt. Lassen Sie mich das noch einmal ein bisschen maximieren. Wenn ich nun als dieser Spieler spiele und eine M-Vier verdünne und ich eine Waffe verdünne, sollte sie sie bis zum Oberschenkel hinzufügen Du kannst an der Seite meines Charakters sehen, ich kann jetzt die Waffe sehen Fantastisch. Nun, dieses K kann ich genauso gut plündern wie der andere Spieler Im Moment ist es verschwunden. Sie können sehen, dass der Client es auf dem Server nicht sehen kann. Sie können sehen, dass es korrekt aussieht, denn denken Sie daran, der Server die Autorität hat und alles tun kann. Für den Spieler befindet es sich jedoch auf der Rückseite. Wie Sie hier im Schatten sehen können, gibt es einige, ein Replikationsproblem, Wert, der nicht überschritten wird. Das Einzige, was mir von dieser unbewaffneten Waffe einfällt , ist, dass sie entscheidet, ob sie die Waffe in den Rücken oder in die Hand legt die Waffe in den Rücken oder in die Hand Die Art und Weise, wie Sie dieses Problem beheben, bei dem Sie die Waffe nicht sehen können, wenn Sie sie plündern, ist Lass uns das tatsächlich auf eine andere Art machen , die Waffe mit dem Set Der Grund dafür ist, dass man diesen Wert nicht wirklich kennt , weil manchmal, wenn ich als Kunde spiele, diese Waffe auf den Rücken des Charakters gelegt wird. Du kannst es hier sehen, anstatt es an der Hand zu plündern. Der Grund, warum es wieder auf die Rückseite des Charakters gelegt wird, ist ein Replikationsproblem Aus irgendeinem Grund sollten wir damit ausgerüstet sein, das ist die Steuerung, die wir auf deiner Hand haben sollten oder die Waffe sollte auf deinem Rücken sein. Aus irgendeinem Grund geht es darum, zu sehen, dass diese ausgerüstete Waffe nicht bewaffnet ist , als ob du bereits eine Waffe hast, und sie wird auf dem Rücken des Charakters platziert , anstatt in deiner Hand. Das liegt eigentlich daran, dass wir dieses Problem über die Benachrichtigung des Kundendienstmitarbeiters laufen lassen Das müssen wir nicht tun, weil es dem Spiel schaden würde. Das werde ich entfernen . Gehen wir stattdessen zum Event-Graph. Lass es uns hier auf dem Server ausführen. Weil wir Werte über den Server statt über den Mitarbeiter setzen müssen, benachrichtigen, anstatt sie einfach direkt zu ändern Denkt daran, dass ihr die ausgerüstete Waffe nur einsetzen wollt , wenn ihr hier unbewaffnet seid Immer wenn du unbewaffnet bist, solltest du die ausgerüstete Waffe einsetzen, weil du sie nicht ändern willst , wenn du die Waffe auf die Rückseite legst Stattdessen müssen wir dafür die ausgerüstete Waffe nehmen Und wieder müssen wir uns fragen, ob sie unbewaffnet ist. Und lassen Sie mich das einfach wegnehmen. Fragen Sie unbedingt, sind Sie unbewaffnet oder nicht? Weil wir diesen Code nur ausführen wollen, wenn Sie unbewaffnet sind. Wenn Sie unbewaffnet sind, ja. Lass uns weitermachen und ich werde den Code verzögern, bevor wir das tatsächlich tun Und der Grund, warum ich das mache, ist , dass ich diesem Mitarbeiter die Möglichkeit gebe, zu benachrichtigen, dass ihm dieser Code ausgeht Denken Sie daran, es wird diese Waffenvariable verwenden , um zu überprüfen, ob Sie unbewaffnet sind oder Und das wird fehlerhaft sein. Wenn ihr sofort diese ausgerüstete Waffe einsetzt und diesen Waffentyp ändert, sorgen wir dafür, dass es etwas verzögert Stellen Sie sicher, dass dieser Code durchläuft bevor wir den Waffentyp oder die ausgerüstete Waffe hier tatsächlich ändern den Waffentyp oder die ausgerüstete Waffe hier Diese Verzögerung muss so gering wie möglich sein da es seltsam aussieht, wenn du herumrennst, ohne dass die Animation angewendet wird . Aber lass es uns einfach so versuchen , bevor wir etwas tun. Also lass mich auf Hier als Terrorist spielen klicken. Jetzt kann ich auf Play klicken und in die Waffe gehen und sehen, ob sie funktioniert. Jetzt kannst du sehen, dass es funktioniert. Ich muss ein paar Mal sichergehen , dass es wirklich funktioniert, und jetzt können Sie sehen, dass es nicht abstürzt Ich denke, das hat das Problem behoben. jedoch in Zukunft Wenn wir jedoch in Zukunft immer noch ein Problem damit haben, werden wir versuchen, es zu beheben. Aber ich denke, es ist jetzt tatsächlich behoben und wir haben kein Problem damit. Okay. Versuchen wir nun, diese Zahl zu reduzieren, 0,05, was sehr niedrig ist Und wir können versuchen, es zu spielen und zu reduzieren, aber es wird trotzdem funktionieren Jetzt können Sie sehen, dass es immer noch funktioniert. Wenn Sie es zu stark reduzieren, laufen Sie Gefahr, dass der Code in der Kundendienst-Benachrichtigung zu diesem Zeitpunkt nicht erreicht werden kann Bevor Sie dies tatsächlich tun, stellen Sie sicher, dass es langsam, aber nicht zu niedrig Sie werden auf Probleme stoßen, aber wie Sie hier sehen können, funktioniert alles. Und stellen Sie sicher, dass Sie diese Verzögerung kommentieren , denn wenn Sie drei Monate später wiederkommen, haben Sie keine Ahnung, warum Sie das getan haben. Halten Sie die Taste gedrückt und klicken Sie auf Ihrer Tastatur auf C, um einen Kommentar hinzuzufügen. Du kannst für diesen Kommentar zum Beispiel sicherstellen, dass die Waffe an der Hand befestigt ist, bevor du den Ausstattungsstatus des Spielers änderst. Einfach so. Sie können sogar schreiben , dass Sie darauf warten, dass sich der Mitarbeiter, der benachrichtigt wurde, um sich zu bewerben Fahren Sie fort und kompilieren und speichern Sie alles. Und das sollte funktionieren, wenn du auf Play klickst. Wenn du jetzt in die Pistole gehst , kannst du sehen, dass sie sich verändert Wenn du in diese hineingehst, wird sie dir auf den Rücken gelegt und ich kann sehen, dass alles gerade funktioniert Ein weiterer Dollar, den wir haben, der letzte hoffentlich, ist, wenn du zwei Waffen übereinander legst, es wird etwas verwirrend sein, weil du zwei Sphären überlappst und ich weiß nicht, welche ich plündern soll und es wird ausbrechen, wenn ich mich jetzt beschwere Und hier ist der Kunde. Ich treffe beide, ich versuche beide so zu treffen. Man kann sehen, dass es tatsächlich die Pistole und die vier gleichzeitig hält und es ist ein bisschen verwirrt Wir müssen das Geld auch reparieren. Das machen wir tatsächlich in der nächsten Lektion. 98. 8.13 Überlappung von zwei Waffen auf einmal: Das Problem, mit dem wir gerade konfrontiert sind ist, wenn ich auf zwei Waffen gleichzeitig trete, wird es ausbrechen, weil Sie jetzt sehen können, dass ich die Pistole und das Gewehr gleichzeitig in der Hand die Pistole und das Gewehr gleichzeitig in der Das ist also ein Bug , den wir gerade haben und den wir irgendwie beheben müssen Wir müssen überprüfen, ob sich beide Waffen überschneiden und nicht nur eine Denn im Moment überprüfen wir nur, ob sich eine Waffe überschneidet und wir prüfen nicht , ob es zwei Waffen gibt , die sich gleichzeitig überschneiden Um das zu beheben, gehen wir zum Spieler und öffnen die Spielerbasis hier drinnen Im Moment haben wir diese Beutewaffe. Anstatt die Waffe einfach zu plündern, muss ich ein neues Array erstellen in dem ich alle sich überschneidenden Elemente sammle Und dann wird es von diesen sich überschneidenden Akteuren weitermachen und die Waffen plündern, anstatt die Waffe direkt zu plündern Nehmen wir das alles und schieben es hier runter, klicken wir mit der rechten Maustaste und erstellen ein neues benutzerdefiniertes Event Ich werde dieses Ereignis als überlappendes Element bezeichnen. Okay, hier werde ich es über den Server, den benutzerdefinierten Server, laufen lassen und ein überlappendes Element hinzufügen Und denken Sie dann daran, es auch auf dem Server und zuverlässig laufen zu Und ich werde im Normalfall den Server hier oben laufen lassen, überlappende Elemente hinzufügen, einfach so Was wir tun müssen, ist , ein neues Array namens überlappende Elemente zu erstellen ein neues Array namens überlappende Auch hier handelt es sich um eine Waffenbasis, eigentlich nicht um überlappende Gegenstände Es ist wahrscheinlich zutreffender, es als überlappende Waffen zu bezeichnen Und dann klicken Sie mit der rechten Maustaste oder klicken Sie einfach hier und suchen Sie nach der Waffenbasis Mach weiter und wähle es aus. Lassen Sie uns weitermachen und dieses Array erneut auswählen. Anstatt eines Gegenstands, der sich überschneidet ist es wahrscheinlich besser, ihn als Waffe mit Überlappung zu bezeichnen , die genauer ist, damit wir unseren Stil nicht ändern. Eine Waffe, die sich überschneidet, einfach so. Und mach weiter und nimm dieses Array. Was wir hier tun können: Immer wenn sich ein Gegenstand oder eine Waffe überschneidet, können wir diese Waffe zu dieser Reihe hinzufügen. Jetzt müssen wir wieder wissen, mit welcher Waffe wir uns überschneiden. Fahren Sie fort und fügen Sie eine Variable suchen Sie nach einer Waffenbasis Nenn einfach diese eine Waffe und mach weiter und verbinde sie auch hier. Es geht von hier aus, wann immer wir uns überschneiden, und dann sind die Informationen hier. Genau wie zuvor, was wir hier gemacht haben. Nehmen Sie das und sagen Sie Set Array Element und verbinden Sie es. Dies ist das Element, das wir zum Index hinzufügen möchten. Nochmals, genau das, was ich dir zuvor gesagt habe. Verwenden wir die Länge. Nehmen Sie aus dieser Suche nach der Länge und es wird automatisch der richtige Index gefunden. Es wird ihn hinzufügen, um das Ganze zu organisieren. Ordnung, was wir einfach tun, ist anstatt die Waffe sofort vom Boden zu plündern, fügen wir diese Überlappungswaffe zu dieser Reihe hinzu Und dann können wir von diesem Array aus weitermachen und die Waffen plündern Wir stellen sicher, dass alle Waffen, die sich überschneiden, von hier aus geplündert werden Wenn ich mich mit einer Waffe überschneide, denke daran, diese Beutewaffe erneut einzusetzen, da du sie sonst nicht Lass uns eigentlich zuerst zurückgehen. Gehen wir jetzt zurück zur Waffenbasis statt zur Waffenbasis , anstatt hier mit dem Code, den wir geschrieben haben, anstatt die Waffe sofort zu plündern, wenn Sie wissen, dass Sie die Waffe plündern können, fahren Sie fort und fügen Sie sie stattdessen zu den überlappenden Waffen zu den überlappenden Lass mich das entfernen. Lass uns hier nach dem Player suchen. Denken Sie daran, dass dies der Pin-Player ist. Nehmen wir das und suchen nach der Waffe, die sich mit der Anzeige überschneidet. Mach weiter und füge es hier hinzu. Die Waffe ist einfach so und kompiliere jetzt. Die Überlappungswaffe wird hier zuerst zum Array hinzugefügt . Lass uns weitermachen und die Lot-Waffe einsetzen. Lasst uns von hier aus zuschlagen und nach einer Menge Waffen suchen . Die Waffe hier. Eigentlich brauchen wir es nicht, weil wir es jetzt zu diesem Array hinzugefügt haben. Anstatt es einfach von hier nach hier zu bringen, können wir dieses Array jetzt hier unten verwenden. Wir brauchen diese Stecknadel eigentlich nicht. Wenn du auf diesen Pin klickst, entferne ihn. Klickt auch hier hoch und entfernt ihn, einfach so. Und damit dieser es entfernt, halten Sie die Alt-Taste gedrückt und klicken Sie darauf und es wird entfernt, oder Sie können hier oben klicken und alle Knoten aktualisieren, die auch diese roten Ära-Pins entfernen. Jetzt plünderst du die Waffe. Es wird hier durchgehen. Nun, bevor Sie es direkt hinzufügen, lassen Sie uns zuerst etwas überprüfen. Nehmen wir die überlappenden Waffen. Lassen Sie uns zunächst fragen, ob das leer ist oder nicht Denn wenn es leer ist, wollen wir nicht plündern. Lasst uns von hier aus zuschlagen und sagen, es ist leer. Nehmen wir an, es ist nicht leer. Wenn es nicht leer ist, gehen wir zu O. Wir können es von hier aus ziehen. Und schreibe einen Zweig und gehe raus und verbinde dich. Wenn es jetzt nicht leer ist, werden wir plündern. Also gut, welche Waffe wir plündern, können wir von hier wegziehen und sagen, bekommt und diese nehmen Wir bekommen einfach nur den ersten Gegenstand , der sich innerhalb der überlappenden Waffenanordnung befindet, bekommen nur den einen im Index, Null also die erste Waffe, die sich hier befindet, Lassen Sie uns also die erste Waffe, die sich hier befindet, mit der Überlappungswaffe verbinden. Jetzt fügen wir diese Waffe dem Inventar hinzu. Dann geht es hierher, fügt es dem Inventar hinzu, es wird es zur Beutewaffe Wir werden überprüfen, ob wir unbewaffnet sind Wenn ja, werden wir die ausgerüstete Waffe einsetzen Denken Sie jetzt daran, die Überlappungswaffe zu entfernen, die Waffe, die Sie gerade hinzufügen Vergiss nicht, sie aus dem Array zu entfernen, sonst bleibt sie für immer hier. Du musst dieses Array jetzt nehmen. Danach können wir vielleicht die Überlappungswaffen nehmen. Wir können sagen, Objekt entfernen und dann weitermachen und es verbinden. Denken Sie dann daran, diesen zu nehmen, den Sie gerade hinzugefügt haben. Sie können es stattdessen hier verbinden. Doppelklicken Sie erneut, um einen hinteren Routenknoten zu erstellen , und machen Sie ihn einfach auf eine weitere Ebene mit den anderen. Jetzt denken wir daran, ihn aus dem Array zu entfernen. Es wird für immer hier bleiben und du wirst eine Kiste in deinem Spiel haben. Okay, jetzt entfernen wir diesen überlappenden Gegenstand aus der Reihe weil wir ihn jetzt dem Inventar hinzugefügt haben und alles fertig ist, also haben wir ihn entfernt. Denken Sie daran, dass diese Funktion hier, dieses Ereignis hier, nur einmal ausgeführt wird , wenn es zu Überschneidungen kommt. Wie du hier sehen kannst, läuft das Event „Lost Weapon“. Wenn wir fertig sind, beenden wir den Code. Was ist, wenn Sie in den überlappenden Waffen tatsächlich zehn Waffen haben in den überlappenden Waffen tatsächlich zehn Waffen Du musst mit dieser ganzen Waffe weitermachen , bis sie leer ist Und wenn es leer ist, wird es nichts tun. Sie müssen dieses Ereignis weiterhin ausführen , um zu überprüfen, ob sich weitere Elemente überschneiden Weil es ständig überprüft, ob es leer ist oder nicht, um es auszuführen Nochmals, lass uns hier oben ein neues Event veranstalten. Und ich nenne es, lasst uns von hier aus zuschlagen, ein maßgeschneidertes Event. Nennen wir das, suchen wir nach überlappenden Waffen. Ich werde nach weiteren überlappenden Waffen suchen. Den können wir nehmen und hier runterfahren. Suchen Sie nach überlappenden Waffen. Wenn wir mit dem Hinzufügen der Waffe fertig sind, überprüfen wir, ob sich die Waffen überschneiden, und führen sie erneut Und dann wird der Code hier erneut ausgeführt und überprüft, ob er leer ist oder nicht Wenn es nicht leer ist, wird es wieder die neue Waffe nehmen. Füge sie dem Inventar hinzu, so gut wir können. Wenn es jedoch leer ist, werden wir nichts tun. Ordnung, ein Problem, das wir gerade haben, ist was passiert, wenn der Spieler mehrere Waffen Denn jedes Mal, wenn du mit einer Waffe kollidierst und sie plündern kannst, wird das zu dieser Überschneidung hinzukommen Und das wird tatsächlich wieder ausgeführt, obwohl wir gerade im Code sind, und das wird jedes Mal, wenn du dich mit etwas überschneidest, zu einem Bug im Spiel führen jedes Mal, wenn du dich mit etwas überschneidest, zu einem Bug im Spiel Dadurch wird das Ganze ausgeführt und es wird tatsächlich auch all das aktivieren. Lasst uns stattdessen eine Barriere aufstellen. Das läuft nur einmal. Und was Sie tun können, ist, von hier wegzuziehen und einmal „Ja“ zu sagen. Dieser Node stellt sicher, dass das nur einmal ausgeführt wird, auch wenn ich mich mit mehreren Waffen überschneide. Dieser Code wird hier nicht wiederholt. Es wird diesen Code tatsächlich wiederholen, es wird dazu beitragen. Aber dieser Teil des Codes wird nicht wiederholt werden. Es wird es tatsächlich nur einmal tun. Und wir können kontrollieren, wann es das wieder tun soll. Wir wollen das nur einmal machen, auch wenn wir uns mit vielleicht 100 Waffen überschneiden. Wir machen das nur einmal , weil wir uns daran erinnern wir eine Endlosschleife machen bis das Ganze nicht mehr leer ist und wir den Code beenden. Wir müssen es von hier aus auch nicht wirklich lieben. Okay, mach es einmal. Wann können wir das zurücksetzen? Der Reset bedeutet, dass ich diesen Code nur einmal ausführen werde. Sie sagen mir, wann ich zurücksetzen kann, damit ich diesen Code erneut ausführen kann. Lassen Sie uns den Reset von hier wegziehen und ein neues benutzerdefiniertes Ereignis erstellen. Nennen wir es wieder eine Waffe, die man verlieren kann. Ich kann die Waffe wieder plündern wann immer ich hier aufhöre zu plündern Wenn das leer ist, überlappt sich die Waffe. Immer wenn das leer ist, können wir es von hier wegziehen und sagen, wir können wieder Waffe plündern Wir können diesen Code erneut ausführen , weil er gestoppt wurde. Und ich werde ein bisschen von hier wegziehen und etwas Platz schaffen und das Ganze organisieren. In Ordnung, jetzt ist es besser organisiert. Also lasst uns reingehen, kompilieren und lasst uns auch hier kompilieren, alles speichern. Lassen Sie uns jetzt versuchen, auf Play zu klicken und sehen, was passiert. Wählen Sie Terrorist aus. Ich lasse mich diese Waffen einfach auf all diese Punkte kopieren , damit ich nicht immer wieder zu dieser Stelle rennen muss. Ich kopiere sie einfach ein paar Mal und platziere sie herum. Wählen Sie einen Terroristen aus und lassen Sie uns darauf eingehen , jetzt passiert nichts. Wir haben hier wahrscheinlich viel Geld verdient, wahrscheinlich überlappend Aber wie Sie das machen können, ist, dass Sie aus einem von ihnen ziehen können, zum Beispiel diese Serverüberlappung, und eine Druckzeichenfolge schreiben So debuggen Sie Ihren Code, wenn Sie einen Fehler haben. Ich möchte das nicht aus dem Video entfernen weil ich dir auch zeigen möchte, wie man debuggt Du verbindest diese Druckzeichenfolge und klickst auf Play. Wann immer es die Zeichenfolge druckt, wie Sie sehen können, tatsächlich die Zeichenfolge gedruckt. Das bedeutet, dass dieser Teil des Codes funktioniert. Hier ist nichts falsch. Es geht durch. Ja, ich glaube, es ist hier. Ja. Ich habe vergessen, die Größe so zu wählen, dass sie passt. Vielleicht versuchen wir es noch einmal zu spielen und zu testen. Und das war das Problem. Ich habe diese Größe nicht passend gemacht. Und das bedeutet, dass Sie bei Arrays, wenn Sie sie erstellen, von hier aus ziehen und „Größe ändern“ sagen müssen Und dann müssen Sie der Engine sagen wie groß dieses Array ist Zum Beispiel gebe ich ihm 20 Steckplätze. Mit diesen 20 Steckplätzen kann ich jetzt Artikel hinzufügen. Das musst du zum Beispiel im Startspiel oder so machen. nach Größe wird jedoch angezeigt, dass Sie automatisch einen neuen Slot erstellen können. Das ist in Ordnung. Mir ist egal, wie lang dieses Array ist. Das, was du hier machst, die richtige Größe war das Problem. Wenn Sie jetzt wieder Probleme haben, ziehen Sie von hier, schreiben Sie eine Druckzeichenfolge und sehen Sie, ob die Zeichenfolge auf dem Bildschirm gedruckt wird. Wenn ja, stimmt wahrscheinlich etwas anderes nicht. Denken Sie auch hier daran, dass Sie auch Werte ausdrucken können, um zu sehen, ob sie tatsächlich diesem überlappenden Waffenarray hinzugefügt wurden und so weiter Aber im Moment scheint es zu funktionieren. Lass uns auf Play klicken. Wenn Sie es besser überprüfen möchten, können Sie auch auf die Feder klicken sie beispielsweise auf 600 setzen. Nur damit ich meinen Charakter sehen kann. Lass uns nochmal versuchen zu loten. Jetzt kannst du sehen, dass es auf meiner Waffe oder auf meiner Hand und meinem Rücken ist. Ich werde das nur ein paar Mal machen, nur um sicherzugehen, dass alles richtig funktioniert und es zu funktionieren scheint. Sie können also sehen, dass das Problem dadurch behoben wird, denn im Moment durchläuft es das alles in einer Schleife Es stellt sicher, dass es das sich überschneidende Waffenlager durchläuft bevor es stoppt und wir die Waffen erneut plündern können Es stellt also sicher, dass alles geplündert wird. Und wie du siehst, funktioniert es korrekt, obwohl ich mehrere Waffen gleichzeitig funktioniert es korrekt Das Gewehr ist in meiner Hand und die Pistole befindet sich an der Seite meines Beins Richtig? Nun, da wir mit dieser Logik fertig sind, speichern Sie alles und lassen Sie uns mit der nächsten fortfahren. 99. 8.14 Erstellen der Waffenstruktur: Okay, mit diesem Spiel möchte ich dir alles zeigen, was wir tun, wenn wir ein Spiel entwickeln, auch wenn es fortgeschritten ist In dieser Lektion werden wir eine Waffenstruktur erstellen. Das ist viel besser, als ständig Variablen für die Waffen zu erstellen. Bevor das zu groß wird, fangen wir an, die Struktur zu erstellen. Jetzt kann ich versuchen, es dir zu zeigen, und du wirst viel verstehen, was in den Bauplänen steht Lass uns mit der rechten Maustaste klicken und einen neuen Ordner erstellen. Nennen wir das Strukturen. Und klicken Sie erneut mit der rechten Maustaste und setzen Sie die Farbe hier auf diese Farbe, genau wie zuvor In diesem Ordner. Klicken wir mit der rechten Maustaste und gehen wir zu Blueprint. Wir haben etwas, das man Struktur nennt. Klicken Sie darauf und ich nenne es ST als Präfix für Struktur. Nennen wir es Waffeninfo. Diese Struktur enthält die Informationen für die Waffen. Wenn Sie nun eine Struktur öffnen, fügen Sie hier nur Variablen hinzu. Wenn Sie eine Variable hinzufügen, können Sie wählen, wie diese Variable heißen soll. Sie können den Typ wählen, genau wie hier im Blueprint, wo Sie eine neue Variable erstellen Das Gleiche. Jetzt innerhalb der Struktur können Sie hier alle Informationen zu den Waffen haben. Sie können hier mehrere Variablen hinzufügen und alle Informationen für die Waffe hier haben . Zum Beispiel, wie schnell die Waffe schießen kann, wie heißt die Waffe und all diese Dinge, die Sie wollen. Zum Beispiel das Vorschaubild für die Waffe, wenn du sie dem Inventar hinzufügst, was sollte sie im Laden kosten, wenn du die Waffe kaufst Sie können einen Münzwert oder einen Wert von 1 USD usw. angeben. Alle Informationen für die Waffe können darin enthalten sein. Hier können Sie sehen, dass Sie alle Variablen innerhalb einer Struktur sammeln können . müssen nicht 100 Variablen in diesem Blueprint erstellen , sie enthalten sie tatsächlich innerhalb der Struktur Lassen Sie uns weitermachen und anfangen, eine zu erstellen. Ich werde sie alle löschen. Den ersten hier werde ich beim Namen nennen. Ich brauche einen Namen für meine Waffe. Und ich werde es auf den Typ Zeichenfolge ändern, weil Zeichenfolge nur ein Text ist, den wir schreiben können. Nun ist es sehr wichtig, dass der Unterschied zwischen einer Zeichenfolge und einem Text lokalisiert oder in verschiedene Sprachen übersetzt werden kann . Wenn ich zum Beispiel möchte, dass mein Spiel in Zukunft Deutsch, Japanisch oder Chinesisch sein soll, muss ich Text auswählen. Wenn ich zum Beispiel den Namen der Waffe übersetzen möchte und du String wählst, kannst du ihn in Zukunft nicht übersetzen. Vergewissere dich, dass du ein Spiel willst, das übersetzt werden kann , weil du es in Zukunft übersetzen möchtest . Fahren Sie fort und wählen Sie Text aus. Ich werde jedoch Namen für Schnurwaffen wie AK 47 oder 44 auswählen . Ich ändere es zwar in andere Sprachen, aber es wird nicht wirklich übersetzt. Ich meine, wie heißt AK 47 in verschiedenen Sprachen? Es ist derselbe Name. Deshalb wähle ich eine Zeichenfolge anstelle eines Textes, obwohl ich mein Spiel in der zukünftigen Zeichenfolge für den Namen übersetzen möchte . Denkt daran, dass wir auch diesen Waffentyp hinzugefügt haben. Diesen Waffentyp können wir tatsächlich auch innerhalb der Struktur haben. Ich kann es einfach Typ nennen, du kannst es Waffentyp nennen, das ist in Ordnung. Nenn es, wie du willst , damit es hier für dich sichtbarer wird. Ändern wir es auf Waffentyp. Denken Sie daran, wir haben zum Beispiel diesen Aufzählungswaffentyp zum Beispiel diesen Aufzählungswaffentyp Wir können auch eine neue hinzufügen und die Klasse aufrufen. Eine Klasse ist, wenn du nach Waffenbasis suchst und sie hier aufnimmst, diese Klasse auswählst, Referenz A ist, dass du aus dieser eine neue Waffe spawnen kannst Vielleicht brauchen wir es, vielleicht auch nicht. Es ist immer schön, eine Klasse für jedes Spiel zu haben , das man macht, denn vielleicht musst du die Waffe in Zukunft wieder zurück in die Welt spawnen Es ist immer schön, diesen Kurs hier zu haben. Jetzt haben wir eine Struktur. Sie ist klein, aber sie ist nett und wir haben später eine erstellt. Sie können zum Beispiel die Schussgeschwindigkeit für diese Waffe hinzufügen . Und dann kannst du einen Schwebekörper für die Zahl auswählen , mit der die Waffe schießen kann. Später kannst du Reload-Geschwindigkeit und so weiter sagen. Sie können also sehen, dass Sie viele Informationen zu dieser Waffe hinzufügen können viele Informationen zu dieser Waffe Vielleicht möchtest du einen Shop-Wert hinzufügen oder du möchtest eine ähnliche Beschreibung hinzufügen , oder du möchtest ein Vorschaubild für das Inventar hinzufügen Du kannst viele Dinge hinzufügen. Aber lassen Sie uns vorerst einfach diese hinzufügen. Und ich werde der Struktur später mehr hinzufügen, wenn wir sie brauchen. Nachdem wir diese Struktur erstellt haben, können wir mit der Erstellung einer Datentabelle fortfahren. Ich werde Ihnen in der nächsten Lektion erklären, was eine Datentabelle ist, aber für den Moment, großartig, Sie haben eine Struktur erstellt, und lassen Sie uns weitermachen. 100. 8.15 Erstellen der Waffentabelle: In dieser Lektion werden wir eine Waffendatentabelle erstellen Um eine Datentabelle zu erstellen, müssen Sie sich in Google Drive oder Google Sheets befinden Wenn Sie über Excel verfügen, können Sie diese auch verwenden. Ich verwende Google Sheets. Machen Sie weiter und erstellen Sie ein Google-Konto, falls Sie noch keines haben. Und dann hier drinnen klicken wir hier hoch und gehen zu meiner Festplatte. In Ihrem Laufwerk habe ich gerade einen Ordner erstellt , um hier strukturiert zu bleiben. Wenn Sie in Google sind, können Sie ein neues Google-Blatt schreiben, klicken und erstellen. Klicken Sie hier, und dann wird es eine erstellen, und ich werde diese hier oben nennen, Datentabellen. Ich werde hier drinnen Platz machen. Ich werde das nur ein bisschen organisieren. Ich werde auf Strg A klicken, um alles auszuwählen. Ich klicke hier nach oben und richte es in der Mitte aus. Klicken Sie hier nach oben, richten Sie es in der Mitte aus. Klicken Sie hier nach oben und wählen Sie den Textumbruch aus. Dann werde ich das Telefon auf dieses umstellen. Hier oben für diese Zeile werde ich auf das fett gedruckte Bild klicken. Drücken Sie erneut die Steuerung, um alles auszuwählen. Ich werde einfach alles so breiter machen, und das ist nur eine Präferenz. Okay, jetzt sind wir in Google Sheets. Und was eine Datentabelle ist, ist, dass wir all diese Werte aus einer Struktur innerhalb einer Datentabelle schreiben können . Also Leute, die nicht programmieren können, können diese Datentabelle tatsächlich verwenden und sie können zum Beispiel Informationen über dein Spiel ändern. Fangen wir hier an und Sie können sehen, was ich meine. Wir haben diese Struktur hier mit der Namensvariablen erstellt. Was wir innerhalb dieser Datentabelle schreiben können, ist, dass Sie diese Variablen genau so schreiben müssen , wie Sie sie geschrieben haben. Innerhalb einer Struktur. Für den Namen können wir Name schreiben, und dann haben wir den Typ und dann haben wir die Klasse. Das haben wir jetzt in einer Struktur. Denken Sie daran, es genau so zu schreiben wie Sie es hier innerhalb der Struktur geschrieben haben. Andernfalls bekommst du eine Schachtel, schreib sie hier für den Namen des Artikels. Zum Beispiel haben wir beim ersten eine AK 47 K 47. Die nächste haben wir, falls du hier in den Bauplänen siehst, die Waffe, die hast du Und dann hast du eine Pistole. Du kannst ihr auch einen Namen geben. Meine Pistole heißt jedoch Pistole. Ich habe nicht wirklich einen Namen dafür. Jetzt musst du den Typ dieser Waffe schreiben. Denken Sie daran, dass Sie in der Aufzählung diesen Waffentyp erstellt haben Innerhalb der Struktur kannst du auch sehen, welchen Waffentyp du ausgewählt hast Für diesen Waffentyp musst du ihn nun genau so schreiben wie die Waffentypen, die du hier geschrieben hast. Andernfalls erhalten Sie eine Box innerhalb einer Datentabelle. Du musst die Dinge genau so schreiben , wie du es hier gemacht hast. Für den Waffentyp können wir ein Gewehr haben. Diese AK ist ein Gewehr, die Vier ist ein Die Pistole ist einfach die Art von Pistole wie diese. Für den Unterricht müssen wir etwas anderes tun. Lassen Sie uns zuerst die Datentabelle erstellen , denn auf diese kann ich keinen Verweis bekommen , es sei denn, ich habe die Datentabelle tatsächlich in den Blueprints Lassen Sie uns einen neuen Ordner erstellen. Nennen wir das Datentabellen innerhalb dieses Ordners. Klicken wir erneut mit der rechten Maustaste in diesem Ordner auf „Farbe festlegen “. Klicken wir mit der rechten Maustaste, ich glaube es ist in Michelaneous, nicht in Blueprint Hier ist sie, die Datentabelle. Mach weiter und erstelle. Jetzt sagt es dir, aus welcher Struktur du es erstellen willst? Ich möchte es aus den Waffeninformationen erstellen. Mach weiter und klicke. Okay. Nennen wir es jetzt DT-Tabelle und nennen wir es wieder Weapon Info. Normalerweise nenne ich es einfach genauso wie die Struktur. Allerdings DT für Präfix, da dies eine Datentabelle ist. Wenn ich diese Datentabelle öffne, können Sie sehen, dass sie gerade leer ist. Wenn Sie auf das Plus, ein reines, klicken, fügen Sie einen neuen Eintrag für die Datentabelle hinzu. Sie können hier sehen, dass Sie ihm einen Namen geben können. Zum Beispiel AK 47. Ich kann daraus ein Gewehr machen und die Klasse ist diese BPAK 47, die wir Hier kannst du sehen, dass wir jetzt die Informationen anstelle einer Datentabelle haben jetzt die Informationen anstelle einer Datentabelle Wir können diese Informationen tatsächlich extrahieren und in unserem Spiel verwenden Lassen Sie uns das anhand unserer Datentabelle hier von Google Sheet tun. Ich werde auf diesen Eintrag klicken, den Sie gerade erstellt haben, und einfach zufällig einen davon auswählen. Zum Beispiel dieser PPK 47. Dann kannst du schreiben, jetzt auf diesen klicken und Kopieren sagen, denn jetzt kopierst du diese Referenz. Hier kannst du sehen, wie wir es tatsächlich in dein Google-Blatt schreiben müssen. haben wir schon gemacht. Wir haben den Namen hier richtig geschrieben, so. Wir haben den Typ wie dieses Gewehr geschrieben, zum Beispiel. Für die Klasse musst du es auch so schreiben, wenn ich V nur hier drinnen kontrolliere. Vergiss nicht, hier drüben zu schreiben, es zu kopieren, V zu kontrollieren. Drinnen drin. Ich werde es einfach protokollieren, damit ich sehen kann, was ich mache. Einfach so. Okay, hier drin, so macht man es. Jetzt kopierst du diesen und fügst ihn in die anderen ein. Denken Sie daran, dass dies statt einer AK 47 44 ist. Sie müssen es also genau als Referenz schreiben. Ich beziehe mich auf diese PP 44. Ich kann wieder hierher gehen Das sind die richtigen Ordner, Baupläne, Waffen. Und ich muss das nur 1141 ändern. Die letzte ist die Pistole namens BP-Pistole. Ich schreibe hier auch P Pistol Pistol. Okay. Jetzt habe ich die richtigen Informationen. Was ich jetzt tun muss, ist auf Datei zum Herunterladen zu klicken und CSV auszuwählen. Dies ist das Format, das wir verwenden müssen. Wenn ich jetzt meinen Download-Ordner hier öffne, nennen wir ihn T für Datentabelle. Ich nenne es den gleichen Namen wie hier, damit es importiert werden kann. Denken Sie daran, den gleichen Namen zu verwenden, ET Weapon Info. Jetzt können Sie es anklicken und hierher ziehen. Wenn Sie darauf klicken und es hierher ziehen, wird angezeigt, dass der erwartete Spaltenname nicht gefunden wurde. Ich bin mir nicht sicher, wie ich es nenne. Ich habe es Namen genannt. Das liegt daran, dass wir hier tatsächlich eine Spalte brauchen. Wir müssen mit der rechten Maustaste klicken und links eine Spalte hinzufügen und sie ID nennen. Aus irgendeinem Grund erstellt es eine ID, die brauchen wir auch. Normalerweise kopiere ich einfach alle Namen und füge sie hier ein. Es wird tatsächlich Informationen aus der ID extrahieren. Und wenn Sie zum Beispiel diese ID hier extrahieren, kennt sie den Namen, den Typ, diese Klasse und so weiter. Es kennt also all diese Informationen. Sie benötigen tatsächlich zuerst einen Ausweis. Okay, lassen Sie uns jetzt versuchen, es erneut als CSV herunterzuladen. Gehen wir zurück zu diesem Punkt. Ich werde diesen Namen kopieren. Ich werde den alten löschen. Und für das neue werde ich es so umbenennen. Und jetzt kann ich es hierher ziehen. Jetzt können Sie sehen, dass es richtig funktioniert. Also brauchen wir diese ID. Jetzt können Sie sehen, wenn ich meine Datentabelle importiere, dass sie automatisch alle Informationen ausfüllt. Also, ich klicke auf das erste und du kannst sehen, dass es das Gewehr AK 47 hat und es auf den richtigen Bauplan eingestellt ist Und der andere, zum Beispiel bei vier Eins, du kannst auch die richtigen Informationen sehen, ist auch hier. Sie können also sehen, wie nett es für Leute ist, die nicht programmieren können. Sie können hier einfach reingehen und den Waffentyp ändern, den Waffentyp ändern, oder sie können den Namen der Waffe ändern. Und das einzige, was Sie jetzt tun müssen, ist einfach auf Datei zu klicken. Laden Sie diesen Ordner oder Datei herunter und ziehen Sie sie einfach in Ihr Spiel. Und es wird alle Werte ändern. Hier kannst du dir vorstellen, dass du einen Ladenwert haben kannst und du kannst Münzen für die Waffe kosten lassen, wenn du sie im Laden kaufst. Und der Spieledesigner kann einfach hierher kommen und all diese Werte in der Excel bearbeiten. Sie können hier sogar Formeln erstellen und berechnen. Dann können Sie einfach auf Herunterladen klicken und es einfach hierher ziehen . Dadurch werden alle Münzwerte darin geändert . Sie müssen das nicht innerhalb des Motors machen. Wirklich nett, eine Datentabelle zu verwenden, besonders für Leute, die nicht programmieren können. Sie können hier reinkommen und es aus der Datentabelle ändern, jetzt haben wir es hier drin. Als Nächstes müssen wir eine Funktionsbibliothek verwenden. Lassen Sie uns das in der nächsten Lektion tun. 101. 8.16 Verwendung der Funktionsbibliothek: Der letzte Schritt, bevor wir diese Datentabelle verwenden können , besteht darin, eine Funktionsbibliothek zu erstellen Eine Funktionsbibliothek, einfach wie der Name sagt, eine Bibliothek und darin befinden sich Funktionen. Lass uns einfach nochmal mit der rechten Maustaste hier klicken und einen neuen Ordner erstellen. Lassen Sie mich das Bibliotheken nennen. Und lassen Sie uns die Farbe in diesem Ordner ändern. Klicken wir mit der rechten Maustaste auf Gehe zu Blueprints und verwenden diese sogenannte Blueprint-Funktionsbibliothek Sie können sehen, dass wir bereits eine Blueprint-Kuh verwendet haben. Wir verwenden die Blueprint-Bibliothek. Wir haben die Blueprint-Schnittstelle verwendet. Die Makrobibliothek ist genau wie die Funktionsbibliothek. Wir haben die Aufzählung verwendet und wir haben auch die Struktur verwendet Sie können sehen, dass wir die meisten dieser Blueprint-Kurse tatsächlich durchgegangen meisten dieser Blueprint-Kurse tatsächlich durchgegangen Wirklich nett, dass du das alles überstanden hast und die Erfahrung machst Lassen Sie uns eine Blueprint-Funktionsbibliothek erstellen. Und lassen Sie mich sie BP-Funktionsbibliothek nennen , weil ich nur eine in meinem Spiel habe Lassen Sie uns diese Funktionsbibliothek innerhalb einer Funktionsbibliothek öffnen . Sie können Funktionen erstellen und Sie können sie hier erstellen. Das Gute an einer Funktionsbibliothek ist , dass Sie die Funktionen global verwenden können. Wenn ich hier eine Funktion erstelle, lassen Sie mich sie einfach, zum Beispiel, random nennen , wenn ich kompiliere. Wenn ich jetzt zum Beispiel zu meinem Player-Blueprint gehe. Und ich schreibe Click and Say Random, so habe ich es genannt Sie können sehen, ich kann jetzt Funktionen aus einer Funktionsbibliothek sehen . Es spielt keine Rolle , wo ich das schreibe. Wenn ich den Spielmodus öffne und schreibe, lass mich aus diesem Modus herauskommen, lass mich zum Event-Graph gehen und Random sagen. Sie können sehen, ich kann die Funktion in der Funktionsbibliothek sehen . Welche Funktion du auch immer hier erstellst , sie lässt sich global anhand aller Baupläne nachvollziehen Denken Sie nur daran, dass hier nicht grundlos funktionieren, weil das Leistung beansprucht Wenn diese Bibliothek riesig ist, sollten Sie sie nur verwenden, wenn Sie eine Funktion haben , die in vielen Blueprints verwendet wird Wenn du zum Beispiel die Waffeninformationen erhältst, kannst du sie in der Spielerbasis verwenden Sie könnten das im Spielmodus verwenden. Sie könnten das im Play-Controller verwenden. Wenn Sie eine Funktion haben , die Sie mehrere Blueprints verwenden möchten, machen Sie weiter und erstellen Sie sie in einer Funktionsbibliothek, sodass Sie nicht in jedem Blueprint immer wieder dieselbe Funktion erstellen müssen in jedem Blueprint immer wieder Bestimmte Funktionen erstellen sie jedoch nicht innerhalb einer Funktionsbibliothek Dies ist nur für Funktionen gedacht, die Sie Blueprints häufig verwenden werden In diesem Fall werden wir es zum Beispiel Get info nennen Wir bekommen die Waffeninformationen. Ich werde auch Pure ankreuzen, Pure macht es einfach zu dieser grünen Funktion. Wenn ich kompiliere und du siehst ob ich zum Beispiel zur Spielerbasis gehe und sage Waffeninformationen abrufen, kannst du sehen, dass es grün geworden ist. Und der Grund, warum es grün wurde, ist, dass ich auf Pure geklickt habe. Und hier kannst du es sehen. Es sieht tatsächlich so aus wie diese grünen Funktionen , wenn Sie eine erstellt haben. Hier zum Beispiel, für diesen bekommen wir den Controller, du kannst sehen, dass er grün ist, weil er einfach Informationen empfängt. Wenn du Informationen eingibst , brauchst du diese Pins hier und sie sind blau. Das sind Set-Funktionen und das sind Get-Funktionen. Sie erhalten einfach Informationen, ohne etwas zu ändern. Das wollen wir tun. Wir wollen unsere Waffeninformationen haben. Wir setzen es auf Pure, weil wir hier nichts ändern. Die Hauptfunktion, die wir hier verwenden müssen, wenn Sie mit der rechten Maustaste darauf klicken, ist die Datentabellenzeile. Diese hier unten, aber die Datentabellenzeile. Das ist die Hauptfunktion , die wir verwenden müssen. Und wir müssen unsere Datentabelle auswählen. Also müssen wir Informationen von T Weapon Info bekommen. Jetzt müssen Sie ihm sagen, welche Informationen Sie daraus erhalten möchten? Jetzt muss das dynamisch sein, je nachdem, was Sie im Spiel tun. Lass es uns einfach machen und ich kann es später für die Waffeninformationen erklären. Lassen Sie uns jetzt eine Variable erstellen und sie Waffenname nennen. Und ich werde daraus eine Zeichenfolge machen. Ich nehme das und sage „Ersetzen“. Und benutze diese Funktion namens replace. Der Grund, warum ich das verwende, ist, wenn Sie in Ihrer Datentabelle einen Namen haben, zum Beispiel, sagen wir, Sie haben eine Waffe namens Vier in Eins. Tun wir einfach so , als wäre das eine Waffe. Sie haben Leerzeichen zwischen Ihrem Namen für die ID. Wenn Sie jetzt etwas innerhalb einer Datentabelle erstellen, die Leerzeichen tatsächlich entfernt. Wenn Sie die Datentabelle öffnen, nehmen wir an, Sie importieren diese Tabelle in Space Eins A. Wenn Sie das hier hineinimportieren, würde das Leerzeichen tatsächlich entfernt und es würde nur ein A ohne Leerzeichen geschrieben. Was ich normalerweise hier mache, um alle Leerzeichen von hier zu entfernen, wenn du sie hochlädst, nehme ich den Waffennamen hier in der Form. Ich drücke die Leertaste, achte darauf, ein Leerzeichen hinzuzufügen. Die beiden können einfach leer sein. Nichts hier drin, das ist es. Was das einfach macht, ist, dass es all die Leerzeichen aus diesen Namen nimmt. Nehmen wir an, es ist dieser. Es nimmt den Speicherplatz ein und ersetzt ihn durch nichts, was bedeutet, dass Sie den Raum tatsächlich auf diese Weise löschen. Dann wird es die richtige ID in dieser Datentabelle finden . Weil diese Datentabelle diese Leerzeichen automatisch entfernt, wenn Sie sie importieren. Wenn Sie nach einem Namen wie mit diesem Leerzeichen suchen , erhalten Sie eine Ära. Wir entfernen alle Leerzeichen, und jetzt fügen wir das hier ein. Es wird die Zeichenfolge automatisch in eine Namensvariable konvertieren . Dann können wir gleich von hier aus „Zurück“ sagen. Du kannst diesen Ausgang mit der Rückseite verbinden und diese eine Waffeninformation aufrufen. Okay, jetzt sind wir fertig und ich muss dir den ganzen Prozess erklären , weil das ein bisschen verwirrend sein könnte. Was wir jetzt hier tun, ist, dass wir jetzt zum Beispiel sagen können, wir innerhalb der Spielerbasis Waffeninformationen abrufen können dass wir innerhalb der Spielerbasis Waffeninformationen abrufen können. Und wir können die Funktion aufrufen, die wir in der Funktionsbibliothek erstellt haben. Wir bekommen diese Information. Jetzt müssen wir einen Waffennamen eingeben. Nehmen wir zum Beispiel an, wir werden das in der nächsten Lektion tun. Nehmen wir zum Beispiel an, ich habe den Namen AK 47 eingegeben Es wird diesen Namen annehmen. Es wird innerhalb dieser Funktion in die Funktionsbibliothek aufgenommen. Es wird den Namen hier übernehmen und alle Leerzeichen entfernen, falls es welche gibt. Es wird die AK 47, die ich hier geschrieben habe, in den Zeilennamen aufnehmen, was bedeutet, dass sie hier im Namen sucht, sie sucht nach der AK 47, sie sucht nach dieser. Jetzt weiß es, dass wir über diese Zeile sprechen. Es kennt den Namen, den Typ, die Klasse und so weiter. Sie können also von hier aus ziehen und Break sagen, Sie können Strukturen aufbrechen. Und jetzt können Sie alle Variablen sehen, da es die Informationen aus dieser Datentabelle bezieht, jetzt kennt es den Namen der AK 47, es weiß, um welchen Waffentyp es sich handelt, um welche Klasse es sich handelt, weil es all diese Informationen aus dieser Datentabelle bezieht. So benutzt man es und jetzt müssen wir diese Waffen tatsächlich benennen. Zählen Sie das vorerst auf. Lassen Sie uns kompilieren und speichern und dann weitermachen. 102. 8.17 Hinzufügen des Waffennamens: Was wir jetzt tun müssen, lassen Sie uns alles schließen. Gehen wir zurück zu den Waffen und gehen wir zur Waffenbasis. jetzt hier drinnen Lassen Sie uns jetzt hier drinnen eine neue Variable namens Waffenname erstellen. Geben wir ihr den String-Typ. Es ist also nur ein Text. Und wenn du kompilierst, siehst du, du kannst hier jetzt etwas für den Waffennamen schreiben. Da Sie diese Variable erstellen, denken Sie daran, dass alle Kinder diese Variable erben, da Sie sie innerhalb der übergeordneten Blueprint-Klasse erstellt übergeordneten Blueprint-Klasse alle Kinder diese Variable erben, da Sie sie innerhalb der Wenn Sie die Q 47 öffnen, können Sie in den Klassenvorgaben sehen , dass Sie jetzt einen Waffennamen schreiben können Du kannst es für jede Waffe spezifisch machen. Jetzt fügen Sie die Variable innerhalb der Waffenbasis hinzu und dann können Sie diese Variable so bearbeiten, dass sie für jedes Kind spezifisch ist. Der Waffenname für die AK 47 ist einfach K 47 für die Vier. Ich kann es hier sehen. Ich muss hier nicht klicken. Der Waffenname für die Vier ist 41. Lassen Sie uns auch das schließen. Was die Pistole angeht, es ist nur eine Pistole. Ich werde tatsächlich daran denken , hier einfach so zu kompilieren Speichere alles. Jetzt hast du den Waffennamen für jeden von ihnen geschrieben. Wir brauchen den Waffennamen, die richtigen Informationen aus der Datentabelle zu extrahieren , denn wenn der Waffenname Pistole ist, geben wir diesen Waffennamen ein und es wird all diese Informationen von hier extrahieren Okay, lass es uns jetzt schließen. Was wir jetzt zum Beispiel tun können, ist, zum Spieler zu gehen. Lass uns zum Spieler gehen. Ich werde dir nur zeigen, dass du hier nicht wirklich folgen solltest. Ich möchte dir eigentlich nur ein Beispiel geben. Wir haben zum Beispiel diese geplünderte Waffe. Diese geplünderte Waffe kann ich von hier herholen. Und jetzt kann ich Name sagen und diese Variable für den Waffennamen nehmen diese Variable für den Waffennamen Daraus kann ich noch Waffeninformationen sagen. Das ist die Funktionsbibliothek. Jetzt können wir das tatsächlich anschließen. Nehmen wir an, ich bin über eine AK 47 gelaufen. Ich bin drüber gelaufen und jetzt kann ich tatsächlich die Informationen daraus extrahieren, wenn ich einfach eine Zeichenfolge auf meinen Bildschirm drucke und sie hier unten anschließe. Nehmen wir das und sagen wir, durchbrich diese Struktur. Lass uns einfach den Namen dieser Waffe ausdrucken. Wenn ich einfach mitmache, gehe ich rüber, eigentlich muss ich mich entscheiden, also wenn ich Terroristen wähle und über diese Pistole gehe, wird sie Pistole ausdrucken Wenn ich das in vier Minuten durchgehe, wird es in 41 ausgedruckt Sie können also sehen, dass die Informationen jetzt korrekt extrahiert werden , je nachdem, wie der Waffenname lautet Lassen Sie mich das vorerst löschen. Denken Sie beim Hinzufügen dieser Variablen zur übergeordneten Klasse unbedingt daran, dass Sie in jedes der untergeordneten Klassen gehen und deren Wert ändern müssen. Okay, mach weiter und speichere alles und lass uns weitermachen. 103. 8.18 Ersetzen der WeaponType-Variablen: Ordnung, in dieser Lektion werde ich die Variable Waffentyp ersetzen Wenn wir zur Waffenbasis gehen, denken wir daran, dass wir diesen Waffentyp hergestellt haben und wir ihn hier verwenden , um zu überprüfen, ob der Spieler die Waffe bereits im Inventar hat . Diesen Waffentyp haben wir bereits innerhalb der Struktur hergestellt. Wenn du zu der Struktur gehst, denk daran, dass wir diesen Typ gemacht haben. Jetzt brauchen wir diese zusätzlichen Variablen nicht mehr herumliegen. Wir können tatsächlich einfach unsere Struktur verwenden, um dies zu ersetzen. Was wir jetzt tun können, statt all das zu tun, anstatt den Waffentyp so zu nehmen, können wir jetzt sagen, Waffeninformationen abrufen. Wir können das hier nehmen und den Namen so eintragen. Denken Sie daran, dass wir uns in der Waffenbasis befinden. Wir haben den Namen schon hier. Um den Waffentyp zu ermitteln, müssen wir mit der Maus ziehen und Break sagen, dann können wir das kaputtmachen. Was du tun kannst, du kannst auch hier klicken und Split Struct sagen. Und du kannst solche bekommen. Ich schreibe jedoch gerne einfach Pause und habe sie stattdessen hier draußen. Das ist jetzt nur die Präferenz. Ich kann jetzt diesen Typ nehmen, das ist der Waffentyp, und ich kann ihn hier einstecken. Jetzt können Sie sehen, dass es dasselbe ist. Jetzt kann ich diese Waffentypvariable tatsächlich löschen diese Waffentypvariable , um die Pins zu verstecken, die Sie nicht verwenden. Damit es besser aussieht, kannst du darauf klicken und auf „Nicht verbundene Pins ausblenden“ drücken . Es sieht so aus Okay, ich muss das etwas später organisieren, aber lassen wir es einfach für diesen Waffentyp hier sein. Ich ziehe das ab und sage nochmal den Namen. Holen Sie sich den Waffennamen, holen Sie sich die Waffeninformationen. Und dann kannst du das kaputt machen. Dann kannst du den Typ hier drüben einstecken, stattdessen können wir ihn auch löschen. Jetzt können Sie sehen, dass wir diese Variable nicht mehr verwenden. Wir haben alle Informationen für die Waffe in diesem. Okay, ich werde das ein bisschen organisieren. Okay, jetzt ist es etwas übersichtlicher, um nachzuschauen , ob Sie noch andere Referenzen dieses Waffentyps haben . Anstatt danach zu suchen, weiß ich, dass wir es auch in der Spielerbasis eingesetzt haben. Aber wenn du dich nicht erinnern kannst, nehmen wir an, du kommst einen Monat später hierher und weißt nicht mehr, wo du es benutzt hast. An anderer Stelle kannst du sehen, ob du jetzt versuchst, es zu löschen . Dort steht, dass der variable Waffentyp bereits verwendet wurde. Willst du es löschen? Ich drücke Nein, weil wir es immer noch benutzen. Klicken Sie mit der rechten Maustaste hier und sagen Sie Referenzen suchen. Nun, hier unten werden nur die Referenzen in diesem Blueprint gefunden die Referenzen in diesem Blueprint Aber wenn Sie auf dieses kleine Symbol klicken, wird es in allen Bauplänen gefunden Es wird in allen Bauplänen suchen. Und Sie können sehen, dass es in der BP-Spielerbasis verwendet wird. Wenn du hier auf die Variable doppelklickst, gelangen wir zu und wir haben sie hier in der Beutewaffe verwendet wo wir den ausgerüsteten Waffentyp festgelegt haben Anstatt das noch einmal zu tun, nehmen wir diese geplünderte Waffe. Nehmen wir an, wir holen die Waffe rein. Holen Sie sich tatsächlich Waffeninformationen. Holen Sie sich den Namen, holen Sie sich den Waffennamen. Anstatt das alles immer wieder zu machen, gehe ich einfach zur Waffenbasis und kopiere das und das hier. Also die Git-Waffeninformationen und die Bremsstruktur. Also kann ich es einfach hier einfügen und ich kann hier einstecken, es ist ein bisschen schneller. Und du kannst den Typ jetzt hier einstecken. Und Sie können das wieder löschen, nur um zu versuchen, es so gut wie möglich zu organisieren. Aber Sie können sehen, dass es jetzt im Vergleich zu früher sehr lang ist. Aber auch hier sind alle Informationen in dieser Struktur enthalten, sodass sie für Sie viel übersichtlicher sein wird. Ordnung, jetzt haben wir das und lassen Sie uns meine Referenzen erneut öffnen. Ich werde jetzt auf diesen doppelklicken. Und ich verwende es hier, wenn ich den Akteur wechseln oder an meine Mesh-Komponente anhängen möchte . Nochmals, genau wie zuvor. Lassen Sie uns das alles einfach kopieren, weil wir eigentlich nur diese geplünderte Waffe benutzt Nochmals, ich gehe zurück, rep plünderte und ich werde das löschen und Platz darüber hinaus schaffen und es dann hier rep plünderte und ich werde das löschen und Platz darüber hinaus schaffen und verbinden Und dann schieb sie einfach zurück. Das Gleiche hier unten. Lösche sie und verbinde sie. Einfach so. Okay, jetzt hast du es kompiliert, alles gespeichert. Und das sollte alles sein, was du sehen kannst. Sie haben keine weiteren Referenzen. Das waren sie alle. Wenn du jetzt zur Waffenbasis zurückkehrst und auf Löschen drückst, wird sie automatisch gelöscht, weil du sie nicht mehr verwendest. Jetzt können Sie sehen, dass wir sie alle ersetzt haben. Die Baupläne werden in Zukunft immer sauberer. Wir haben nicht etwa zehn Variablen für die Waffe. Wir haben sie alle innerhalb unserer Funktionsfunktion, unserer Struktur. Und aus dieser Struktur diese Informationen aus der Datentabelle entnommen. Und wir können es später immer noch länger machen. Aber im Moment sind das alle Informationen, die wir benötigen. Lassen Sie uns jetzt alles speichern und weitermachen. 104. 8.19 Input-Aktion für Drop-Waffen-Waffen: Okay, bevor wir uns mit der Lot-Funktion befassen , zum Beispiel, wenn Sie eine Taste drücken Wenn ich bei einer Waffe am Boden E drücke und sie verloren habe, ist es meiner Meinung nach viel besser, mit einer Waffe anzufangen. Denn wenn du eine Waffe in der Hand hältst, musst du sie auch fallen lassen, wenn du die andere plünderst Lass uns damit beginnen, zuerst eine Waffe fallen zu lassen, bevor wir sie mit einer Taste auf der Tastatur Gehen wir zur Eingabe hier im Player-Ordner. Gehen Sie mit der rechten Maustaste zur Eingabe. Eigentlich kannst du versuchen, es selbst zu machen, wenn du willst. Dies ist ein guter Moment für Bewegung. Davon haben wir schon viele gemacht. Du solltest in der Lage sein, es selbst zu tun . Versuche es selbst zu machen. Versuchen Sie nach Möglichkeit, eine Eingabeaktion zu erstellen oder eine Waffe fallen zu lassen. Und füge es dem Eingabe-Mapping-Kontext hinzu. Und füge das Event auch zur Spielerbasis hinzu. Lass es uns jetzt hier zusammen machen. Gehen wir mit der rechten Maustaste zu Eingabe und wählen Sie Eingabeaktion. Nennen wir das eine Waffe. Lass es uns öffnen. Eigentlich müssen wir hier drinnen nichts ändern. Gehen wir zum Mapping-Kontext. Lassen Sie uns ein neues Mapping hinzufügen. Lasst uns die Drop Weapon auswählen. Ich lasse die Waffe mit der G-Taste auf meiner Tastatur fallen , genau wie bei Counterstrike Jetzt kannst du alles andere verwenden, für den Modifikator in Ordnung ist Ich werde auf Gedrückt klicken, weil Sie die Taste drücken müssen und der Code wird abgespielt , sobald er diesen Zeitraum nicht mehr erreicht hat Okay, jetzt haben wir das. Lass es uns schließen. Lass uns zum Spieler gehen, zur Spielerbasis. Und hier drinnen gehen wir zum Event-Graph. Hier unten kannst du mit der rechten Maustaste klicken und den Namen erneut schreiben, genau wie du es mit der Eingabe oder der Drop Weapon gemacht hast. Klicken Sie mit der rechten Maustaste und sagen Drop Weapon und hier ist das Event, das Sie verwenden müssen. Jetzt können wir die Drop-Weapon-Logik einprogrammieren. Speichern wir alles und fahren wir mit der nächsten fort. 105. 8.20 Drop-Waffenlogik: Ordnung, also lasst uns hier mit der Drop-Weapon-Logik loslegen mit der Drop-Weapon-Logik Jetzt müssen wir wissen , welche Waffe du aus dem Inventar entfernen möchtest. Jetzt lassen wir es über den Server laufen. Auch hier müssen wir es über den Server laufen lassen , um Cheaten zu verhindern. Also werde ich ein neues benutzerdefiniertes Event namens SRV Weapon erstellen namens SRV Lassen Sie uns das auf dem Server und zuverlässig ausführen. Lass uns den Server hier drinnen laufen lassen. Okay, also wenn ich die G-Taste drücke, um meine Waffe fallen zu lassen, wird sie dieses benutzerdefinierte Event durchlaufen. Jetzt müssen wir wissen, welche Waffe wir fallen lassen. Wir lassen die Waffe fallen, die wir in unseren Händen halten. Wir müssen wissen, welche Waffe wir in unseren Händen halten. Im Moment ist es tatsächlich dieser ausgerüstete Waffentyp. Es weiß, ob wir ein Gewehr oder eine Pistole in der Hand haben oder ob wir für diese ausgerüstete Waffe unbewaffnet sind Ich werde es sogar umbenennen, damit es besser klingt. Es ist keine ausgerüstete Waffe, es ist ein ausgerüsteter Waffentyp. Wir müssen hier auch den Namen ändern. Eigentlich mit dem Set ausgerüstete Waffe. Es ist ein Waffentyp mit festgelegter Ausrüstung. Ich werde es auch hier unten machen, Waffentyp einstellen. Und das Gleiche hier für die Variablen. Sie werden als ausgerüsteter Waffentyp und ausgestatteter Waffentyp bezeichnet . Ausgerüsteter Waffentyp. Es ist korrekter als zuvor. Jetzt wissen wir bereits, welcher Waffentyp ausgerüstet ist. Wir müssen das im Inventar finden. Wir müssen das Waffeninventar durchführen. Und wir können für jede Runde mit Pause sparen. Und lassen Sie uns es hier wieder verbinden. Denken Sie daran, dass wir uns den Namen in der letzten Lektion gemacht haben. Nehmen wir das und sagen Namensvariable und nehmen das, um den Waffennamen zu ermitteln. Jetzt bekommen wir gerade den Waffennamen des Gegenstands. Die Waffe hier. Dann hol dir von diesem Waffennamen wieder Waffeninformationen. Die Struktur hier, lasst uns sie durchbrechen. Die Sache, die uns interessiert , ist, den Waffentyp gerade aus dem Inventar zu bekommen Waffentyp gerade aus dem , das wir durchforsten. Wenn dieser Typ, den wir gerade im Inventar betrachten , gleich aufzählt, wenn er dem ausgerüsteten Waffentyp entspricht, bedeutet das, dass wir diese Waffe im Inventar haben und es ist die, die wir in der Hand haben jetzt. Wenn das der Fall ist, wollen wir diese Waffe sofort fallen lassen. Okay, wenn es die Tatsache ist dass die Waffe, nach der ich gerade suche , in meinem Inventar mit dem Waffentyp übereinstimmt, mit dem ich gerade ausgerüstet bin. Das bedeutet, dass diese Waffe hier tatsächlich die ist , die wir aus dem Inventar entfernen wollen. Wenn das stimmt, klicken wir mit der rechten Maustaste hier und machen daraus eine Variable. Ich nenne das eine Waffe zum Abwerfen. Und wir können es jetzt mit hier verbinden. Genau wie bevor du das gemacht hast, schauen wir mal, ob wir es finden können. Du hast diese eine Beutewaffe hergestellt. Wenn du die Waffe plünderst, entfernst du die Kollision hier aus der Benachrichtigungsfunktion Das Gleiche müssen wir hier unten mit der Drop Weapon machen, weil wir die Physik wieder aktivieren müssen. Denken Sie daran, dass wir von Anfang an Physik an den Waffen simuliert von Anfang an Physik an den Waffen In diesem Fall müssen wir hier eigentlich dasselbe tun. Lassen Sie uns einige Hinweise zur hinteren Route hinzufügen, damit diese Waffe fallen kann. Lass uns darauf klicken und sagen, lass uns kompilieren. Lassen Sie uns diese Funktion in der nächsten Lektion ausführen. Aber lassen Sie uns vorerst hier weitermachen, wir lassen die Waffe fallen. Und denken Sie auch daran, sie aus dem Inventar zu entfernen. Ich werde dieses Inventar hier aufnehmen und es hier einfügen und Artikel entfernen sagen. Sagen wir, entfernen Sie den Artikel auf diese Weise. Lassen Sie uns nun den Artikel auswählen, den wir entfernen möchten. Es ist dieser Waffengegenstand oder Inventargegenstand. Jetzt entfernen wir es aus dem Inventar, denn wenn du das nicht tust, ist es tatsächlich immer noch im Inventar. Wenn du es auf den Boden fallen lässt, müssen wir daran denken, auch den Waffentyp zu aktualisieren , mit dem du ausgerüstet bist. Ziehe von hier und sage „ Waffentyp ausrüsten“. Stellen wir es vorerst einfach auf unbewaffnet ein. Wir können es später ändern, wenn du eine Pistole oder was auch immer du gerade hast, wenn du die Waffe fallen Lass uns sie einfach auf unbewaffnet stellen Und das war es. Und jetzt lässt du die Waffe tatsächlich fallen. Jetzt sind wir mit diesem fertig. Wir müssen diese Funktion jedoch immer noch mit der Funktion „Rep, Notify“ einrichten. Lassen Sie uns das in der nächsten Lektion tun. 106. 8.21 Benachrichtigung über Drop-Waffen-Rep-Waffen: Okay, lassen Sie uns die Waffe öffnen, um den Mitarbeiter zu benachrichtigen. Wenn Sie sich nicht erinnern, was wir getan haben, können Sie jederzeit zu der angedeuteten Waffe zurückkehren. Und hier haben Sie die simulierte Physik entfernt, Sie haben die Kollision für die Waffe entfernt , weil Sie sie jetzt in der Hand halten und auch die Kollisionsphärenkollision entfernt haben . Sie können dem entgegenwirken: Wenn wir wieder zu unserer Waffe zurückkehren, müssen wir zuerst die Waffe von der Hand lösen Denn denk dran bei den geplünderten Waffen, dass du das an den Charakter angehängt hast Als Erstes müssen wir diese Waffe nehmen, um sie fallen zu lassen. Wir müssen loslassen sagen. Und du kannst diesen auswählen. Trenne dich vom Schauspieler. Jetzt nimmst du dieses Ding hier ab, diese Waffe, um sie von diesem Schauspieler fallen zu lassen Lassen Sie uns den Standort, Rotation und den Maßstab beibehalten, damit Welt dort bleibt, wo sie sich gerade auf der Welt befindet Es behält einfach den Standort und so weiter. Genau das Gegenteil der geplünderten Waffen. Nehmen wir das und sagen wir, setzen wir zuerst eine Kollision ein , weil wir Physik nicht simulieren können Wenn Sie die Kollision tatsächlich nicht richtig einstellen, lassen Sie uns die Kollision aktivieren. Es ist eigentlich die Waffe. Wenn du zurückgehst, wenn du dich nicht erinnern kannst, gehe immer zurück zur Waffenbasis und überprüfe, was zur Kollision führen muss. Denkt daran, dass es die Waffe ist, die hier diese Kollision braucht. Wir müssen das nehmen und zuerst die Waffe nehmen, die Waffenvariable, das besorgen. Dann können wir sagen, hier die Kollision aktivieren. Lass es uns verbinden. Denken Sie daran, dass es sich bei der Kollision nur um Physik handelte. Wir brauchen hier keine Abfrage für dieses Netz, nur Physik. Und wir müssen auch Physik simulieren. Und das machen wir mit der Waffe. Denken Sie daran, wenn Sie zurückgehen und auf die Waffe klicken , simulieren Sie hier Physik. Es ist nicht in den Klassenstandards enthalten. Du musst aus der Waffe ziehen und sagen, Physik simulieren Und wähle diesen Gott aus und verbinde ihn und aktiviere Physik. Mach weiter und mach dir ein paar Notizen zur Umleitung, um es schöner zu machen. Okay, jetzt simulieren wir Physik und wir haben auch einige Kollisionen aktiviert Denken Sie jetzt daran, dass Sie auch die Kollision deaktiviert haben. Wenn ich zu der geplünderten Waffe zurückkehre, hast du auch die Kollision für die Kollisionskugel deaktiviert Du musst diese nehmen und du musst die Kollisionskugel-Variable nehmen Du gehst hier nach unten, nimmst die Kollisionskugel und aktivierst dann wieder eine Kollision und gehst raus und wählst Und ja, einfach so. Jetzt müssen Sie die Kollision so einstellen, dass sie nur abfragt, weil die Kollision eigentlich nur eine Abfrage für die Kollisionskugel ist . Sie können es hier sehen. Nur Abfrage, wir müssen es auf Nur Abfrage einstellen. Ich glaube, das ist das Einzige, was wir tun mussten. Lass es uns testen. Lass uns sehen, ob alles funktioniert. Wenn wir eine Kiste haben, die wir reparieren müssen, spielen wir als Terrorist. Wenn ich jetzt laut, zum Beispiel die AK, drücke und auf G klicke, die Waffe fallen lasse, kannst du sehen, dass sie auf den Boden fällt. Einfach so. Genial. Lass uns tatsächlich in der ersten Person spielen, damit ich es besser sehen kann. Ich klicke auf meinen Federarm für die Spielerbasis und setze ihn auf Null. Lass uns in der ersten Person spielen. Lass uns das K nehmen. Jetzt halte ich es in der Hand und drücke weiter, um es fallen zu lassen. Jetzt kannst du sehen, dass es auf dem Boden liegt. Fantastisch. Lass uns versuchen, diesen hier zu nehmen und ihn auf den Boden fallen zu lassen. Jetzt können Sie sehen, dass wir Geld haben. Ich glaube nicht, dass es unsichtbar ist , weil du es auf meinem Rücken nicht sehen kannst Ich frage mich, was passiert. Nehmen wir den Frühling. Ich stelle es auf 600 , um zu sehen, was passiert. Und es ist eigentlich nur die M Vier. So können Sie sehen, dass die Pistole richtig funktioniert. Das K funktioniert auch richtig. Es passiert nichts außer der M Four. Ich lade es beim ersten Mal richtig. Wenn ich es jedoch fallen lasse und hineinlaufe, oh, es ist tatsächlich unter mir. Du kannst es an meinen Füßen sehen. Es ist da. Lassen Sie uns das wirklich schnell beheben. Ich denke, wir müssen den Standort zurücksetzen. Wenn du zum Vertreter gehst, melde dich für die geplünderte Waffe. Immer wenn du eine Waffe plünderst, musst du sie zurücksetzen und transformieren . Lassen Sie uns das hier tun, nachdem wir an die Root-Komponente angehängt Was ich hier tun kann, ist, die Waffe zu nehmen und einfach Reset sagen zu können. Und Sie können etwas sehen Reset, relative Transformation genannt wird. Es wird die Transformation dieser Waffe hier im Bauplan zurücksetzen die Transformation dieser Waffe hier im Bauplan Da es nicht ausreicht, sie wieder an die Wurzelkomponente anzuhängen, müssen wir auch ihre Transformation zurücksetzen Lassen Sie uns kompilieren und spielen und sehen, ob das unser Problem behebt. Ich nehme sie vier, ich lasse es fallen. Ich nehme sie wieder vier, und jetzt können Sie sehen, dass es richtig funktioniert. Wenn ich mit meinem Federarm zurückgehe, setze ich ihn auf Null. Spiel jetzt als Terrorist. Ich kann das jetzt in vier Minuten aufnehmen und dann fallen lassen. Ich kann es wieder nehmen. Ich kann es fallen lassen. Sie können jetzt sehen, dass es richtig funktioniert. Es ist eine gute Mechanik, dass wir eigentlich zuerst die Kollisionssphäre verlassen müssen , bevor wir wieder plündern können. Weil du dir vorstellen kannst, wenn du sie fallen lässt und du diese Funktion nicht hast, plünderst du die Waffe weiter Wenn du sie unter dich fallen lässt, musst du raus und wieder rein gehen und alles funktioniert perfekt, in Ordnung Das Letzte, was wir auch vergessen haben, oder ich habe vergessen, ist, den Kreislauf zu durchbrechen. Denn wenn Sie die Waffe hier finden, müssen wir die Schleife tatsächlich durchbrechen. Wir müssen das nehmen und es bis zum Ende durchgehen lassen. Und lassen Sie uns doppelklicken, um Knoten umzuleiten, damit es besser aussieht Denn wenn wir jetzt die Waffe finden, müssen wir den Kreislauf unterbrechen Wir müssen nicht noch mehr durchgehen , weil wir die Ergebnisse bereits gefunden haben. Wir müssen es hier durch den Kreislauf durchbrechen. Das wird es optimierter machen. Lassen Sie uns nun kompilieren und klicken wir auf Play. Und spiele das Chara, nur um zu testen , ob alles richtig funktioniert Jetzt können wir sehen, dass auch mit der Pistole alles einwandfrei funktioniert Alles funktioniert auch gut. Jetzt bekommst du manchmal eine Fehlermeldung, wenn du die Waffe fallen lässt und du eigentlich nichts da drüben hast . die Waffe einfach weiter fallen zu lassen, müssen wir überprüfen, ob Sie tatsächlich eine Waffe haben oder nicht. Wir müssen diese ausgerüstete Waffe nehmen und uns fragen, ist sie gleichbedeutend mit unbewaffnet? Eigentlich können wir sagen, ist es nicht gleichwertig? Das wird viel besser sein. Wenn es nicht gleich unbewaffnet ist, kannst du weitermachen und die Waffe fallen lassen Wenn sie unbewaffnet ist, hast du nichts in der Hand und es macht keinen Sinn, die Waffe fallen zu lassen Wenn es nicht unbewaffnet ist, kannst du weitermachen und die Waffe fallen lassen, und das wird es viel besser machen Und entferne auch eine Kiste, die du vielleicht später hast, wenn du die Waffe fallen lässt Und Sie können sehen, dass jetzt alles so funktioniert, wie es soll. Lassen Sie sich jedoch nicht zu sehr betrügen , denn jetzt versuchen wir, es als Client zu spielen Wenn ich jetzt als Klient als Terrorist gespielt habe und wenn ich in eine Waffe trete, können Sie sehen, dass sie korrekt geplündert Und wenn ich auf G klicke , um die Waffe fallen zu lassen, okay, alles ist nett Wenn ich es jedoch noch einmal plündere, kannst du sehen, dass ich etwas in der Hand habe und ich halte tatsächlich die Waffe in der Hand Es ist jedoch immer noch am Boden. Was passiert? Dieser Fehler tritt auf, weil der Mitarbeiter benachrichtigt Wenn ich zur Spielerbasis gehe, werden die Benachrichtigungen von Rep nur dann aufgerufen, wenn sich der Wert ändert werden die Benachrichtigungen von Rep nur dann aufgerufen, wenn Wenn ich hier zum Beispiel die Waffe verloren habe, nehmen wir an, ich spiele auf die Waffe an. Okay, nett Ich habe diese Variable gesetzt und der Mitarbeiter informiert, dass sie auf Pistole gesetzt ist Wenn ich es jetzt fallen lasse, gehen wir zurück zum Spiel Wenn ich es hier fallen lasse, wenn ich die vier zuordne, okay, schön, lass es fallen Wenn ich zur Pistole gehe, funktioniert das okay. Du kannst sehen, dass ich das kann. Allerdings kann ich dieselbe Waffe nicht zweimal verlieren. Das wird sie, aber ich gehe hinein, du kannst sehen, dass sie abstürzt und etwas komisch ist. Das liegt daran, dass, wenn es derselbe Wert ist, der hier eingegeben wird wie beim letzten Mal, er tatsächlich keine Benachrichtigungsfunktion für Mitarbeiter aufrufen wird Die Benachrichtigungsfunktion für Mitarbeiter wird nicht aufgerufen wenn es sich um denselben exakten Wert handelt, den Sie hier eingegeben haben. Und das passt zu allem. Nehmen wir zum Beispiel an, Sie hatten eine Vektorvariable und legen einige fest. Nehmen wir an, Sie legen die Position der Waffe fest. Nehmen wir an, Sie legen den Standort der Waffe fest und lassen ihn tatsächlich über eine Benachrichtigung des Kundendienstmitarbeiters laufen Nehmen wir an, der Standort der Waffe muss 000 sein und Sie haben ihn hier eingegeben Wenn du das nächste Mal ausführst und die Position der Waffe exakt dieselbe ist, wird die Funktion zur Benachrichtigung des Kundendienstmitarbeiters tatsächlich nicht ausgeführt Die Funktion für den Mitarbeiter wird nur ausgeführt, wenn Sie den Wert ändern Lassen Sie uns diesen hier löschen. Lasst uns das auf dem Waffenstandort löschen , den wir gerade erstellt Was wir hier tun müssen, ist , das zu ändern. Lassen Sie uns das in der nächsten Lektion tatsächlich tun. 107. 8.22 Zurücksetzen des Benachrichtigungswerts des Vertreters: Ordnung, lassen Sie uns nun die Funktion für die Benachrichtigung von Mitarbeitern zurücksetzen, damit sie korrekt funktioniert Also, was wir hier tun können, jetzt benutzt du diese Drop Weapon Sie führen es richtig aus. Lassen Sie uns es jetzt hier zurücksetzen. Wenn die Schleife abgeschlossen ist und all dies abgeschlossen ist, setzen wir diesen Wert zurück. wir ihn also das nächste Mal setzen, er, obwohl er derselbe Wert ist, wird er, obwohl er derselbe Wert ist, diese Benachrichtigung ausführen, weil wir ihn zuvor zurückgesetzt haben. Einzige, was ich hier unten tun muss, ist, dass wir diese Waffe abwerfen. Nehmen wir das hier hin. Das ist hier unten, die Waffe zum Abwerfen. Lass es uns hier rausbringen. Lassen Sie uns eine Verbindung zum Ganzen herstellen. Eigentlich ist das das einzige, was Sie tun müssen , wenn Sie nichts in diesen Wert stecken, es wird alle Informationen , die darin enthalten sind, wegwerfen alle Informationen , die darin enthalten sind, und dadurch wird diese Variable hier zurückgesetzt. Was wir jetzt tun können, ist, dass es einen kleinen Bug geben wird, und den werdet ihr wahrscheinlich auch sehen. Wenn wir jetzt auf Play klicken, nehme ich das, ich lasse es fallen, du kannst sehen, dass es jetzt in der Luft ist. Wir nehmen es richtig auf. Es ist jedoch immer noch in der Luft. Das ist, lassen Sie mich das einfach schließen. Das liegt daran, dass Sie diese Funktion hier tatsächlich immer noch ausführen. Und gleichzeitig setzen Sie diese Variable zurück. Wir müssen ihr tatsächlich eine kleine Verzögerung einräumen , damit sie diese Benachrichtigungsfunktion ausführen kann Bevor wir es zurücksetzen. Lassen Sie mich einfach um etwas sehr Kleines wie 0,1 verzögern und dann können wir diese Variable zurücksetzen. Lass uns kompilieren, lass uns spielen und sehen, was passiert. Wenn ich jetzt als Terrorist spiele, hebe ich es auf und lasse es fallen. Ich sehe, dass es richtig funktioniert. Wenn ich es wieder abhole. Jetzt liegt hier immer noch ein Fehler vor und wir müssen dasselbe für die Lautenwaffe tun Jetzt steht da, dass X nicht versucht, die Eigenschaftswaffe zu lesen , um losgelöst vom Schauspieler abzulegen Nun, was wir hier tun müssen, denn wenn wir das ausführen, denken Sie daran, wenn Sie eine Benachrichtigungsfunktion für Mitarbeiter ausführen, ändern Sie den Wert, obwohl Sie hier Null eingeben Auch wenn Sie den Inhalt leeren, ändern Sie trotzdem Und es wird das alles tatsächlich ausführen. Auch hier können wir das tun, indem wir mit der rechten Maustaste auf diese Waffe klicken, um sie abzulegen, und wir können sie in ein validiertes Get umwandeln und sie hier verbinden, wann immer sie gültig ist. Wir können weitermachen und eine Verbindung herstellen und diesen Code ausführen , wenn er nicht gültig ist. Das heißt hier, wann immer wir hier nichts einstecken, macht es das ungültig und wir tun nichts, wenn es nicht gültig ist. Lassen Sie uns kompilieren und sehen, ob das die Probleme tatsächlich behebt. Bevor wir weitermachen, kann ich es hier ablegen, darauf eingehen und Sie können sehen, dass es immer noch unsichtbar ist und wir die andere Variable leeren müssen. Sie können jedoch sehen, dass wir keine Fehler erhalten, sodass diese behoben sind. Lass uns zurückgehen. Gehen wir jetzt zu den geplünderten Waffen über. Diesen müssen wir ebenfalls zurücksetzen. Denken Sie daran, dass dies auch auf dieselbe Variable gesetzt ist , weil Sie die Pistole immer wieder plündern Nun zu dem, was wir hier tun können, denken Sie daran, dass wir das nicht leer haben, also prüfen wir, ob das überlappende Waffen-Array leer ist oder Wenn es leer ist, setzen wir die Beutewaffe wieder hier drüben Auch hier kann ich sagen, Verzögerung um 0,1 Sekunden, damit es gespielt werden Wann immer das erledigt ist, kann ich diese geplünderte Waffe nehmen und sie so einstellen und die Werte darin leeren. Denken Sie jetzt daran, noch einmal darauf einzugehen und sicherzustellen , dass es gültig ist, wann immer Sie es tun Klicken Sie mit der rechten Maustaste auf „In ein validiertes Get konvertieren “, genau wie zuvor Nur wenn es gültig ist. Wir wollen den Code ausführen , denn wenn er nicht gültig ist, wollen wir nichts tun. Lass uns kompilieren, alles speichern. Lass mich jetzt auf Play klicken und das sollte funktionieren. Wenn ich als Terrorist spiele, lasse ich die Waffe fallen und habe wieder geplündert Sie können sehen, dass sie korrekt geplündert wurde. Wenn ich es wieder oft fallen lasse, kannst du sehen, dass es jetzt einwandfrei funktioniert Es ist richtig. Jetzt funktioniert es als Client. Und wenn ich das Spiel spiele, höre den Server auf. Also wenn ich sowohl als Server als auch als Client spiele. Jetzt ist hier mein Server. Ich werde spawnen. Und hier ist mein Kunde. Ich werde auch spawnen. Ich habe die Pistole als meinen Client bezeichnet und du kannst sie hier auf dem Server sehen, und wenn der Server zum Beispiel K verliert , kannst du sie auch sehen Wenn ich es fallen lasse, wie ich angedeutet habe, können Sie es auf beiden Bildschirmen sehen, hier als Client, ich kann das Ganze löschen, alles können Sie es auf beiden Bildschirmen sehen , hier als Client, ich kann das Ganze löschen, funktioniert einwandfrei . Wenn ich auf die Information angespielt habe, wurde sie auch korrekt angezeigt. Okay. Alles ist korrekt und sieht gut aus. Jetzt gibt es ein kleines Problem. Wenn ich zum Spieler gehe und der Spieler die Waffe fallen lässt, kannst du sehen, dass ich jetzt die Waffe halte. Als Spieler, als Kunde kann ich jedoch nichts sehen. Aber als Server kann man sehen, ich kann das K sehen Was passiert nun? Sie denken vielleicht, dass es sich um ein Replikationsproblem handelt, weil ich als Server die richtigen Informationen sehen kann, aber als Client kann ich nicht die richtigen Informationen sehen. Dies könnte ein Replikationsproblem sein. Weil du am Boden sehen kannst, kann ich auch die Waffe sehen. Da stimmt etwas nicht. Nun, ich würde kein Replikationsproblem vermuten. Ich kann die Waffe tatsächlich am Boden sehen. Wenn es ein Replikationsproblem wäre, sollte die Waffe auf meinem Rücken sein. Weil es dann denkt , dass ich schon etwas in der Hand habe und es würde mir meine Ak auf den Rücken legen. Aber aus irgendeinem seltsamen Grund liegt die Waffe tatsächlich auf dem Boden und hier ist sie in meiner Hand. Das Problem ist höchstwahrscheinlich , dass Sie die Waffe plündern Als anderer Spieler plünderst du die Waffe tatsächlich, bevor du die Gelegenheit hattest, all diesen Code in der Drop-Waffe abzuspielen diesen Code in der Drop-Waffe Lassen Sie uns das in der nächsten Lektion tatsächlich tun. Lassen Sie uns dieses Problem beheben. 108. 8.23 Boolean für die Waffeninteraktion: Um sicherzustellen, dass wir mit dieser Waffe erst interagieren können , wenn sie tatsächlich durchgelaufen ist und sie zurückgesetzt wurde Dann wollen wir eigentlich mit der Waffe interagieren , weil die Spieler momentan viel zu schnell damit interagieren. Gehen wir zur Waffenbasis. Und hier drin werde ich eine neue Variable erstellen. Nennen wir es, kann interagiert werden. Lass uns einfach ein Goldbarren draus machen. Gehen wir jetzt zur Spielerbasis. Machen wir es tatsächlich standardmäßig so, dass Sie damit interagieren können. Wenn wir einfach auf dieses Edelmetall klicken, setze ich es auf True Default. Was wir jetzt tun können, ist zum Player Now zu gehen. Ich möchte nicht, dass sie damit interagieren Sobald wir diese Waffe gefunden haben und sie fallen lassen wollen, werde ich sie einfach wegschleppen. Jetzt haben wir diese Waffe. Jetzt werde ich es einfach verdoppeln. Ich kann von hier aus sagen, mit wem man interagiert, und wir können es auf falsch setzen Jetzt müssen wir das nicht mehr replizieren und der Grund dafür ist dass wir es einfach über den Server laufen Manchmal denkt man, manchmal repliziert man Dinge, manchmal repliziert man Dinge nicht Was muss ich eigentlich replizieren Wenn Sie einige Variablen benötigen, die Sie eigentlich nur während der Serverfunktionen verwenden, müssen diese nicht Sie legen fest, ob damit interagiert werden kann oder nicht. Wenn du diese Informationen nur innerhalb der Serverfunktionen verwendest , um etwas Logik zu entwickeln, und die anderen Spieler nichts davon wissen müssen, musst du sie eigentlich nicht replizieren Wenn du jedoch andere Dinge willst, zum Beispiel welche Waffe du ausrüstest, wenn du sie benutzt, kannst du hier den Typ der ausgerüsteten Waffe sehen Ich verwende es tatsächlich hier, wo der Client auch den Code ausführt Wenn das jetzt nicht repliziert wird, dann wird das dem Client eine Ära einläuten Allerdings kann es sein, wenn ich es hier oben verwende, wo der Kunde auch ist, ich es replizieren muss Aber da ich es nur in der Logik des Servers verwende, muss ich es eigentlich nicht replizieren Es ist wie eine interne Sache. Sie können es jetzt speichern. Jetzt kann ich hier unten nicht mit der Waffe interagieren. Immer wenn es abgeschlossen ist, möchte ich meine Fähigkeit , mit der interagiert werden kann, auf „wahr“ setzen Jetzt müssen wir es vor diesem setzen, denn denken Sie daran, dass Sie die Variable löschen Bevor wir die Variable löschen, müssen wir sie verwenden. Nehmen wir das und sagen wir, dass damit interagiert werden kann. Und ich werde es auf true setzen , weil wir jetzt damit interagieren können und dann wollen wir diese Variable löschen. Du willst das hier nicht machen, weil du die Variable löschst, also wäre diese ungültig. Nun, das ist das Löschen. Nun, was wir tun müssen, wir müssen hier zur Waffenbasis gehen . Wir müssen hier auch schreiben , dass, wenn Sie damit nicht interagieren können, nichts nach der Autorität tun sollten. Lasst uns von hier aus zuschlagen. Denken Sie daran, wir haben diese Variable nicht repliziert. Wenn wir hier etwas schreiben, gibt uns das eine Ära, da wir es schreiben, nachdem der Switch autorisiert ist, wir ihn also nur innerhalb des Servers verwenden, dann wird es in Ordnung sein, wir müssen es nicht replizieren Nehmen wir an, damit kann interagiert werden und machen wir eine Verzweigung Sagen wir, kann damit interagiert werden? Wenn es möglich ist, fahren Sie fort und führen Sie den Code aus. Wenn nicht, verzögere ich den Code um, sagen wir, 0,1 Sekunden. Und dann werde ich das noch einmal ausführen. Also gehe ich diesen Code immer wieder durch. Ich werde das tatsächlich ein bisschen mehr organisieren. Also, was ich hier mache ist, dass ich den Code immer wieder durchforste, um sicherzustellen , dass ich mit meiner Waffe interagieren kann , bevor ich irgendeinen Interaktionscode mache Also lass mich einfach versuchen, das hier zu organisieren, lass mich es runterbringen Also, was ich im Grunde sagen will, ist machen Sie weiter und schauen Sie, ob damit interagiert werden kann Wenn es möglich ist, bitte zuerst den Code ausführen. Wenn nicht, werde ich den Code in einer Schleife wiederholen oder um 0,1 Sekunden verzögern. Und dann gehe ich zurück und überprüfe, ob damit interagiert werden kann Ich schaue es mir immer wieder an und warte darauf , dass es wahr wird, denn wann immer du die Waffe fallen lässt, wird es sehr schnell wahr sein Also wirst du diesen nicht einmal bemerken. Keine Sorge, das ist nicht leistungsstark , denn das wird sich sehr schnell wiederholen. Und es wird nicht viele Male laufen, weil dieser Fall sehr schnell wahr sein wird . Also dieser läuft eigentlich nicht oft. Also mach dir darüber keine Sorgen. Lass uns versuchen, auf Jetzt spielen zu klicken und zu sehen, was passiert, wenn ich spiele, während der Terrorist es maximiert. Ich plündere etwas und klicke darauf, du siehst sofort, dass ich es gerade plündere Und das ist das Problem , das wir gerade haben. Wenn ich die Waffe wirklich schnell fallen lasse, plündere ich sie weiter, weil sie tatsächlich hierher kommt und prüft, ob ich damit interagieren kann Obwohl ich derselbe Spieler bin , kann derselbe Spieler, der die Waffe fallen lässt, mit ihr interagieren Also das ist etwas, das wir reparieren müssen. Im Moment funktioniert der Code jedoch. Wir können nur dann damit interagieren , wenn dies durchgelaufen ist. Wir bekommen also keine Kiste davon, dass es unsichtbar ist. Also lass uns mit der nächsten Lektion weitermachen. 109. 8.24 Entfernen der Interaktion vom Dropping-Player: Ordnung, jetzt müssen wir hier ziemlich viel Code schreiben, bevor das funktionieren kann Weil wir sicherstellen wollen, dass der Spieler die Waffe gerade fallen lässt, wollen wir sicherstellen, dass der Spieler, der diese Informationen fallen lässt diese Informationen nicht plündert Auch hier wollen wir nur, dass der andere Spieler die Informationen plündert. Wir wollen nicht sofort damit interagieren, sonst plünderst du es weiter Wir müssen die abgeworfene Waffe definieren. Lassen Sie mich weitermachen und eine Veranstaltung für neue Kunden veranstalten. Lassen Sie uns dieses eine Set Drop Weapon nennen. Und lass es uns noch einmal über den Server laufen lassen. Der Serversatz wurde gelöscht. Dann müssen wir das auf dem Server laufen lassen und zuverlässig sein und wir müssen das normale Ereignis hier überstehen lassen, dass die Waffe fallen gelassen wurde. Okay, hier unten müssen wir einfach nur diese Variable setzen. Ich werde einfach hier klicken und eine neue Variable hinzufügen. Es ist nur die Waffenbasis , weil wir die Waffe brauchen. Nennen wir das eine fallengelassene Waffe. Lass es uns auch hier verbinden. Lassen Sie uns das zu einer Variablen heraufstufen und sagen wir Waffe fallen lassen. Ich glaube nicht, dass wir es replizieren müssen, weil ich denke, wir müssen es nur über den Server laufen lassen Aber ich kann das momentan nicht wirklich bestimmen . Lassen Sie uns den Code machen und später, wenn wir ihn tatsächlich auch innerhalb des Clients verwenden, müssen wir ihn replizieren Lassen wir es vorerst nicht repliziert werden. Ich mag es, wenn Dinge nicht repliziert werden müssen, obwohl sie nicht repliziert werden müssen Denn denken Sie daran, je mehr Informationen Sie replizieren, desto langsamer wird Ihr Spiel Weil du Informationen vom Server an den Client sendest vom Server an den Client Je mehr Informationen Sie senden, desto weniger Leistung. Sorgen Sie einfach dafür, dass die Dinge nicht repliziert werden, wann immer Sie können. Jetzt haben wir diese fallengelassene Waffe. Wenn du hier Sachen plünderst, wenn du in der Waffenbasis damit interagierst, müssen wir sicherstellen, dass du die abgeworfene Waffe müssen wir sicherstellen, dass du die nicht plünderst Was ich tun muss, ist vom Spieler zu hören, bevor ich das alles mache, kann ich es wegschleppen Bevor ich das alles mache, kann ich das nehmen und sagen, fallengelassen. Wir nehmen das hier. Wenn die abgeworfene Waffe mir selbst entspricht, versuche ich gerade, diese Waffe zu plündern Wenn sie gleichwertig ist, tu nichts. Wenn es nicht gleich ist, löschen wir es einfach und lassen Sie mich sagen, nicht gleich. Das wäre besser für die Lesbarkeit. Wenn die abgeworfene Waffe nicht der Waffe entspricht , mit der ich gerade zu interagieren versuche, können wir sie plündern Wenn es jedoch dasselbe ist, dann tu nichts Im Moment haben wir die abgeworfene Waffe nicht definiert. Lass uns das tatsächlich tun. Lass mich das sagen. Lassen Sie mich zurück zur Spielerbasis hier oben gehen. Immer wenn wir die Waffe fallen lassen, legen wir die Waffe fest und definieren sie. Lassen Sie mich dieses Ereignis hier unten auflisten. Waffe fallen lassen, lass es mich hier einfach so nennen. Und die fallengelassene Waffe ist einfach diese. Du kannst diesen hier einfach anrufen. Und lass uns alles näher rücken, genau wie zuvor. Lassen Sie uns alles kompilieren und speichern. In Ordnung, jetzt können wir es ausprobieren. Lass uns auf Play klicken und als Terrorist spielen. Wenn ich jetzt etwas plündere und das tue, kannst du sehen, dass ich nicht damit interagiere Das Problem mit dieser heruntergefallenen Waffe ist immer dasselbe Also kann ich diese Waffe eigentlich nie wieder verlieren. Wir müssen es jederzeit entfernen. Sie können hier sehen, wann immer ich es lade und fallen lasse, komme ich wieder rein, Sie können sehen, dass ich es nicht laden kann. Allerdings muss ich jedes Mal, wenn wir diese Kollisionssphäre verlassen, die Variable für die fallengelassene Waffe neu einstellen. Wir können es wieder in der Waffenbasis machen. Denken Sie daran, dass wir die On-Komponente Begin Overlap verwenden. Was wir nun verwenden können, wenn Sie erneut auf die Kollisionskugel klicken und dann nach unten gehen, können Sie diese bei Kollisionsüberlappung verwenden. Jetzt kannst du das verwenden, um die Definition der abgeworfenen Waffe zu entfernen . Jetzt können wir, wie zuvor, kopieren: Dieser Schauspieler hat einen technischen Spieler, weil wir sichergehen wollen, dass der Spieler aus dieser Kollisionssphäre herauskommt kopieren: Dieser Schauspieler hat einen technischen Spieler, weil wir sichergehen wollen, dass der Spieler aus dieser Kollisionssphäre herauskommt Lassen Sie uns das wieder verbinden. Switch hat das getan, weil wir sicherstellen wollen, dass es der Server ist, der all das erledigt, um Cheaten zu verhindern. Das einzige, was wir tun wollen, ist, die fallengelassene Waffe so einzustellen , dass sie die Variable zurücksetzt Nimm das und sag Spielerinformationen abrufen. Oder holen Sie sich eine Spielerreferenz. Eigentlich keine Informationen, sondern Spielerreferenz . Lass es uns verbinden. Lasst uns das Set als Waffe fallen lassen und es auf Null stellen. Wir setzen nur die Variable zurück. In Ordnung, hier ist es. Lass uns alles kompilieren und speichern. Und lassen Sie uns versuchen zu kämpfen. Klicke auf Play und ich platziere den Terroristen. Jetzt stoße ich auf die. In vier Fällen lasse ich es fallen, mir geht es aus, ich treffe darauf. Jetzt können Sie sehen, dass es perfekt funktioniert. Ich plündere es nicht sofort, ich plündere es nur, wenn ich diese Interaktionssphäre verlasse Und ich betrete sie wieder. Ich kann die Waffe plündern. Versuchen wir nun, auf Play zu klicken. Und spiele als zwei Spieler. Wenn ich diesen Client minimiere, ist das eigentlich der Server. Lass uns sowohl als Client als auch als Client spielen. Ich kann sie in vier Fällen plündern. Der Server schaut sich das an, das sieht gut aus. Ich kann es fallen lassen. Sieht richtig aus. Ich kann es wieder plündern Sieht richtig aus. Okay. Ich kann versuchen, dir diese Waffe hier zu geben. Ich lasse es fallen. Dieser Typ plündert es jetzt Ich kann es diesem Kerl weggeben. Ich kann es jetzt nicht wirklich plündern. Manchmal macht es Fehler, du kannst sehen, manchmal, wenn ich rauslasse, sind es tatsächlich Bugs Ich verliere es nicht sofort. Das ist die Kollisionskugel, die Sie hier sehen können. Ich kann es nicht mehr plündern. Ich versuche, da reinzugehen. Ich kann es hier als Server nicht plündern. Das liegt daran, dass der andere Spieler tatsächlich darauf steht und der andere Spieler, der darauf steht , die Kollision nimmt andere Spieler, der darauf steht , die Immer wenn der neue Spieler versucht, sich mit ihm zu verbinden oder mit ihm zu interagieren, tut er eigentlich nichts. Das Problem bei dieser anfänglichen Überschneidung ist momentan dieser anfänglichen Überschneidung ist , dass nur nach einem Spieler gesucht wird. Wenn sich mehrere Spieler dieser Kollisionssphäre überlappen, ist es tatsächlich ein bisschen fehlerhaft Wir müssen das auch reparieren. Sie können sehen, dass wir eine Menge Dinge zu reparieren haben , und das liegt einfach in der Natur von Spielen. Man bekommt immer wieder Probleme , die man lösen muss, aber es ist wirklich schön, wenn alles funktioniert und alles geschrieben ist. Gehen wir nun zur nächsten Lektion über und verbessern den Code weiter. 110. 8.25 Verbesserung der Interaktion mit Waffenspielern: Ordnung, willkommen zurück. Lassen Sie uns nun diesen Code verbessern, um sicherzustellen , dass, obwohl mehrere Spieler mit der Kollisionssphäre interagieren , dies jetzt berücksichtigt wenn wir sicherstellen, dass wir mit dieser Waffe interagieren können. Anstatt das einfach hier zu tun, lassen Sie mich diesen Code wegziehen. Lassen Sie mich das nach unten ziehen und lassen Sie mich das auf diese Weise wegziehen damit wir mehr Platz zum Arbeiten haben. Die Art und Weise, wie Sie mit mehreren Dingen interagieren, ist, wenn Sie schreiben klicken und sagen, dass Sie sich überschneidende Schauspieler holen Jetzt erhalten Sie alle sich überschneidenden Schauspieler. Ich kann alle Spieler finden , die sich überschneiden. Das hier, wer sich überschneidet, das ist die Spielerbasis Es ist die Spielerbasis, das heißt, es sind alle Spieler hier Jetzt kann ich fragen, ob die Länge mehr als eins ist oder ob die Länge tatsächlich eins ist. Ich kann daraus schließen und Länge sagen. Ich kann fragen, ob das größer als eins ist. Denn wenn es nicht größer als eins ist, bedeutet das, dass nur ein Spieler damit interagiert. Das sind wichtige Informationen. Wenn es größer als eins ist, kann ich etwas tun. Wenn es jedoch nicht größer als eins ist, kann ich das nehmen und den ersten Index abrufen, den ersten Index abrufen, also nur diesen Spieler, diesen einen Spieler. Und ich kann es jetzt mit diesem verbinden. Anstatt es von diesem anderen Schauspieler zu nehmen, kann ich es jetzt von diesem Spieler nehmen, der sich überschneidet Und ich kann es hier verbinden, wenn es weniger als oder nicht größer als eins ist , was bedeutet, dass nur ein Spieler mit dieser Kollisionssphäre interagiert Ich kann diesen einen Spieler vom Index Null hierher holen und diesen Spieler mit hier verbinden. Okay, das läuft also perfekt. Was ist jedoch, wenn wir mehrere Spieler haben? Im Moment überprüfe ich nur, ob es ein Spieler ist. Wenn Sie also mehrere Spieler haben , die sich in dieser Kollisionssphäre überlappen, muss ich sie mir ansehen Ich kann sagen, dass ich all diese sich überschneidenden Akteure nehmen kann. Oder jede Schleife mit Pause. Ich möchte sichergehen, dass derjenige, der die Waffe fallen ließ nicht mit dieser Waffe interagiert , die ich am Boden habe. Ich kann das verbinden Jetzt kann ich von hier aus sagen, Spielerreferenz holen. jetzt für jeden dieser Spieler tun kann, Was ich jetzt für jeden dieser Spieler tun kann, ist, dass ich die fallengelassene Waffe nehmen kann. Ich kann fragen, ist diese fallengelassene Waffe für diesen Spieler, den ich gerade durchspiele, nicht gleichwertig? Wir schreiben eigentlich nur den gleichen Code wie hier unten. Wenn es nicht der Waffe entspricht, die ich gerade plündern möchte, dann kann ich weitermachen und die Waffe plündern Ich durchsuche jeden Spieler. Ich versuche den Spieler zu finden, der die Waffe noch nicht fallen gelassen hat Wenn das stimmt, lass mich hier einfach mit der rechten Maustaste klicken und diese zu einer Variablen hochstufen. Und nenne diesen interagierenden Spieler. Lass es mich hier einstellen. Mach weiter und mach ein paar Notizen zur Umleitung, damit es viel besser aussieht Jetzt, wo wir diese Variable gesetzt haben, ist das, was wir jetzt tun können, hier in der kompletten Version Wenn ich meinen interagierenden Spieler finde, möchte ich das nehmen und die Schleife durchbrechen Denken Sie daran, immer die Schleife zu unterbrechen, damit Sie hier keine Kiste bekommen. Ihr Code wird auch viel optimierter sein , weil Sie nicht alles durchgehen müssen. Ich knacke den Code, unterbreche die Schleife. Jetzt habe ich den interagierenden Spieler. Was ich jetzt tun kann. Jetzt müssen wir das Inventar durchgehen. Weil wir das alles nicht hier durchführen müssen. Das haben wir hier oben schon gemacht. Also müssen wir direkt das Inventar für den interagierenden Spieler durchgehen . Anstatt es von hier aus zu übernehmen, kann der interagierende Spieler das jetzt hier oben durchgehen lassen, ein Spieler und du durchläufst das hier. Was Sie tun können, ist einfach mit der rechten Maustaste auf diesen zu klicken und ihn zu bewerben. Oder nimm es einfach hier mit. Das ist der interagierende Spieler. Wenn es nur ein Spieler ist und er das alles durchläuft und das korrekt ausführt, kannst du das tun. Anstatt all das zu tun, kannst du immer einfach von hier nehmen und es hier einstecken , sodass ich meinen Code leicht verschieben kann , damit er nicht zu durcheinander kommt Einfach so. Jetzt benutze ich nur diesen interagierenden Player. Du kannst das nehmen und es hier einstecken . Eigentlich nicht so. Ich weiß nicht, warum ich es eingestellt , herausgezogen und hier eingesteckt habe. Anstatt direkt davon auszugehen, verwenden wir jetzt nur diese, diese Variable, die wir gesetzt haben. Ich werde diese tatsächlich löschen und sie einfach mit jedem von ihnen verbinden. Einfach so. Oder was du tun kannst. Ich werde es tatsächlich mehrmals benutzen. Ich werde hier den interagierenden Player verwenden. Ich werde es auch hier unten auf diesen kopieren. Und den brauchst du nicht. Ich kann es einfach direkt anschließen, einfach so. Ich kann es auch hier anschließen. Ich ersetze nur die hinteren Kunstnotizen , damit es viel besser aussieht denn dieser hier geht zu diesem hier. Ich werde die hinteren Kunstnotizen löschen. Und wenn ich es einfach hier einstecke, sieht das viel besser aus als zuvor Jetzt sind wir dabei, das durchzugehen. Wir stellen den interagierenden Spieler und jetzt durchforsten wir das Inventar In Ordnung, jetzt habe ich es organisiert. Nun, wie Sie sehen können, nehmen wir die interagierende Spielervariable und lassen sie durch den Code laufen. Wir stellen sicher, dass es der interagierende Spieler ist , der mit all dem interagieren kann. Lassen Sie uns diesen Code ausprobieren. Lass uns auf Play klicken. Und lassen Sie uns zum Beispiel als Terrorist spielen. Lassen Sie mich als Kunde spielen. Wählen Sie erneut Terrorist aus. Lass mich einfach etwas verlieren. Lass mich einfach diese Pistole plündern. Ich gehe zum Spieler, ich werde es dem Spieler geben ich werde es dem Spieler geben . Der Spieler sollte es plündern Ich gebe es zurück. Jetzt kannst du sehen, wie dieser Spieler es plündert. Ich gebe es zurück. Dieser Spieler plündert es, ich werde es zurückwerfen Jetzt können Sie sehen, dass es jetzt funktioniert und alles gut funktioniert Wenn ich es hier fallen lasse, kann ich nicht damit interagieren, es sei denn, ich verlasse diese Sphäre und renne wieder hinein. Aber obwohl es vor mir ist, kann dieser Typ es problemlos plündern Jetzt können Sie sehen, dass jetzt alles richtig funktioniert. Fantastisch. Jetzt sieht es eher nach einem Spiel als nach einem Prototyp aus. Wir kommen unserem Ziel näher und Sie können sehen, dass alles gut aussieht Es macht wirklich Spaß zu spielen und es wird jetzt noch viel mehr Spaß machen, wenn wir das Schießen und Nachladen und so weiter hinzufügen das Schießen und Nachladen und so weiter Wie Sie sehen können, funktioniert alles einwandfrei. Wenn mir in Zukunft irgendein Kästchen auffällt, werde ich ein paar Videos machen, um diese zu entfernen. Oder du kannst jederzeit Pixel Helmet.com besuchen oder meinen Discord-Server besuchen Wenn du irgendwelche Boxen findest , die ich nicht bemerkt habe, repariere ich sie immer und zeige dir, wie man sie repariert, aber im Moment können wir nicht wirklich eine Box sehen Alles scheint perfekt zu funktionieren. Ich werde das Spiel später verbessern. Zum Beispiel können wir alles verbessern, was unserer Meinung nach schlecht aussieht. Sieht für Anfänger so aus, als könnten wir die immer reparieren. Hier teste ich es als Server und Client. Ich kann es auch dem Client übergeben. Sie können es hin und her werfen. Ich kann es auf den Boden fallen lassen. Der andere Spieler kann reingehen und es plündern. Ich kann es hier als Server ablegen. Der Client kann auch darauf stoßen und es plündern. Sie können sehen, dass wir momentan nicht wirklich eine Box haben und in Zukunft alles perfekt funktioniert kannst du wieder meine Website oder meinen Discord-Server besuchen, Pixel Helmet.com, und ich werde dafür sorgen, dass wir diese jederzeit reparieren können, wenn während der Spieleentwicklung irgendwelche Boxen auftauchen wir diese jederzeit reparieren können Aber im Moment funktioniert alles. Alles ist nett. Lassen Sie uns mit der nächsten Lektion fortfahren. 111. 8.26 Plünderungswaffe mit Tastaturschlüssel: Lass uns jetzt weitermachen und einige Tastaturtasten hinzufügen , um die Waffen zu plündern Bevor ich das mache, möchte ich meine Benutzeroberfläche vergrößern. Jemand hat mir gesagt , dass es schwer ist, dem zu folgen, wenn meine UIize klein ist Wenn du deine auch vergrößern möchtest, kannst du auf Tools und dann auf Debug und dann auf Widgit Reflector klicken Debug und dann auf Widgit Ich werde es auf 1.2 erhöhen. Es ist vielleicht einfacher für dich, ihm zu folgen Sie können sehen, dass meine Benutzeroberfläche jetzt größer ist. Lassen Sie mich wissen ob das hilft oder ob ich sie wieder auf eine umstellen sollte. Wenn das erledigt ist, fahren wir mit der Eingabe fort und machen wir eine neue Eingabeaktion, oder? Auch hier können Sie dies selbst tun, wenn Sie möchten. Wir haben schon viele davon gemacht. Klicken wir mit der rechten Maustaste und gehen wir zu Eingabe und dann zur Eingabeaktion. Nennen wir das eine Los-Waffe. Lassen Sie uns dann in diesem Fall mit der Eingabe-Mapping-Aktion fortfahren . Ich werde hier oben auf das Plus klicken und hier runter gehen und diese Menge Waffeneingabeaktionen hinzufügen. Ich werde auf meinen Ekey drücken, um die Waffe erneut zu plündern. Hier drüben für die Auslöser, ich werde ihn auf drücken, weitermachen und speichern, schließen Gehen wir zurück zum Player. Okay, hier drinnen. Übrigens, wir werden das alles sehr bald in ein paar Lektionen klären. Weil Sie sehen können, dass wir viel getan haben und wir müssen uns auch ein bisschen organisieren, bevor wir weitermachen. Bevor wir das tun, gehen wir hier runter und klicken mit der rechten Maustaste und suchen nach der Waffe A lot. Und wähle dieses Ereignis aus. Okay. Ich will, wenn ich auf meinen EK drücke, will ich jede Waffe verlieren, die sich unter mir befindet. Was wir tun müssen, ist eine neue Funktion zu erstellen , weil wir hier bereits eine haben. Lass mich das mal sehen. Wir haben bereits eine Waffe namens Lot-Waffe. Diese Lot-Waffe. Denken Sie daran, dass wir eine Überlappungswaffe von der Waffe hinzufügen, die wir Beutewaffe nennen Es handelt sich im Grunde nicht um eine direkte Beutewaffe. Es ist eher so, als würden wir darum bitten, eine Waffe zu plündern, wenn wir eine Waffe finden , die sich überschneidet Wenn ich sie hier wiederfinde, wenn ich eine Waffe finde, die sich überschneidet, dann kann ich weitermachen und sie plündern Lass uns ein neues benutzerdefiniertes Event erstellen. Und diesen werden wir Request Lot Weapon nennen. Und lass es uns zuverlässig über den Server laufen lassen. Und rufen wir es hier auf , wenn wir auf die E-Taste drücken. Rufen wir SRV an und fordern Lot Weapon an. Okay, also zuerst werden wir überprüfen, ob irgendwelche Waffen überschneiden, weil wir den Code nicht spielen wollen . Wenn wir hier stehen und keine Waffen unter uns haben, würde das keinen Sinn ergeben Klicken wir mit der rechten Maustaste und sagen wir es. Überlappende Akteure. Und lassen Sie uns diesen auf Waffenbasis umstellen. Wir stellen sicher, dass wir uns mit einer Waffe überschneiden. Wir schlagen von hier aus zu und sagen, dass es nicht leer ist. Damit wird nur überprüft , ob wir uns tatsächlich mit einer Waffe überschneiden. Lasst uns hier zuschlagen und eine Abzweigung machen und sie verbinden. Wenn wir hier eine Waffe haben und sie nicht leer ist, bedeutet das, dass wir uns mit einer Waffe überschneiden Wir müssen überprüfen, ob wir diese Waffe bereits im Inventar haben Denn wenn Sie diese Waffe bereits entweder auf dem Rücken oder in der Hand halten , müssen Sie Ihre aktuelle Waffe fallen lassen. Sie können nicht zwei Pistolen gleichzeitig haben und Sie können nicht zwei Gewehre gleichzeitig haben Du kannst das natürlich für dein eigenes Spiel tun, aber für dieses Spiel, das wir entwickeln, kannst du nur ein Gewehr, eine Pistole, eine Granate oder ein Messer oder was auch immer für dieses haben Granate oder ein Messer oder Sagen wir hier, versuchen wir, es in unserem Inventar zu finden. Denken Sie daran, wir machen das alles schon. Ich nehme das einfach und kopiere das alles hier hin. Ich kopiere das hier oben und füge es hier weil wir das Inventar machen und dann prüfen, ob wir diese Waffe schon für diesen Waffentyp haben , für diesen Typ hier unten ist es einfach die Waffe, die wir überschneiden. Also werde ich es von hier wegziehen und sagen, bekommt. Und dann holen wir uns eine Kopie. Und lassen Sie uns einfach den Index von einem ermitteln. Wenn wir mehrere Waffen überlappen, erhalten wir hier nur den Index Null und wir werden ihn hier überprüfen Okay, also was wir tun müssen, genau wie zuvor, wir müssen den Namen von diesem bekommen Wir können jetzt nicht wirklich den Waffennamen sagen und diese Variable bekommen, weil diese Variable, wenn man die Maus drüber hält, nur eine allgemeine Akteur-Objektreferenz ist. Erinnerst du dich an diesen? Das ist das BP, waffengestütztes Objekt oder eine Objektreferenz. Wenn Sie also nur eine allgemeine Referenz haben, müssen Sie sie zuerst in diese Waffenbasis umwandeln. Für diesen brauchen wir die Waffenreferenz. Ich glaube nicht, dass wir es hier gemacht haben. In den Schnittstellen, die wir noch nicht gemacht haben, finden Sie Waffenreferenzen. Versuchen Sie erneut, es selbst zu tun, weil wir es schon einmal gemacht haben, nur zum Üben. Versuchen Sie, eine Funktion als Waffenreferenz zu verwenden und versuchen Sie, sie hier zu verwenden. Okay, falls du dich nicht erinnern kannst, lass es uns zusammen machen. Klicken wir mit der rechten Maustaste, gehen Sie zu Blueprint und wählen Sie Blueprint-Oberfläche Nennen wir das eine Waffenbasis. Lass es uns öffnen. Nehmen wir an, wir besorgen Waffe F. Jetzt kompilieren wir. Hier unten musst du auswählen, auf welche Eva du dich beziehen willst. Ich versuche, auf die Waffenbasis zu verweisen und sie auszuwählen und sie Waffe zu nennen. Lass uns alles kompilieren und speichern. Lass uns wieder hierher gehen. Lasst mich an die Waffen denken, lasst uns die Waffenbasis öffnen. Gehen wir jetzt zu den Klasseneinstellungen und fügen hier unten das Interface namens Weapon Base hinzu. Fahren Sie fort und wählen Sie Kompilieren. Und jetzt kannst du es hier in den Benutzeroberflächen öffnen und von hier aus verfolgen und dich selbst sagen. Das ist eine Selbstreferenz. Wir haben diese Variable jetzt definiert. Jetzt können wir zurück zur Spielerbasis gehen und hier können zurück zur Spielerbasis gehen und wir es per Drag-and-Say sagen, Waffenreferenz. Jetzt haben wir einen Verweis auf diese Waffenbasis. Und jetzt haben wir diese allgemeine Akteurreferenz in eine Waffenbasis, einen Akteur oder eine Objektreferenz umgewandelt . Was wir tun können, ist, das jetzt hierher zu ziehen es wie zuvor einzuloggen. Sagen wir, wir können das alles einfach kopieren und einfügen. Lass es uns einfach kopieren. Wir müssen es nicht 100 Mal schreiben. Mach weiter und verbinde es. Ich werde diesen hier drunter ziehen und ihn hier verbinden. Lassen Sie uns von hier aus ziehen und einen Zweig erstellen und diesen verbinden. Okay, bevor wir zu verwirrt werden, vielleicht bekommen wir hier Waffe, mit der wir uns überschneiden Und jetzt durchforsten wir das Inventar. Wir versuchen zu sehen, ob wir diese Waffe schon haben. Wenn ich nur nicht klicke, um mir eine Notiz zu machen , damit du sehen kannst, was vor sich geht. Was wir tun, ist , das Inventar durchzugehen und zu überprüfen ob wir diesen Waffentyp bereits in unserem Inventar haben Wenn wir diesen Waffentyp haben, müssen wir ihn zuerst fallen lassen Nehmen wir an, ich plündere eine AK 47 und habe bereits eine M41 auf dem Rücken Ich muss die 41 fallen lassen. Also müssen wir die Waffe fallen lassen. Denken Sie daran, dass wir diese Waffe bereits hergestellt haben. Das nennen wir. Jetzt müssen wir diese Veranstaltung nicht mehr von hier aus einberufen. Das liegt daran, dass wir gerade das Inventar durchgehen müssen wir nicht tun, weil wir es hier bereits tun Wir haben diesen Teil hier, aber was wir brauchen, ist dieser Teil, in dem wir ihn so gestalten , dass der Spieler nicht mit der Waffe interagieren kann. Und die Waffe wird fallen gelassen und so weiter, und sie wird aus dem Inventar entfernt. Wir legen tatsächlich auch diesen Waffentyp fest. Wir brauchen das alles, du kannst es einfach hier eintragen. Für eine gute Programmierpraxis ist es jedoch besser, es in eine Funktion umzuwandeln, damit wir es wieder verwenden können, anstatt es einfach zu kopieren es in eine Funktion umzuwandeln, damit wir es wieder verwenden können, anstatt es einfach zu Mach weiter und lass hier auf dem Server die Waffe von diesem Server fallen Wählen Sie all das aus, wählen Sie hier einfach alles ohne diesen Zweig aus. Und klicken Sie mit der rechten Maustaste auf Go, um zu reduzieren. Um zu funktionieren, machen wir daraus eine Funktion, nennen wir diese Funktion Drop Weapon. Waffe fallen lassen. Lass mich einfach hier oben doppelklicken, um einen hinteren Knoten zu erstellen. Für diesen Eingangspin ist er doppelt so groß. Es ist tatsächlich so, wenn Sie auf diese Funktion doppelklicken, ich mache sie jetzt nur ein bisschen besser anzusehen Sie können sehen, dass es hier ein bisschen durcheinander ist. Es endet hier. Lass mich sehen, ob wir wirklich etwas tun müssen. Nach der Wahrheit lässt sie die Waffe fallen und dann geht sie zurück und durchbricht die Schleife. Das sieht gut aus. Wir müssen hier wirklich nichts tun. In Ordnung, jetzt sieht es viel besser aus. Lassen Sie uns jetzt für diesen Eingabe-Pin hier kompilieren und speichern. Nennen wir es Waffe zum Abwerfen. Okay, wir machen das alles genauso wie zuvor und wir beenden nur den Kreislauf. Wir machen einfach das Gleiche wie zuvor. Aber jetzt haben wir es zu einer Funktion gemacht. Und wir können diese Funktion jetzt verwenden. Wenn wir jetzt hierher gehen und herausfinden, dass wir das in unserem Inventar haben , können wir jetzt diese Waffe nehmen. Und jetzt können wir wählen. Welche Waffe möchtest du fallen lassen? Ich möchte diese Waffe, gerade gefunden habe , in mein Inventar nehmen. Also kann ich es daraus ziehen und es hier einstecken. Ich werde klicken, um rockige Notizen zu machen. Okay, jetzt kommen wir zur Waffe. Als Nächstes müssen wir es zu den Überlappungen hier hinzufügen Denn wenn wir es zu den Überlappungen hinzufügen, denken Sie daran, dass wir es dem Überlappungs-Array und dann anfangen, die Waffe zu plündern Wir müssen das Ad Overlap Weapon nennen. Gehen wir hier runter und sagen „Waffe mit überlappender Waffe hinzufügen“. Und jetzt müssen wir auswählen, über welche Waffe wir sprechen Die Waffe, über die wir sprechen, ist diese. Denken Sie daran, es ist nicht diese. Weil du es nicht von hier ziehen und es hier einstecken kannst. Das wird nicht funktionieren , denn denken Sie daran, dass dies nur eine normale Akteur-Objektreferenz ist. Und dieser benötigt eine Objektreferenz auf der Waffenbasis. Denk dran, das hast du hier oben schon gemacht. Also kannst du aus diesem ziehen und es hier einstecken. Doppelklicken Sie erneut, um Notizen zur Weiterleitung zu erstellen. Hier hast du es. Denken Sie daran, wann Sie das in Ihrem Inventar gefunden haben und mit all dem fertig sind. Denken Sie daran, aus diesem zu ziehen und auch die Schleife zu unterbrechen, damit Sie die Schleife nicht fortsetzen. Doppelklicken Sie also erneut und machen Sie sich auch hier Notizen. Okay, bevor wir das hier in der Schleife beenden, denken Sie auch daran, wenn Sie eine Waffe fallen lassen. Wenn Sie hierher gehen, um die Waffe fallen zu lassen, haben Sie hier, wo Sie sie so einstellen haben Sie hier, wo Sie sie so einstellen, dass wieder mit ihr interagiert wird und so weiter Kopieren wir das alles noch einmal und gehen wir hier runter und fügen es hier ein. Einfach so, denn vergiss nicht, dass du diese Waffe benutzt und dass du sie hier drinnen so machst , dass du nicht mit einer Waffe interagieren kannst. Also musst du es so machen, dass du wieder interagieren kannst. Und das fügen wir dem Ganzen hinzu. Wenn du jetzt auf Play klickst und wir Terrorist auswählen können. Lass uns herumlaufen und die Waffen aufheben. Wenn wir jetzt auf das K klicken, können Sie sehen, dass gerade nichts wirklich passiert. Wenn ich ausziehe und dann wieder etwas nervt. Und wir haben hier auch einen Fehler. Wenn ich darauf klicke, heißt es nur, dass dieser nicht gefunden werden kann. Mach dir darüber keine Sorgen. Dies hängt mit etwas anderem zusammen, das wir später beheben werden. Aber im Moment kannst du sehen, dass ich die Waffe fallen gelassen habe und die Überlappung für die Waffe hinzugefügt habe, aber aus irgendeinem Grund nimmt sie sie nicht auf. Anstatt das aus dem Video zu entfernen und dir die Lösung zu geben, werde ich versuchen, dir zu zeigen, wie ich Fehler normalerweise debugge Das ist ein guter Ort dafür. Jetzt lassen wir die Waffe fallen. Jetzt wissen wir, dass all dieser Code funktioniert. Weil es den Punkt erreicht , an dem es dir tatsächlich die Waffe wegnimmt. Aber hier geht als Erstes etwas schief, was das Hinzufügen von Überlappungen angeht. Wenn Sie jetzt debuggen, müssen Sie eine Druckzeichenfolge hinzufügen Wir nennen dieses Ereignis hier. Lassen Sie mich hier einfach eine Druckzeichenfolge hinzufügen. Suchen Sie nach einer Druckzeichenfolge, wählen Sie sie aus und sie sollte hier Hallo sagen. Als ich anspielte, wähle ich Terrace. Jetzt gehe ich rüber zur AK. Lass mich das mal ehrlich gesagt nicht abholen. Lass mich einfach hier klicken. Du kannst in der Ecke hier oben sehen, dass dort Hallo steht. Der Code erreicht diesen Teil korrekt. Jetzt muss ich überprüfen, ob das korrekt ist. Jetzt denke ich, dass dieser falsch ist. Aber wir können. als Erstes werde ich hier nachschauen, ob dieses eine Mal tatsächlich läuft oder nicht. Lass uns auf Play klicken. Wählen Sie Terrorist aus. Fahren Sie fort und wählen Sie das aus oder holen Sie es ab. Klicken Sie hier auf die AK und Sie können nichts sehen, was gedruckt ist. Jetzt weiß ich, dass dieser Teil des Codes funktioniert, aber dieser Teil funktioniert nicht. Es erreicht nie den Punkt , an dem es die Waffe tatsächlich verloren hat. Mit diesem Teil des Codes stimmt etwas nicht. Vielleicht öffnet es sich nie. Schon wieder diese Notiz. Da steht, dass ich wieder Waffen verlieren kann. Denken Sie daran, dass es sich um einen Knoten handelt und er diesen Code nur einmal ausführt, bis wir ihn hier öffnen Wir setzen diesen einen Knoten zurück. Macht das nochmal. Da ist wieder was mit dieser Waffe, ich kann schon wieder Waffe verlieren, wir rufen es hier auf. Mit diesem Teil stimmt etwas nicht. Vielleicht entfernen wir Sachen nicht richtig aus diesen ovalen Schoßwaffen. Was wir tun können, ist jederzeit hier zu klicken und die Zeichenfolge auszudrucken. Lassen Sie uns hier einfach eine Zeichenfolge drucken und sehen, was passiert, wenn ich auf „Jetzt abspielen“ klicke und den Terroristen nehme. Ich habe das alles verloren. Jetzt siehst du, dass es entfernt wurde. Anstatt all das zu tun, brechen wir einfach von diesem Index ab. Wir wissen tatsächlich, was es ist. die Überlappung entfernen, bekommen wir den Index und wir entfernen ihn Lassen Sie mich das stattdessen einfach hier einfügen, ich kann tatsächlich sehen, was ich entferne Physische Playlutephld. Entferne den pH-Wert. Das macht es, wie Sie hier sehen können. Wenn ich die Pistole plündere, sollte sie die Pistole entfernen, aber du kannst sehen, dass nichts Das liegt daran, dass nur die Inp entfernt wird, aber nicht die Etwas stimmt nicht und was wir hier falsch machen, ist wir dieses Zeug nur entfernen wenn wir uns im unbewaffneten Zustand befinden Wenn ich auf Spielen und jetzt spielen klicke, wann immer ich mich im unbewaffneten Zustand befinde, wird es gerade korrekt entfernt Wenn ich jedoch nicht mehr unbewaffnet bin, wird dieser Code tatsächlich hier ausgeführt Und es wird diesen Teil des Codes niemals ausführen. Was wir hier tun müssen, auch wenn wir nicht unbewaffnet sind, müssen wir alles entfernen, was wir nach der ersten Waffe plündern Wenn wir die Informationen plündern, sind wir nicht mehr Wenn wir die Pistole plündern, läuft sie in diesem Teil und wir tun nichts Eigentlich müssen wir direkt von hier aus die Pistole entfernen und auch die Pistole entfernen, die wir nach der Information geplündert haben Also mach weiter und verbinde es mit diesem Entferner. Und lass uns jetzt kompilieren. Lass uns auf Play klicken und sehen, ob unser Code funktioniert. Wenn ich jetzt diesen plündere, wenn wir jetzt zur AK gehen und wenn ich auf E klicke, kannst du jetzt sehen, dass er korrekt funktioniert Wenn ich zu diesem gehe, habe ich tatsächlich die Pistole geplündert, sie ist Das beheben wir in der nächsten Lektion, aber im Moment können Sie sehen, dass die Informationen funktionieren. Wenn sich die Pistole überschneidet, müssen wir dieses Problem beheben und das werden wir tun aber im Moment können Sie sehen die Informationen funktionieren. Wenn sich die Pistole überschneidet, müssen wir dieses Problem beheben und das werden wir Aber ihr könnt sehen, dass es die Gewehre korrekt plündert , es ist nichts mehr Das haben wir schon einmal gezeichnet. Sie müssen hier auch einige umgeschriebene Notizen hinzufügen. In Ordnung, lass uns kompilieren. Als Nächstes, siehst du hier, wenn wir E drücken, spamme ich einfach weiter auf meiner Tastatur und ich mag Sie können sehen, dass wir hier einen Fehler haben und sagen: Access versucht nicht, das Eigentum zu lesen, hat die Waffe geplündert Hier tritt ein Fehler wir in der nächsten Lektion beheben werden Ebenso wie die Ära hier unten , die es manchmal gibt. Im Moment funktioniert alles Speichern wir alles und fahren wir mit der nächsten Lektion fort. 112. 8.27 Richtiges Festlegen des Typs des ausgerüsteten Gegenstands: Okay. Bevor wir den Zugriff reparieren, keine Fehler. Im Moment kannst du hier sehen, wenn wir auf Play klicken und wir die Informationen und die Pistole plündern Und wenn ich zu einer Pistole gehe und E drücke, wechselt sie in den Pistolenansichtsmodus wechselt sie in den Pistolenansichtsmodus Das liegt daran, dass wir in der Waffe, die wir fallen lassen, definiert haben , dass Sie einfach auf unbewaffnet umschalten sollten , wenn Sie die Waffe fallen lassen Jetzt müssen wir das verbessern und weil wir, wenn du ein Gewehr in der Hand hast, nicht zu unbewaffnet wechseln wollen Oder wenn du die Waffe auf deinem Rücken auswechselst, willst du nicht zu unbewaffnet wechseln Was wir hier ganz einfach tun können, ist, dass wir die ausgerüstete Waffe nehmen können Im Moment ausgerüsteter Waffentyp. Versuchen wir zu fragen, ob es dasselbe ist wie das , was wir fallen lassen. Wenn der bewaffnete Waffentyp mit der Waffe identisch ist , die wir fallen lassen, bedeutet das, dass wir zur Unbewaffneten gehen sollten Wenn wir jedoch eine Waffe fallen lassen, die wir gerade nicht in der Hand haben, sollten wir nicht zu einem Unbewaffneten gehen , weil sie auf unserem Rücken lag Und wir müssen den Waffentyp hier nicht wechseln. Lassen wir das hinter uns und sagen wir gleich. Nehmen wir die Waffe, die wir gerade fallen lassen. Lass uns von hier wegziehen. Lassen Sie uns zum Beispiel den Namen der Waffe sagen. Holen wir uns noch einmal den Waffennamen. Sag Waffeninformationen abrufen. Dieser. Lass uns das kaputt machen. Nehmen wir den Typ hier und verbinden ihn. Und frag, ob es hier genauso ist. Lass uns diesen Zweig verbinden und lass mich das einfach organisieren. Was wir jetzt fragen ist, ist die Waffe, die wir fallen lassen, ist es derselbe Typ wie die, die wir gerade in der Hand haben? Wenn ja, werden wir auf unbewaffnet umsteigen. Wenn nicht, werden wir nichts tun Wir werden nicht wechseln. Lassen Sie uns jetzt kompilieren und schauen wir, ob es funktioniert. Wenn ich also hierher gehe und das Gewehr aufnehme und auf die Pistole klicke, kannst du sehen, dass sie die andere Pistole, die ich gerade in der Hand hatte, fallen lässt , dann wechselt sie nicht mehr in den falschen Bewegungszustand Wenn ich das auch laut mache, kannst du sehen, dass dasselbe passiert, okay Nun, das funktioniert und das Einzige, was im Moment passiert , ist, dass wir eine Achse ohne Ära bekommen. Und das machen wir. Lassen Sie uns das in der nächsten Lektion beheben. 113. 8.28 Behebung des Plünderungsfehlers "Accessed None": Okay, das Problem mit dem Access Non besteht momentan darin, dass wir versuchen, den Schlüssel zu spammen Wenn ich einfach weiter die Taste E spamme, um eine Waffe zu erbeuten , erhalte ich Zugriff ohne Ära Wenn ich das nur hier versuche. Wenn ich versuche, den Schlüssel einfach so zu spammen und auf Flucht klicke, weil wir dieser Ära Zugriff haben, versuchen, das Eigentum zu lesen, Waffe geplündert haben Dieser eine Zugriff bedeutet nicht , dass diese Variable leer ist. Und das liegt wahrscheinlich daran, dass wir es hier zurücksetzen. Und es hat keine Chance, den gesamten Code zu verarbeiten, bevor wir erneut versuchen zu plündern Denn wenn du den Beuteschlüssel spammst, spammst du einfach den ganzen Code Und es erreicht diesen Punkt und dann erreicht es gleichen Zeit auch diesen Punkt und es heißt, dass kein Zugriff möglich ist. Es wird verwirrt. Was wir tun können, ist, den Spieler vom Plündern abzuhalten den Spieler vom Plündern abzuhalten wann immer er gerade die Waffe plündert Wenn ich hier rübergehe und eine neue Variable erstelle, nennen wir diese Variable Plünderwaffe Kompiliere diese, wenn wir die Waffe plündern. Nehmen wir das und sagen Waffe plündern, setzen wir es auf wahr Immer wenn es damit fertig ist, die Waffe zu plündern, können wir das nehmen und Falsch sagen Okay, das verhindert, dass der Spieler den Code spammt. Wir müssen es hier machen, wenn wir die Taste drücken, wir müssen dem Spieler sagen, dass du das nicht tun kannst, wenn du plünderst Zieh dich von hier weg und sag, kein Bulle. Wenn du nicht gerade eine Waffe plünderst, können wir loslegen und sagen, dass du jetzt loslegen und Waffen bestellen kannst Wenn das hier auf wahr gesetzt ist, wenn es anfängt, die Waffe zu plündern, kannst du nichts tun Aber wenn wir damit fertig sind, die Waffe hier drüben zu plündern, dann kannst du weitermachen und darum bitten, eine neue Waffe zu plündern Nun, das wird dir ein Problem bereiten, und vielleicht kannst du schon sehen, was das Problem Wenn ich als Klient hingehe und versuche, die Waffe hier zu plündern, können Sie sehen, dass mir das ein Problem bereitet Wenn du dich erinnerst, sind wir jetzt im Mehrspielermodus. Und gerade jetzt stellst du es über den Server ein und hier drüben versuchst du, diese Variable auf dem Client zu verwenden. Denken Sie daran, Sie können eine Druckzeichenfolge ziehen und schreiben , um zu sehen, ob Sie sich auf dem Server oder auf dem Client befinden. Wenn ich hier als Server spiele und drücke, kannst du sehen, dass ich Hello als Server ausdrucke. Aber wenn ich hier als Client spiele, spiele ich jetzt und drücke. Sie können sehen, dass ich das als Kunde spamme. Ich kann diesen Code über den Server und den Client abspielen. Das heißt, wir sind auch auf dem Client. Wenn wir hier unten sind, benutzt du die Variable auf dem Client, aber du stellst sie auf dem Server ein. Denken Sie daran, dass Sie als Server Informationen zurück zum Client replizieren müssen, sonst hat der Client keine Chance zu wissen, ob das wahr oder falsch ist Wenn Sie etwas auf dem Server einrichten und es auf dem Client verwenden müssen , müssen Sie diese Informationen zurück auf den Client replizieren diese Informationen zurück . Lassen Sie uns kompilieren und speichern Wenn ich jetzt als Kunde spiele und auf Play klicke, versuchen wir es hier als Terrorist. Nehmen wir die Waffen und lassen Sie mich zu K übergehen. Ich mache weiter, jetzt funktioniert alles. Okay, es funktioniert. Und ich kann auch meine Pistole auf der Rückseite wechseln und ich kann auch diese austauschen Du musst das tun, wenn ich jetzt spamme, meinen Lot-Schlüssel spamme, und eine Verzögerung einstellen, wenn du willst Wenn du nicht möchtest, dass der Spieler so schnell wechselt, kannst du eine Verzögerung für das Plündern festlegen Aber wie ihr hier sehen könnt, funktioniert es einwandfrei. Und wenn ich auf Escape klicke, kannst du sehen, dass wir keine Fehler bekommen. Das liegt daran, dass es tatsächlich darauf wartet, dass dies falsch ist, bevor der Spieler erneut die Möglichkeit hat, zu plündern Aber der Spieler merkt das nicht , weil der Code so schnell läuft Aber jetzt haben wir diese Barriere gesetzt und alles funktioniert richtig. Manchmal, wenn dort ein Waffenfehler steht, versuchst du abzulegen. Wenn du versuchst, hier zu spielen und versuchst, die Taste zu spammen und ich auf Escape drücke. Im Moment bekomme ich keine Fehler, aber wenn du eine Ära in der Zukunft hast, kannst du das immer akzeptieren. Das ist die Ära, die wir zuvor hatten. Sie können mit der rechten Maustaste darauf klicken, dies in ein validiertes Get umwandeln. Stellen Sie sicher, dass es gültig ist, bevor wir das alles erstellen. Ja, so wird man die Ära vor uns los, in der man tatsächlich eine Ära bekommen hat, weil man die Waffe fallen ließ. Ja, du siehst, ich versuche es zu spammen. Es passiert nichts. Ich denke, es ist behoben. Aber wenn Sie dieses Problem haben, können Sie das immer tun. Lassen Sie uns alles kompilieren und speichern. Vorerst. Lassen Sie uns mit der nächsten Lektion fortfahren. 114. 8.29 Bereinigen des Codes: Okay, also bevor wir weitermachen, möchte ich, dass du das ganze Projekt bereinigst, weil es ziemlich umfangreich wird und wir einige Dinge reparieren müssen Wenn wir Dinge optimieren und einige Dinge kommentieren können, ist es viel besser, es jetzt zu tun als später, bevor es zu komplex wird. Also, was ich möchte, dass du zum Beispiel tust, kannst du hier zum Anfang gehen. Abspielen. Versuchen Sie, sich Notizen zur Route zu machen, falls Sie dies noch nicht getan haben. Und du kannst alles auswählen. Klicken Sie auf der Tastatur auf C und Sie können zum Beispiel begin, Play schreiben. Das ist besser, als hier nichts im Code zu haben . Und du kannst darauf klicken. Sie können auf die Kommentarfarbe klicken, Sie können die Kommentarfarbe in etwas ändern. Zum Beispiel kann ich diese blau-lila Farbe wählen. Ich kann zum Beispiel die Sättigung 20,75 und Alpha 20,25 einstellen Versuche einfach, das so gut wie möglich zu stilisieren. Außerdem kann ich den Text stattdessen auf 24 setzen, sodass ich ihn viel besser lesen kann, wenn ich herausgezoomt bin Aber du kannst es hier sehen. Und du kannst die Farbe auch speichern. Wenn du hier klickst und das hier anklicken und es nach oben ziehen kannst , ist das sicher. Wenn du zum Beispiel hier unten etwas kommentierst, lass mich das einfach alles ziehen und es nach unten verschieben, Diesel wie diesen. Also ziehe ich das nicht nach unten, sondern ziehe zum Beispiel alles nach unten. Du kannst diesen Teil auskommentieren , weil dieser Teil für die Schritte ist Was Sie tun können, ist zum Beispiel auf diesen zu klicken zum Beispiel auf diesen zu Sie können Playing the Footsteps Soundeffekte nennen. Auch hier werde ich, genau wie zuvor, die Vorderseite vergrößern Und du kannst hier oben klicken und auf diese Farbe klicken. Und dadurch werden automatisch alle Einstellungen übernommen, die Sie hier oben vorgenommen haben. Okay, also ich möchte, dass du alles auskommentierst. Versuche, alles so organisiert wie möglich zu gestalten. Und abgesehen davon werde ich die Kommentare in meiner Freizeit machen, sodass Sie nicht zuschauen müssen, wie ich zu allem Kommentare mache. Aber denken Sie daran, dass Sie Kommentare mit Kommentaren abgeben können. Du hast diesen und nehmen wir an, ich wollte die Bewegung in diesen einbeziehen. Du kannst also immer alles mit dem Kommentar hier auswählen . Und du kannst einen neuen Kommentar machen und diesen zum Beispiel eine Bewegung nennen. Du hast also einen Kopfkommentar. Und Sie können hier sogar kleine Dinge kommentieren . Aber vorerst werde ich das in meiner Freizeit machen. Im Moment ist es wichtiger zu sehen, ob wir den Code irgendwie verbessern können. Das können wir tatsächlich. Wenn wir hier runtergehen, können Sie sehen, dass wir diesen schon einmal benutzt haben. Oft machen wir das Inventar und wir machen eine Schleife und versuchen, diesen Gegenstand im Inventar zu finden. Das machen wir hier schon seit geraumer Zeit. Ein paar Mal. Wir können auch sehen, dass wir es hier machen. Wir durchforsten also das Inventar und finden diesen Artikeltyp Ich glaube, wir machen das an einem anderen Ort, den ich gerade nicht finden kann Aber lassen Sie uns das vorerst tatsächlich zu einer Funktion machen und das wird viel besser sein was wir tun können. Lass es uns vorerst einfach kopieren. Kopieren wir diesen Teil des Codes hier drüben. Lassen Sie uns auch diesen gleich kopieren. Kopieren wir es einfach und fügen es hier ein. Wir können das tatsächlich zu einer Funktion machen . Was wir tun können, ist, alles auszuwählen. Klicken Sie mit der rechten Maustaste. Eigentlich kann man daraus keine Funktion machen , weil wir ein Makro haben. Wenn Sie Collapse sagen, um zu funktionieren, heißt es Fehler und Sie können die Meldung anzeigen. Und es heißt, dass es nur einen Ausführungs-Pin haben kann. Und Sie können sehen, dass dieser viele Ausführungsstifte hat. Was Sie tun können, ist mit der rechten Maustaste zu klicken und das Ganze zu einem Makro zu reduzieren. Bei diesem Makro besteht der Unterschied zwischen einer Funktion und einem Makro einfach darin, dass ein Makro mehrere Ausführungspins haben kann. Und Funktionen können nur einen Eingang und einen Ausgang haben, wohingegen Makros mehrere Ausführungspins haben können Und Sie können hier sehen, dass dieser Zweig, den wir verwenden, eigentlich ein Makro ist und dass er mehrere Ausführungspins für dieses Makro hat , das wir gerade erstellt Lass mich hier klicken und dann auf zwei klicken. Nennen wir das M für Makro. Nennen wir es „ Waffentyp im Inventar finden“. Das ist einfach das, was es tut. Es versucht, den Waffentyp in unserem Inventar zu finden . Lassen Sie uns hier eine neue Hinrichtungsnadel erstellen. Wenn du nur Execution schreibst, denke ich, Execute. Wenn du hier auf den Typ klickst , wenn du einfach Ausführen schreibst, werden wir den Text hier tatsächlich entfernen. Das ist ein Geheimnis für Makro Writing Execute. Lass es uns hier verbinden. Wir benötigen auch einen Execution-Pin, um das später zu knacken. Lassen Sie mich eine neue Hinrichtungsnadel erstellen. Lassen Sie uns das einen Break-Loop nennen. Okay, jetzt haben wir das. Lass mich das hier unten verbinden. Und dafür brauchen wir auch einen Input. Lass uns das hier reinschlagen. Lass mich es nur einmal nach oben stellen. Wenn ich darauf klicke und es hierher ziehe, ändern wir den Namen dafür. Und dieser Waffentyp muss gefunden werden. Wir versuchen, diesen Waffentyp in unserem Inventar zu finden . Machen Sie einfach weiter und doppelklicken Sie darauf und machen Sie sich auch einige Notizen zur Ordnung, hier draußen in der Ausgabe müssen wir all das hier drin haben Nun nehmen wir zuerst diesen Schleifenkörper und platzieren ihn hier. Und da steht schon Loop Body. Das ist richtig. Lass uns jetzt diesen nehmen und ihn hier hineinlegen. Anstelle des Rückgabewerts. Ich sage, Waffe gefunden und wir können einen Abstecher machen, um zu sehen, ob das wahr oder falsch ist. Nun zur anderen Sache, ich werde das Fertige einstecken. Ups, nicht so. Ich nehme das und stecke es hier rein Und ich werde nur zur Klarstellung die Schleife abschließen, wir benötigen später auch die Waffenreferenz , damit wir einige Dinge damit machen können Und ich werde es hier nach oben bringen, nennen wir es jetzt einfach Waffe. Es spielt keine Rolle, ob es zum Beispiel hierher verschoben wird. Ob ich das hier nach unten oder hierher verschiebe, ist nicht wirklich wichtig. Es geht nur darum, den Code sauber zu halten. Aber ich mag es einfach , es so zu haben. Auch hier doppelklicke ich darauf und mache mir einige Routennotizen sowie für diesen Ausführungs-Pin hier. Okay, hier haben wir es und lassen Sie uns kompilieren. Gehen wir jetzt zurück zum Van-Diagramm. Und jetzt können Sie sehen, dass dies das Makro ist , das wir erstellt haben. Jetzt können wir stattdessen dieses verwenden, Peitschen. Wenn ich nochmal hineinzoome, um diese Waffe fallen zu lassen. Anstatt das zu tun, schleifen wir hier schon rein Was ich tun kann, ist , das zu löschen und stattdessen dieses anzuschließen Lass mich es einfach ein bisschen wegbewegen, damit ich sehen kann was ich mache. Jetzt. Anstatt das alles zu tun, machen wir es bereits. Lassen Sie uns auch diesen löschen. Dieser ausgerüstete Waffentyp. Wir können das nehmen und es hier einstecken. Stattdessen. Denken Sie daran, dass wir versuchen, das mit unserem Inventar zu vergleichen. Das ist dasselbe wie zuvor. Und wenn ich diesen Loop verbinde und ich diesen Zweig mit hier verbinde. Und jetzt wollen wir mal sehen, diese Waffe. Das ist es, was wir für die Drop-Waffe verwenden müssen. Wenn wir die Waffe gefunden haben, werde ich diese drei Routenknoten löschen. Ich werde das näher an uns heranrücken. Und lassen Sie uns die Schleife durchbrechen, nachdem wir die Waffe fallen lassen. Dieser Code ist genau wie zuvor. Er ist eigentlich nur optimiert. Wir haben hier nichts Neues gemacht. Wir erstellen dieses Makro nur , damit es besser und sauberer aussieht. Ja, wenn der Loop abgeschlossen ist, lassen Sie uns das alles wieder verbinden, genau wie zuvor. Jetzt können Sie sehen, dass es viel sauberer ist als zuvor. So optimieren Sie Code. Jetzt kannst du diesen verwenden. Lass mich das jetzt ein bisschen genauer organisieren . Wir können diesen Waffentyp im Inventar finden. können wir, schauen wir mal hier drüben, wo wir versuchen, den Gegenstand wieder im Inventar zu finden . Lass es uns rausziehen. Lassen Sie uns diesen löschen. Und lösche auch diesen. Lass mich es vorerst einfach mit dem Loop-Body verbinden. Genau wie zuvor verbinden wir das, all das hier haben wir bereits im Makro. Ich werde das alles löschen. Und dieser auch. Das ist es, was wir versuchen, diesen Waffentyp anhand der Waffeninformationen zu vergleichen . Was wir tatsächlich tun können, auch wenn es ein bisschen verwirrend aussieht, können wir es ziehen und es wieder hierher in den Waffentyp setzen , um es wieder zu finden, doppelklicken, um Notizen zu machen, nur damit es besser aussieht. Was wir tun, ist im Grunde das Gleiche wie zuvor. Ohne dieses Makro suchen wir nur den Typ und schließen , um ihn mit dem Waffentyp aus dem Inventar zu vergleichen mit dem Waffentyp aus dem Inventar Es sollte dasselbe tun. Lass mich mal hier drüben nachschauen. Es geht durch die Filiale. Denken Sie daran, dass wir diese Filiale hier betreiben werden. Lassen Sie uns auch auf diese doppelklicken, um hintere Routennotizen für diesen zu erstellen. Für diese Waffe hier ist die Waffe zum Ablegen aus dem Inventar. Wir versuchen also, die Waffe aus dem Inventar zu damit du sie hierher ziehen und verbinden kannst. Okay, jetzt ist alles miteinander verbunden. Und denken Sie daran, von hier aus den Kreislauf zu unterbrechen. Ziehen Sie erneut und unterbrechen Sie die Schleife. Ich möchte nur sehen, ob ich mich wirklich daran erinnere, das auch für den anderen zu tun , und das habe ich getan. Gehen wir runter, und ich werde das etwas weiter wegschieben. Sie überschneiden sich nicht, einfach so. Okay, kompilieren und jetzt , wo der Loop abgeschlossen ist, verbinden wir diesen wieder, hier unten, wo er ist. Die Waffe, wir versuchen, die Waffe aus dem Inventar zu die Waffe aus dem Inventar Und es ist die Waffe, die wir plündern wollen. Damit werden wir uns genauso überschneiden wie zuvor, aber wir haben es einfach viel sauberer gemacht als Es ist also immer schön , das Spiel zu spielen und einfach zu testen und zu sehen, ob alles wie erwartet funktioniert So kannst du jetzt sehen, dass es genauso funktioniert wie zuvor. Ja. Also funktioniert alles. Es gibt gerade einen kleinen Fehler mit dem Code, und das ist hier drüben, wenn wir versuchen, die Waffe zu plündern, wir versuchen, sie mit dem Inventar zu vergleichen, versuchen, die Waffe in unserem Inventar zu finden Wenn wir die Waffe nicht im Inventar haben, enden wir mit diesem Teil des Codes Denn wenn wir die Waffe im Inventar haben, die Waffe, die wir plündern wollen, versuchen wir zum Beispiel, das vorhandene Gewehr fallen zu lassen Wenn wir jedoch kein Gewehr haben, wird es hier tatsächlich enden Stattdessen nehme ich das und füge es in die Überlappung ein, weil wir den Gegenstand immer noch plündern wollen , wenn wir ihn nicht in unserem Inventar haben Nur eine kleine Korrektur für diesen Code, okay? Bei all den anderen Dingen sehe ich nicht wirklich mehr Dinge , die wir verbessern könnten. Aber wenn du etwas aus Funktionen machen willst , zum Beispiel diese. Du kannst eine Funktion oder Dinge erstellen , die funktionieren sollen, und versuchen, sie zu bereinigen. Mach weiter und mach das jetzt. Ich denke jedoch, dass dies ausreichend ist und ich werde alles kommentieren. Was Sie auch tun können, ist, all diese Variablen in Kategorien einzuteilen. Zum Beispiel die Geschwindigkeit hier, du kannst etwas in die Kategorie schreiben. Zum Beispiel Layer-Eigenschaften, das könnte eine Kategorie sein. Und Sie können sehen, dass es hier hinzugefügt wurde. Und Sie können auch auf die Laufgeschwindigkeit klicken. Klicke auf Kategorien und füge sie zu den Spielereigenschaften hinzu. Das Gleiche gilt auch für die Hocke. Jetzt können Sie sehen, dass sie in einer Kategorie sind. Sie können alle Variablen einfach so bereinigen. Das können Sie tatsächlich auch mit Funktionen tun. Sie können dies jedoch nicht mit Unrep-Funktionen tun , Sie können es nur mit den anderen Funktionen tun , die Sie erstellt haben Okay? Nachdem das geklärt ist, werde ich alles kommentieren. Und denken Sie daran, dass ich Ihnen dieses Projekt aushändigen werde. Und du kannst es von der Website herunterladen damit du all das sehen kannst, was ich gemacht habe, alle Kommentare und so weiter. Aber du wirst es wahrscheinlich auch in der nächsten Lektion sehen. Ich werde alles kommentieren und wir sehen uns in der nächsten Lektion. 115. 8.30 Behebung eines Problems mit kleiner Replikation: Okay, bevor wir weitermachen, gehen wir zurück zur Spielerbasis Sie können hier also sehen, dass ich mein Projekt aufgeräumt habe, alles in Ordnung gebracht habe und das Einzige, was ich getan habe, war im Grunde nur ein paar Kommentare zu verfassen und die Dinge ein bisschen besser zu organisieren. Wir haben hier also die grundlegende Charakterbewegung mit all den Dingen, die wir mit dem Hocken, Gehen, Springen und so weiter gemacht haben Gehen, Springen und so weiter Und hier unten habe ich das Plündern und das Abwerfen der Waffe, oder wir haben die Überschneidungen, das Plündern nach der Waffe Und dazu habe ich auch noch einen Kommentar hinzugefügt. Vergewissere dich, dass die Waffe angebracht ist Die Verzögerung, über die wir vorhin gesprochen haben, es ist immer nett zu schreiben, warum man diese Verzögerung bearbeitet , damit sie nicht zufällig erscheint und man sie in Zukunft versehentlich löscht. Okay, also lass uns alles speichern. Und jetzt, bevor wir mit dem nächsten Abschnitt fortfahren, haben wir einen kleinen Fehler , den ich erkannt habe. Wenn ich hier auf Terrorist klicke und versuche, zwei Dinge zu plündern, funktioniert es manchmal Du kannst also sehen, dass ich hier Dinge geplündert habe. Ich werde tatsächlich auf den Federarm klicken und es auf etwa 500 machen Nur damit ich sehen kann, was vor sich geht und ich wieder spielen kann. Ich muss es ein paar Mal machen und manchmal wirst du feststellen, dass der Spieler die Waffe eigentlich nicht plündert Also werde ich einfach weiter versuchen, die Waffe so zu plündern und sehen, ob ich das Geld dazu bekomme, da zu sein Hier. Okay. Also habe ich es ein paar Mal versucht und nach einer Minute, in der ich es immer wieder versucht habe, kannst du hier sehen, dass es abstürzt Ich habe keine Pistole in der Hand. Wenn ich es nur schnell bewege, damit Sie sehen können, dass meine Hand keine Pistole hat Die Pistole liegt auf dem Boden und ich kann sie nicht wirklich so plündern, sie läuft ab Es funktioniert jedoch auf dem Server. Wenn ich also den Server spielen lassen würde, denke ich, dass wir als zwei Clients spielen. Sie können also sehen, dass dies der zweite Client ist. Ich schließe mich als zweiter Geneigter an und schaue mir diesen Spieler an. Ich kann sehen, dass dieser Spieler keine Pistole hat. Das kannst du hier sehen, hat nichts in der Hand. Ich kann nicht sehen, dass die Pistole noch auf dem Boden liegt. Und ich kann hier auch nicht plündern. Der Fehler tritt auf, weil es sich nur um ein Replikationsproblem handelt Wenn ich auf G klicke, um die Waffe fallen zu lassen, kannst du sehen, dass sie jetzt tatsächlich auf dem Boden liegt. Wenn ich zurückgehe und wieder nach vorne gehe, kannst du sehen, dass ich die Pistole plündere und jetzt habe ich die Pistole tatsächlich in der Es ist also eigentlich nur ein Replikationsproblem und mir wurde klar, dass ich vielleicht 1 Stunde oder 30 Minuten gebraucht habe, nur um zu debuggen und zu sehen, was vor sich geht weil alles richtig aussah Das, was momentan falsch ist, ist jedoch die Beutewaffe Wenn du mit den Waffen läufst. Und das, was ich hier getan habe , um diesen Bug zu bekommen, ist einfach, schnell über zwei Waffen zu laufen. So etwas wie das hier. Ich versuche es einfach ein paar Mal und eines Tages bekommst du den Bug, manchmal funktioniert eine der Waffen nicht. Das liegt tatsächlich daran, dass, wenn dieser Code läuft und du versuchst, die Waffe über diese Rep-Benachrichtigung zu plündern , manchmal, wenn du schnell genug oder im richtigen Tempo darüber gehst, deine geplünderte Waffe hier tatsächlich gelöscht wird Und wenn der nächste sie erreicht , dann hat sie nichts mehr, sie wird nicht Und dann wird all das nicht passieren und du wirst rausgeschmissen, und dann kannst du sehen, dass die Waffe am Boden liegt Aber wenn du als Server spielst, kannst du tatsächlich sehen, dass der Client die Waffe in der Hand hält Für den Kunden kann der Client die Waffe in der Hand jedoch nicht sehen. Sie können sie nur am Boden sehen , obwohl sie sie tatsächlich in der Hand halten. Ich wusste, dass es sich um ein Replikationsproblem handelte weil der Server es richtig betrachtete, aber der Client sah , als ob es am Boden zu liegen schien , obwohl es in der Hand sein sollte. Eigentlich ist es dieser. Das ist, was das Ganze komisch macht. , anstatt die geplünderte Waffenvariable zu löschen Erinnerst du dich, was wir hier gemacht haben Nur ein kurzer Überblick , damit wir nicht zu verwirrt werden, weil wir in diesem Kurs viel getan haben Wir haben einfach die Waffe geplündert. Und dann gehen wir das durch, wir plündern die Waffe. Wir prüfen, ob diese Überlappungswaffen nicht leer sind. Wenn es nicht leer ist, plündern wir die Waffe. Und dann, nach all dem, entfernen wir es aus der überlappenden Waffe Und dann überprüfen wir noch einmal, ob es mehr überlappende Waffen gibt , die wir plündern müssen, das bringt uns hierher Lass mich mal sehen, wo es ist. Es bringt uns hierher, sucht nach überlappenden Waffen und versucht dann erneut, Waffen zu plündern Auch hier wird geprüft, ob es leer ist. Jetzt gibt es weniger Artikel , weil wir den alten Artikel hier entfernt haben. Jetzt läuft es wieder rein. Nehmen wir an, es war nur die Pistole. Nehmen wir an, es war nur die Pistole und wir haben sie hier entfernt. Dieser sollte jetzt leer sein. Und es heißt, wenn es nicht leer ist, wird es falsch sein, weil es jetzt leer ist. Und dann heißt es, kann wieder Waffe plündern . Es wird es verzögern Hier, es wird das löschen. Denken Sie daran, dass wir eine Benachrichtigung für Mitarbeiter gelöscht haben , weil Sie immer wieder dieselbe Waffe erbeuten Denken Sie daran, dass eine Benachrichtigung nicht ausgeführt wird, wenn Sie sie mit demselben Wert aktualisieren Wenn ich mit derselben Pistole aktualisiert habe, wird sie tatsächlich Das ist der Nachteil einer Benachrichtigung für Mitarbeiter. Wenn Sie genau denselben Wert anwenden, wird er nicht ausgeführt. diesem Grund löschen wir die Variable tatsächlich und können sie dann erneut ausführen. Okay, anstatt es hier oben zu machen, nur eine sehr einfache Lösung, können wir es von hier aus übernehmen. Lass es uns einfach irgendwo hier einfügen. Stattdessen können wir es hier nicht einfügen, weil wir es hier eigentlich verwenden, um den Bewegungszustand oder die ausgerüstete Waffe fest zu setzen . Wir können es hier hinzufügen, bevor wir es aus diesem entfernen. Oder du kannst es auch hier hinzufügen. Es spielt keine Rolle. Ich füge das hier einfach vorher hinzu und du machst weiter und verbindest es. Und dann werde ich die Dinge neu organisieren, richtig? Also habe ich auch die Kommentare verschoben. Hier haben wir es jetzt, es ist stattdessen hier unten. Und wir können es tatsächlich hier unten haben , weil wir diese Verzögerung haben. Wir können diese Verzögerung nutzen, also überschreiben wir diese Variable hier nicht , weil wir tatsächlich eine Verzögerung haben Und dieser Code kann abgespielt werden , bevor wir die Variable tatsächlich löschen Es macht Sinn, dass es hier unten ist. Und dann brauchen wir diese Verzögerung nicht wirklich, diese Verzögerung. Wir haben es schon einmal hinzugefügt, weil wir warten wollten, bis dieser Code abgespielt wird. Lassen Sie uns diesen jedoch einfach löschen. Bei diesem können wir uns einfach wieder verbinden. Einfach so. Ja, ich denke, das wird alles reparieren. Also lass uns alles speichern. Lass mich einfach klicken, lass mich tatsächlich umschalten, um als Listen-Server zu spielen. Und ich werde mit drei Spielern spielen . Ich versuche es noch einmal zu spielen und sehen, ob ich dieses Buch wieder erscheinen lassen kann. Ordnung, ich habe es jetzt etwa 40 Mal versucht , aber es passiert nichts. Und es scheint das Problem behoben zu haben. Dies war ein Replikationsproblem. Alles funktioniert wie es soll. Lass mich jetzt einfach auf die Feder klicken und sie auf Null setzen. Nochmals, kompiliere alles. Lassen Sie uns mit der nächsten Lektion fortfahren. 116. 9.01 Waffenwechsel-Eingabeaktionen: Jetzt ist es an der Zeit, die Eingabeaktion für den Waffenwechsel zu erstellen und es selbst zu versuchen Versuchen Sie, eine Eingabeaktion namens Primärwaffe und Sekundärwaffe auszuführen, und versuchen Sie, sie selbst hinzuzufügen. Das haben wir jetzt schon eine ganze Weile gemacht. Einfach eine coole Herausforderung. Und du kannst versuchen, dich selbst herauszufordern. Und wenn du dich nicht erinnern kannst, lass uns weitermachen und es zusammen machen. Klicken wir mit der rechten Maustaste hier und gehen wir zu Eingabe und Eingabeaktion. Ich werde es etwas schneller als zuvor machen , weil wir wissen, was wir jetzt tun. Primärwaffe. Versuchen wir es, klicken Sie erneut, gehen Sie zur Aktion Eingabe und stellen Sie die Sekundärwaffe her. Gehen wir zum Eingabe-Mapping-Kontext. Und von hier aus klicke ich zweimal, weil ich hier zwei Zuordnungen hinzufügen muss zwei Zuordnungen hinzufügen Und ich habe keine Ahnung, warum es mir nichts zeigt. Eigentlich glaube ich, dass ich das ändern muss , bevor ich die zweite hinzufügen kann, eine Primärwaffe. Und ich werde wieder auf das Plus klicken. Ich weiß nicht, warum sie immer weiter maximieren, es ist eigentlich ein bisschen nervig Ich glaube, du kannst hier drücken. Ja, du kannst hier sagen, zusammenbrechen oder expandieren. Du kannst alles zusammenbrechen lassen. Ich denke, vielleicht funktioniert es. Eine Sekundärwaffe? Ja, sie haben ohne Grund wieder maximiert. Primärwaffe Ich klicke auf meinen einen Schlüssel, um meine Hauptwaffe zu bekommen , nämlich mein Gewehr Und klicke auf die beiden Schlüssel , um meine Pistole wieder zu bekommen. Als Auslöser werde ich auf die Taste drücken, weil ich es nur einmal spielen will Wenn ich auf die Schaltfläche klicke, möchte ich nicht ständig aktualisieren. Also werden diese beiden hinzugefügt. Jetzt speichern wir alles, lassen Sie uns sie schließen. Und lass uns zum Player gehen. Gehen wir zur Spielerbasis. hier mit der Lassen Sie uns hier mit der rechten Maustaste klicken und IA Primary Weapon sagen. Und hier unten sagen wir mal IA-Sekundärwaffe. Okay, jetzt haben wir diese beiden Ereignisse. Und damit können wir unser Gewehr oder unsere Pistole besorgen , wenn wir sie im Inventar haben 117. 9.02 Waffenschaltlogik: Okay, was den Waffenwechsel angeht, lass uns zuerst hier runter gehen Ich werde das zur Seite legen, weil ich das nicht zuerst brauche. Wir müssen nur mit der Primärwaffe arbeiten. Lassen Sie uns also zu Recht hier sein und ein neues benutzerdefiniertes Event erstellen. Und ich werde den Server durchgehen und ich werde es nennen, nennen wir es Equip Weapon. Lass uns das auf dem Server laufen lassen und zwar zuverlässig. Wenn wir die eine Taste drücken, zum Beispiel die Hauptwaffentaste, wollen wir das Gewehr ausrüsten Wenn ich so etwas mache, versuche ich Schritt für Schritt zu denken. Denke nicht zwei oder drei Schritte voraus, sonst wirst du verwirrt. Und ich werde auch Schritt für Schritt verwirrt sein. Was müssen wir tun, wenn wir die Waffe ausrüsten müssen? Erstens, ob Sie diese Waffe in Ihrem Inventar haben und wie machen Sie das? Denkt daran, dass wir diesen Waffentyp im Inventar gefunden haben. Wir können das hier reinziehen. Wir wollen einfach das Gewehr finden. Denn wenn du auf die eine Taste klickst, kann ich tatsächlich von hier aus eine Waffe mit Serverausrüstung ziehen Wenn wir darauf klicken, wollen wir das Gewehr finden. Jetzt wollen wir zuerst sichergehen, dass wir das Gewehr nicht schon in unseren Händen haben , sonst macht es keinen Sinn, das Gewehr neu auszurüsten Ich nehme, was wir bereits ausgerüstet haben. Also die Art der ausgerüsteten Waffe, ich sage, wenn sie nicht dem Gewehr entspricht, dann können wir weitermachen und dieses Event veranstalten Denn wenn wir das Gewehr bereits ausgerüstet haben, würde es keinen Sinn machen, das alles laufen zu lassen, weiterzumachen und das hier zu verbinden Okay, also hier unten, lass uns von diesem Zweig aus einen Zweig hier machen, oder aus diesem Goldbarren einen Zweig machen Und wann immer es diese Waffe im Inventar findet, also wann immer es das Gewehr findet, werde ich ein Goldbarren machen Und dieses Goldbarren wird als Waffe bezeichnet, die im Inventar gefunden wurde. Und jetzt können wir das hier nehmen und es für wahr erklären, einfach so Und denk dran, die Schleife so zu durchbrechen, okay, jetzt wissen wir, dass es die Waffe im Inventar hier unten gefunden hat, im fertigen. Wir können den Code hier fortsetzen. Wir haben gerade nach dem Gegenstand im Inventar gesucht und jetzt haben wir ihn gefunden. Also werde ich diese Idee nutzen und sicherstellen , dass sie nur dann wahr ist, wenn sie wahr ist. Wir werden etwas Code ausführen. Wenn wir es nicht im Inventar gefunden haben, müssen wir eigentlich nichts tun. Ich muss nur die Waffe ausrüsten. Lassen Sie uns hier sein, wir können einfach mit der rechten Maustaste darauf klicken. Das ist die Waffe, die wir im Inventar gefunden haben. Lass mich es einfach zu einer Variablen hochstufen und es Equip Weapon nennen. Was bedeutet das nun, muss es repliziert werden oder muss es gemeldet werden ? Sie können versuchen, sich die Frage selbst zu beantworten. Und warum sollte es wiederholt, benachrichtigt oder repliziert werden? Jetzt gebe ich dir die Antwort. Dieser muss ein Vertreter sein, benachrichtigt werden. Und denken Sie daran, wann immer Sie visuelle Veränderungen haben. Im Moment wird der Spieler also das Gewehr in der Hand halten , das ist eine visuelle Veränderung Sie müssen es zu einer Benachrichtigung für Mitarbeiter machen, damit Sie alle Kunden über die visuelle Änderung informieren können Kunden über die visuelle Also mach weiter und verbinde es hier. Und klicken Sie darauf und stellen Sie es so ein, dass Mitarbeiter benachrichtigt werden. Und denken Sie dann auch daran , Ihre Haltung zu ändern. Denn wenn du jetzt darauf klickst, rüstest du eine Waffe aus. Im Moment haben wir das noch nicht erledigt, und das werden wir in der nächsten Lektion tun. Ihr müsst also auch daran denken, euren aktuell ausgerüsteten Waffentyp einzustellen euren aktuell ausgerüsteten Waffentyp , denn wir haben das hier gemacht. Dieser steuert, was innerhalb eures Animations-Blueprints abgespielt wird Gehen wir hier runter und sagen wir, Sie finden es hier, stellen Sie den Typ der ausgerüsteten Waffe Dann muss der Waffentyp in diesem Fall ein Gewehr sein. Außerdem müssen Sie dies auf „Falls“ setzen, da es später, wenn wir das erneut tun, auf „Wahr“ gesetzt wird Denken Sie daran, es hier auf Falls zu setzen, wir müssen auch diese Variable zurücksetzen. Wir müssen sie immer dann auf „Falls“ setzen , wenn wir den Code fertig gestellt haben er das nächste Mal eingeht, wird der Code korrekt ausgeführt, andernfalls wird er automatisch wahr. Und es wird diesen Code ausführen, obwohl er nicht okay ist . Und ich möchte diese Variable auch zurücksetzen, denn wenn wir all das getan haben, denken Sie daran, dass wir die Benachrichtigung für den Mitarbeiter zurücksetzen müssen , damit sie nicht ausfällt. Und wir können diese ausgerüstete Waffe nehmen und sie hier zurücksetzen, bevor wir alles beenden Und vielleicht müssen wir hier eine Verzögerung hinzufügen, damit wir dem Mitarbeiter, der benachrichtigt wird, Zeit zum Spielen geben Aber lassen Sie uns das später überprüfen. Ich bin kein Fan davon, zufällige Verzögerungen hinzuzufügen. Ich füge Verzögerungen nur dann hinzu , wenn wir es wirklich brauchen, weil Verzögerungen nett sind. Dieser wird nicht bemerkt werden. Es ist 0,05 Kein Mensch wird das jemals bemerken, aber wir müssen nicht wirklich eins hinzufügen, wenn wir es nicht wirklich brauchen Okay, die zweite Sache, die wir hier brauchen , ist, ob du schon eine Waffe in der Hand hältst Wenn Sie zum Beispiel bereits eine Pistole in der Hand haben, müssen Sie diese Pistole ausrüsten Wir müssen tatsächlich auch die Ausrüstung abnehmen . Also muss ich fragen, ob der Spieler bewaffnet oder unbewaffnet ist. Weil der Spieler vielleicht gerade eine Pistole in der Hand hält und wir das Gewehr plündern und wir drücken auf den Gewehrschlüssel und schon haben wir Dann müssen wir zuerst die Pistole ausrüsten. Lassen Sie uns, von hier aus werde ich die Verbindung trennen und das einfach ein bisschen nach unten ziehen Dann können wir diese ausgerüstete Waffe nehmen und sagen, ist sie gleichbedeutend mit unbewaffnet? Lassen Sie uns hier einen Zweig anlegen und ihn hier wieder verbinden. Wenn es gleich unbewaffnet ist, werden wir einfach weitermachen und den Code ausführen, den wir zuvor erstellt haben Wenn es jedoch nicht unbewaffnet ist, wollen wir die Waffe, die wir in der Hand haben, abrüsten Suchen Sie einfach noch einmal die Waffe im Inventar, über die wir sprechen Über welche Waffe sprechen wir? Wir sprechen über die derzeit ausgerüstete Waffe, die wir haben. Das könnte gerade die Pistole sein. Wenn Sie das gefunden haben, bauen wir wie zuvor eine Filiale Wenn Sie das gefunden haben, machen wir daraus eine Variable und nennen es Waffe ohne Ausrüstung . Und lassen Sie es uns zu einem Mitarbeiter machen, benachrichtigen und lassen Sie uns das hier verbinden Machen Sie sich ein paar Notizen zur hinteren Route. Und dann, wenn das abgeschlossen ist, weil du gerade diesen Code ausführst und die Waffe abrüstest Aber du musst die Waffe danach ausrüsten. Also hier in der kompletten Version musst du das nochmal hier oben laufen lassen. Lass es mich einfach hierher ziehen , um etwas Platz zu schaffen und es viel besser aussehen zu lassen. Und wir können das hier raufziehen. Okay, also so etwas sieht viel besser aus. Wir prüfen, ob wir unbewaffnet sind oder nicht. Wenn wir unbewaffnet sind, werden wir die Waffe sofort ausrüsten Wenn wir zum Beispiel mit einer Pistole bewaffnet sind, werden wir die Pistole ausrüsten Denk daran, den Kreislauf zu durchbrechen. Ich habe vergessen, es hier anzuschließen. Lassen Sie uns auch den Kreislauf durchbrechen. Nachdem wir die Schleife durchbrochen haben und sie abgeschlossen ist, werden wir die Waffe ausrüsten, die Unausgerüsteten und die Ausrüstung Das werden wir in der nächsten Lektion tun. aber auch daran, die nicht ausgerüstete Waffe zurückzusetzen , damit wir später im Spiel keine Kiste bekommen Ja, das war es für die Logik im Moment, wir können es nicht wirklich testen weil wir den Mitarbeiter nicht wirklich benachrichtigen lassen Lassen Sie uns mit der nächsten Lektion fortfahren und an diesen arbeiten. 118. 9.03 Waffen-RepNotify mit Ausrüstung und Unequip: In Ordnung, also die Benachrichtigung des nicht ausgerüsteten Ausrüstungsmitarbeiters. Das wird sehr einfach sein, weil wir es schon einmal gemacht haben. Wenn wir zur Beutewaffe oder der geplünderten Waffe übergehen, wenn Sie zum Kundendienstmitarbeiter gehen, benachrichtigen Sie uns für die geplünderte Waffe wenn Sie zum Kundendienstmitarbeiter gehen, benachrichtigen Sie uns für die Wenn Sie hier reingehen, denken Sie daran, dass wir das alles gemacht haben, um die Kollision zu deaktivieren und so Wenn Sie die Waffe also schon im Inventar haben, wir die Physik bereits entfernt, wir haben die Kollision bereits entfernt, und das alles haben wir gemacht Also müssen wir das alles nicht noch einmal machen. Das hast du schon getan, als du die Waffe geplündert hast. Also das Einzige, was wir tun müssen, ist es von hinten auszurüsten Also dieser hier, Schauspieler an eine der Buchsen anschließen. Also lassen Sie uns diesen Code einfach hier duplizieren. Ich kopiere und gehe zu meiner Ausrüstungswaffe und füge sie hier ein. Ordnung, für diesen ist es nicht die geplünderte Waffe Ich werde die löschen. Es ist unsere ausgerüstete Waffe, also werde ich sie herziehen und sie hier einstecken. Und ich werde diese hier einstecken. Okay nochmal, ich werde es hier übernehmen und mit der rechten Maustaste klicken und „In ein validiertes Get konvertieren“ sagen. Ich stelle sicher, dass meine Variable gültig ist, bevor ich das alles mache, bevor wir sie anhängen. Denken Sie daran, dass Ihre ausgerüstete Waffe, diese hier gerade, an Ihrem Rücken befestigt ist. Zum Beispiel wird deine AK 47, bevor du sie in der Hand hältst, Rücken des Charakters befestigt. Zuerst musst du es tun, du musst es tatsächlich von der alten Steckdose lösen Du musst es von hier wegziehen und „Vom Schauspieler trennen“ sagen. Wir nehmen es zuerst von hinten ab. Und wir können die Position gegenüber der Welt bei allen behalten. Nachdem wir es von hinten gelöst haben, können wir weitermachen. Ich werde diesen Routenknoten tatsächlich löschen. Ich werde ihn hier direkt verbinden. Und wir können das aufschlüsseln , damit es hier ein bisschen besser aussieht. Und dann können Sie diesen tatsächlich löschen und Sie können ihn hier verbinden, wenn Sie möchten. Es ist nur, damit es ein bisschen besser aussieht , so etwas. Lass mich sie einfach näher zusammenbringen. Okay, hier haben wir es. Das ist der Code für diejenigen, die nicht ausgerüstet sind. Vielleicht hast du es schon erraten. Wir müssen zur Waffe gehen, um sie fallen zu lassen. Wir haben das alles schon gemacht und sind noch nicht in den Drop eingetaucht. Gehen wir zur geplünderten Waffe. Wir brauchen diesen Code hier, wo du deine Pistole zum Beispiel auf deinen Oberschenkel legst , wenn du herausgenommen hast Lass uns das alles einfach hierher kopieren wo du es auf den Rücken oder auf den Oberschenkel legst Und lass uns zu der Waffe ohne Ausrüstung gehen, genau wie zuvor. Lass uns diesen einfügen. Lass mich stattdessen die Waffe ohne Ausrüstung nehmen und sie hier einstecken Lass mich diesen löschen. Lass es mich noch einmal machen, richtig, in ein validiertes Get Connected umwandeln. Eigentlich löschen wir einfach diesen und verbinden ihn stattdessen hier. Bevor wir das tun, wollen wir uns noch einmal vom Schauspieler trennen. Und wir werden die Position gegenüber der Welt beibehalten die Position gegenüber der Welt und wir werden sie vom Schauspieler trennen Und dann werden wir es hier verbinden. Denken Sie auch daran, dass wir die Waffe ohne Ausrüstung benutzen , einfach so Okay, mach weiter wie zuvor. Schieb es runter. Und bewege es näher, damit es ein bisschen besser aussieht. Etwas wie das hier. Und lassen Sie uns weitermachen und alles kompilieren und speichern. Okay, jetzt sind wir damit fertig und können weitermachen und auf Play klicken , um zu sehen, ob es tatsächlich funktioniert oder ob wir einige Bücher gemacht haben. Und lass uns weitermachen und auf Play klicken. Lassen Sie mich hier als Server als Anti-Terrorist spielen. Lassen Sie uns das Ganze lieber als Terrorist spielen. Weil die Waffen gerade da sind. Es ist nur der eine Schlüssel, der funktioniert. Also muss ich das Gewehr als meine zweite Waffe abfeuern. Wenn ich jetzt auf eine davon klicke, siehst du, dass ich gerade mein Gewehr auswähle Und wenn ich den einen Schlüssel spamme, denken Sie daran, dass wir den einen Schlüssel nicht spammen können , wenn ich ihn schließe, damit ich ihn Ihnen zeigen kann, denn hier finden wir das Ereignisdiagramm Ich werde das alles tatsächlich schließen. Also werde ich das hierher verschieben, rechten Maustaste klicken und die Tabs nach rechts schließen. Es ist also ein bisschen besser, es sich hier anzusehen. Denken Sie daran, wir haben dieses Edelmetall hergestellt, damit wir den Gewehrschlüssel nicht spammen können , denn wenn wir das Gewehr schon haben, führen wir diesen Code nicht aus Das ist auch gut für die Optimierung. Damit Sie Code nicht unnötig ausführen. Alles funktioniert hervorragend, und wenn wir eine Box finden, können wir sie jederzeit reparieren. Es funktioniert jedoch alles. Als Nächstes müssen wir die Sekundärwaffe einsetzen, und das machen wir in der nächsten Lektion. 119. 9.04 Ausrüstung von Sekundärwaffen: Lassen Sie uns jetzt die Sekundärwaffe einsetzen. Du kannst weitermachen und all das kopieren und ein neues Event erstellen. Und kopiere einfach alles, füge es und verwandle es in eine Pistole Dies wäre jedoch nicht wirklich eine gute Programmierpraxis. Denken Sie jetzt daran, dass ich versuche, Ihnen den besten Code beizubringen , und wir könnten ihn hier kopieren und einfügen, und er würde perfekt funktionieren. Wenn ich jedoch etwas beim Kopieren und Einfügen sehe, wenn ich Code sehe, der kopiert und eingefügt werden muss, und das Einzige, was ich ändern muss, ist ein Wert, zum Beispiel von Gewehr Ich versuche immer zu jagen. Ich habe nur dieses eine Ereignis und ich kann dieses Ereignis wiederverwenden, anstatt es erneut zu kopieren und einzufügen Ja, wir können versuchen, selbst darüber nachzudenken, wie wir diese Veranstaltung auch hier nutzen können Es funktioniert tatsächlich hier und hier. müssen wir jetzt tun, ohne dass wir das alles kopieren und einfügen Was müssen wir jetzt tun, ohne dass wir das alles kopieren und einfügen müssen? Wir können dieses Video posten und du kannst zurückkommen. Und jetzt gebe ich dir die Antwort. Anstatt es als statische Variable zu haben, können wir es dynamisch haben. Wir können das hier hineinziehen, in dieses Ereignis. Das ist der Waffentyp, den es zu finden gilt. Ich glaube tatsächlich, dass wir, ja, diesen auch brauchen. Wenn wir die Waffe wechseln, die Animation, muss diese auch in diese passen. Doppelklicken wir darauf und machen uns ein paar Notizen zur Weiterleitung. In Ordnung, jetzt haben wir es hier angeschlossen. was wir tun können, ist hier oben in der Primärwaffe, wir können sie einfach in ein Gewehr umwandeln, anstatt hier unten Was wir hier unten tun können, ich werde das alles einfach kopieren und einfügen Und füge es hier ein. Ich werde es jetzt anschließen und nicht das Gewehr Jetzt ist die Sekundärwaffe eine Pistole. Wenn wir also noch keine Pistole ausgerüstet haben, können wir diese Veranstaltung durchführen Und diese werde ich jetzt auf eine Pistole umstellen. Dieser Wert wird hier eingegeben und jetzt wird nach einer Pistole gesucht Okay, jetzt, ganz einfach, wir haben diese Lektion tatsächlich beendet Du kannst auf Play klicken und ich kann auf Terrorist klicken und ich kann diese beiden Waffen plündern Ich kann auf eine klicken , um mein Gewehr zu haben. Ich kann auf zwei klicken , um meine Pistole zu haben. Jetzt können Sie sehen, dass wir problemlos zwischen diesen beiden Waffen wechseln können problemlos zwischen diesen beiden Waffen Und wir haben das alles nicht einmal kopiert und eingefügt. Wir haben einfach dasselbe wiederverwendet. 120. 9.05 Erstellen von Animationsmontagen: Okay, was ich jetzt gerne machen würde, ist, dass ich denke, dass es momentan ein bisschen billig Weil wir die Waffen so austauschen können. Und es wäre cool, wenn wir eine Animation hätten , wenn wir die Waffe wechseln. Wenn du schon einmal Counter Strike gespielt hast, wird beim Wechseln einer Waffe die Waffe quasi neu geladen, bevor du sie benutzen kannst Lass uns so etwas machen und für diese Lektion ganz einfach Wir werden nur ein paar Animationen oder Animationsmontagen erstellen paar Animationen oder Animationsmontagen Lass uns auf die Assets klicken. Denken Sie daran, es ist nicht die Animation, es sind nicht die alten. Es sind die Vermögenswerte. Es ist unser Charakter. Achte nur darauf, dass es unser Charakter ist. Anstatt hier suche ich einfach nach Reload, weil wir einige Reload-Animationen haben, die wir später verwenden werden Nun, ich habe keine speziellen Animationen zum Herausnehmen deiner Waffe haben Sie wahrscheinlich, wenn Sie ein ernstes Projekt haben und so etwas machen möchten. diesem Fall verwenden wir jedoch einfach die Reload-Animation, wenn wir unsere Waffe herausziehen Und das dient auch der guten Praxis. Klicken wir zuerst mit der rechten Maustaste auf die Pistole. Gehen Sie beispielsweise zu Erstellen und erstellen Sie eine Animationsmontage Mit der Animationsmontage können wir tatsächlich so etwas wie Nachladeanimationen, Feueranimationen und ähnliches hinzufügen , ohne unsere laufende Animation zu unterbrechen Und klicken Sie auf die Animationsmontage und nennen wir sie Anion für Animationsmontage und nennen sie Machen wir dasselbe mit dem Gewehr, klicken wir mit der rechten Maustaste, zu erstellen Und nenne es Reload-Gewehr. Und wenn Sie es jetzt öffnen, können Sie sehen, dass wir eine Animationsmontage haben Und wir haben ein paar Sachen, die wir hier machen können. Und wir werden diesen Teil hier unten tatsächlich verwenden , um eine Art Oberkörperbewegung zu erzeugen. Wenn wir also laufen, können wir diese andere Animation haben, diese Reload-Animation, ohne unsere laufende Animation zu unterbrechen Wir können also zwei Animationen gleichzeitig haben und deshalb haben wir diese Animationsmontage erstellt 121. 9.06 Anpassen des Animations-Blueprints: Okay, bevor Animationsmontagen an Ihrer Animation funktionieren können, müssen Sie etwas innerhalb des Animations-Blueprints tun des Gehen wir zum Player und öffnen wir den Animations-Blueprint Und denken Sie daran, dass wir das hier bisher getan haben. Was Sie tun müssen, ist, eine Oberkörperbewegung zu spielen , wie Sie hier sehen können. Wenn ich zu meinen Animationen zurückkehre und nach meiner Animation suche und mir meine Animationsmontagen ansehe Wenn ich jetzt auf eine davon klicke, kann ich hier sehen, dass sie einen Slot verwendet , der als Standard-Slot bezeichnet wird Und wir müssen stattdessen tatsächlich den Oberkörper benutzen. Hier im Animations-Slot-Manager. Klicken wir auf einen Slot, nennen wir ihn einfach Oberkörper, denn ich möchte den Oberkörper nur bewegen, wenn ich neu lade und ich möchte trotzdem, dass mein Charakter herumläuft Du kannst herumlaufen und den Oberkörper neu laden und uns das speichern lassen Und jetzt siehst du, ob du auch zur Pistole gehst. Hier im Slot-Manager hast du diesen Oberkörper Du hast diesen Slot, wann immer du auf einem von ihnen etwas geschaffen hast, das Gewehr hat ihn und die Pistole hat ihn auch Okay, du musst hier auf den Steckplatz klicken und nicht auf den Standardsteckplatz Klicken wir jetzt hier auf den Namen des Steckplatzes und ändern ihn in Oberkörper. Das Gleiche gilt für die Pistole, also klicken beide hier auf den Namen des Steckplatzes und ändern ihn in Oberkörper Jetzt können Sie sehen, dass die Animation nicht abgespielt wird , weil eigentlich nur wir wissen , dass es sich um den Oberkörper handelt Wir haben Neural Engine noch nicht wirklich gesagt was der Oberkörper gerade ist. Wir müssen das tun. Gehen wir zum Animations-Blueprint hier drinnen. Wir müssen eine Funktion namens Layered Blend Her Bone verwenden. Diese einschichtige Mischung ist die Standardeinstellung für ihren Knochen . Nehmen wir zuerst die Pistole Lass uns das kopieren. Die Pistolenbewegung wurde zwischengespeichert und wir platzieren sie hier Jetzt müssen Sie versuchen, das Ganze erneut zu kopieren und einzufügen. Und wir müssen hierher ziehen und nach dem Standard-Slot suchen. Sie können hier sehen, dass wir diesen Standardsteckplatz haben. Dies ist jedoch nicht das, was wir derzeit verwenden möchten. Wir wollen verwenden, wenn du hier oben klickst, willst du es auf Oberkörper umstellen. Jetzt verwenden wir stattdessen diesen. Und du kannst rausgehen und es hier verbinden. Immer wenn wir unsere Animationsmontage abspielen, wird sie sich zwischen den beiden vermischen. Wir haben diese Mischung hier. Lass uns hier darauf klicken. Und lassen Sie uns auf die eingerichtete Ebene klicken. Klicken Sie hier und klicken Sie auf das Plus. Klicken Sie hier auf den Pfeil. Jetzt sind wir hier drin. Jetzt versuchen wir, Unreal Engine mitzuteilen, was der Oberkörper ist, weil Unreal Engine den Oberkörper momentan nicht wirklich kennt Man muss ihm einen guten Namen geben. Wenn du das Skelett oder den Charakter öffnest und auf die Charakterknochen und die gesamte Hierarchie klickst, kannst du den Knochen der Figur sehen wir dem Oberkörper mitteilen wollen. Wo fängt es an? Normalerweise beginnt es in den meisten Fällen hier an der Wirbelsäule 01. Manchmal sieht es besser aus , wenn es von Wirbelsäule 02 ausgeht. Versuchen wir in diesem Fall, den Spine 01 zu verwenden. Sie müssen zurückgehen und es genau so schreiben , wie es hier heißt Wir werden es Spine 01 nennen. Und die Mischtiefe ist eins. Und auch Mesh Space Rotation, Blend gilt als wahr. Lass es uns kompilieren und lass uns es von hier oben löschen. Und lassen Sie uns das stattdessen verbinden. Einfach so, ich werde das alles kopieren , einfügen und die Pistole löschen Und stattdessen übernimm das Gewehr und stecke es auch hier Lass uns weitermachen und auch das Gewehr anschließen und dieses alte löschen Ich werde das nach unten verschieben und die Dinge ein bisschen mehr organisieren Also so etwas hier. Dann kann ich es wie zuvor hierher verschieben. Und jetzt haben wir das tatsächlich beendet. Wenn ich auf Kann kompilieren klicke, kannst du sehen sich mein Charakter jetzt tatsächlich bewegt. Wenn wir jetzt unsere Animationsmontagen abspielen, sollte alles perfekt funktionieren Denken Sie daran, es zu ändern. , es hier in Ihrer Animationsmontage Denken Sie daran, es hier in Ihrer Animationsmontage auf den Oberkörper umzustellen. Und denken Sie daran, hier für den Oberkörper, für die Schichtmischung pro Knochen, anzugeben, aus welchem Knochen Sie die Mischung herstellen möchten. Sehr, sehr wichtig. Speichern Sie alles und lassen Sie uns weitermachen. 122. 9.07 Animations-Multicast mit Equip-Animation: Lass uns weitermachen und dafür sorgen, dass es funktioniert. Gehen wir zurück zum Spieler und öffnen hier die Spielerbasis. Lass uns unsere Animationsmontage abspielen. Was Sie tun müssen, ist dieses Mesh, das wir haben von hier aus ziehen und nach einer Animationsmontage suchen. Und dann kannst du es hier sehen. Animationsmontage abspielen. Okay, jetzt müssen wir auswählen, welche Montage wir sprechen. Ich werde es dynamisch machen, genau wie dieses. Was wir tun können, ist uns daran zu erinnern , dass es sich um einen vorübergehenden Effekt handelt. Anstatt eine Rep-Benachrichtigung zu verwenden, denken Sie daran, dass ein Spieler, der noch keine Verbindung zu Ihrem Server hergestellt hat, die Benachrichtigung eines Mitarbeiters sehen kann Spieler, der noch keine Verbindung zu Ihrem Server hergestellt hat, die Benachrichtigung eines Und wenn sie sich beispielsweise 10 Minuten später verbinden, können sie deine ausgerüstete Waffe sehen Allerdings muss die Animation, wie die Nachladeanimation, wenn du eine Waffe aufnimmst und sie sehen können, dass sie nachgeladen haben, für Spieler ohne Verbindung nicht wirklich angezeigt werden, da es sich nur um eine Animation handelt , die nach 1 Sekunde verschwindet Die Leute werden es nicht wirklich bereuen, wenn sie die Animation nicht sehen können, wenn sie eine Verbindung herstellen, weil sie sowieso nach einer Sekunde verschwindet Also werde ich stattdessen zu einem Multicast etwas hinzufügen. Ein Multicast. Denken Sie daran dass dies nur die verbundenen Spieler sehen können Und Spieler ohne Verbindung können, wenn sie sich während des Neuladens verbinden, erst sehen, sich während des Neuladens verbinden, erst sehen, wenn Sie erneut laden. Lassen Sie uns ein neues Kunden-Event Nennen wir es Multicast. Nennen wir es Equip Weapon, weil ich es normalerweise einfach den gleichen Namen nenne wie den Server Lassen Sie uns das auf Multicast und zuverlässig laufen lassen, und lassen Sie uns es hier für den Multicast verbinden Je nachdem, ob wir eine Pistole oder ein Gewehr in der Hand haben, wollen wir die entsprechende Animation abspielen Genau wie das, was wir hier oben gemacht haben. Ich werde eine neue Variable erstellen und es ist der Waffentyp, genau wie dort oben. Ausgewählt. Lass uns hier einfach dasselbe machen. Ich werde mich nur ausrüsten. Ich nenne es einfach Ausrüstung. Ich werde es hier oben tatsächlich dasselbe nennen. Anstatt zu finden, sich wie diesen Waffentyp auszurüsten. Okay, alles sieht gut aus. Jetzt können wir von hier aus ziehen und sagen: Wählen Sie diesen ausgewählten Knoten aus und verwenden Sie ihn. Dann können wir diesen hier unten verbinden. Jetzt wird es die Animation auswählen, je nachdem, was dieser Aufzählungswert ist Wenn es die Pistole ist, wähle ich die Pistole aus und spiele sie Animationen. Wenn es das Gewehr ist, spiele ich das Gewehr Animation Montage Jetzt wird es abgespielt, je nachdem, was wir hier oben für das Gewehr oder hier unten für die Pistole ausgewählt haben hier oben für das Gewehr oder hier unten für die Pistole ausgewählt das Gewehr oder hier unten für die Lass es mich einfach unter die beiden stellen. Ich werde das tatsächlich ein bisschen mehr organisieren. Ich verschiebe das, verschiebe das nach oben. Also diese sind zusammen und dieser ist unter ihnen. Und wir können diesen auch nach oben verschieben, einfach so. Okay, jetzt haben wir es und jetzt müssen wir es dem Code hinzufügen. Also werde ich es einfach hier hinzufügen. Gleich danach, wenn wir unseren Bewegungsstatus ändern, möchte ich meine Reload-Animation abspielen Und wir nannten es MC Equip Weapon. Und denken Sie daran, Multicasts können nur bei Serverereignissen ausgeführt werden. Dies ist ein Serverereignis. Denken Sie daran, dass Multicast hier nicht ausgeführt werden kann. Sie können hier also keinen Multicast aufrufen. Das ist falsch. Du musst es über den Server laufen lassen. Lassen Sie uns die rausnehmen und sagen wir mal MC Equip Weapon. Lass es uns hier verbinden. Und lassen Sie uns diesen Waffentyp damit verbinden, damit er korrekt spielt. Und lassen Sie uns jetzt kompilieren. Jetzt können wir weitermachen und auf Play klicken, um zu sehen, ob alles funktioniert oder ob wir eine Box haben. Wenn ich auf Abspielen klicke und Terroristen auswähle und ich sie hier auswähle Jetzt klicke ich auf einen. Sie können sehen, dass ich die Reload-Animation abspiele Wenn ich auf zwei klicke, lade ich auch neu. Mal sehen, ob es zu unserem Laufen passt. Wenn ich renne und hier klicke, kannst du sehen, dass ich gerade renne und neu lade Wenn ich auf Steuerung klicke und neu lade, siehst du, wenn ich einfach auf den Federarm klicke und ihn auf 500 stelle, damit wir sehen können , wie er aussieht, klicke ich auf Play Und wenn wir die jetzt nehmen, machen wir es jetzt Wenn ich wechsle, kannst du sehen, dass ich auch gerade hocke und nachlade Es funktioniert jetzt. Alles funktioniert richtig. Fantastisch. Jetzt klicke ich auf den Federarm, mache die Zielarmlänge wieder auf Null und alles funktioniert. Jetzt müssen wir es auch woanders hinzufügen. Denn wenn wir die Waffe vom Boden plündern, spielt sie gerade nicht Immer wenn du die Gegenstände plünderst oder hier im Lot Waffen, wann immer du den Gegenstand hier plünderst Wenn wir den Waffentyp festlegen, mit dem Lose Waffen ausgerüstet sind, müssen wir auch die Animation abspielen Es ist also richtig. Lassen Sie mich das hier ein bisschen wegziehen. Lassen Sie uns es wieder MC Equip Weapon nennen. Und lassen Sie uns hinzufügen, was auch immer der Waffentyp ist. Es ist dieser. Machen Sie weiter und machen Sie einen hinteren Routenknoten, und jetzt haben wir es hier richtig. Also werden wir die Dinge einfach ein bisschen mehr organisieren . Okay, jetzt ist es also auch hier drin , in der Beutewaffe Und jetzt lass uns auf Play klicken. Wann immer ich meine Waffe plündere, wird diese Animation abgespielt , bevor ich mit meiner Waffe schießen kann So fügst du deinen Waffen also auch Animationen hinzu deinen Waffen also auch Animationen hinzu Sie können sie durch Animationsmontagen hinzufügen und Sie können auch eine Oberkörperbewegung für die Animationsmontagen ausführen, sodass Sie Ihre laufende Animation nicht stören während Sie all das tun Okay, das war es für den Moment. Speichern wir alles und fahren wir mit dem nächsten fort. 123. 9.08 Einrichten des Widgets für die Waffenanzeige: Jetzt ist es an der Zeit, das Waffen-Display-Widget zu erstellen . Also lass uns weitermachen. In der Benutzeroberfläche hier drüben, genau wie vor der Erstellung der Teamauswahl I, klicken wir jetzt mit der rechten Maustaste und gehen zur Benutzeroberfläche und erstellen ein weiteres Widget, einen Blueprint Auch hier ist das Benutzer-Widget das, das wir auswählen werden Und nennen wir es B. Ich nenne es Main. Dies wird die Haupt-Benutzeroberfläche sein, die wir haben. Wir haben kein Haupt-NuWi für das Spiel erstellt. Im Haupt-Nei kannst du auch deine Waffen sehen. Lass uns das öffnen. Denken Sie daran, dass Sie immer, wenn Sie mit einem Widget-Blueprint beginnen , zuerst Canvas verwenden und eine Leinwand hinzufügen müssen , zuerst Canvas verwenden und eine Leinwand hinzufügen Und jetzt sind wir bereit, es hier zu entwerfen. Wir haben die Symbole jedoch immer noch nicht importiert. Also lass mich einfach alles speichern. Lass uns das schließen. Und ich möchte, dass du die Kursmaterialien durchgehst , die ich dir gegeben habe zu den Benutzeroberflächen-Symbolen, und ich habe dir diese Symbole gegeben. Gehen Sie also weiter und wählen Sie erneut alle Waffensymbole aus. möglicherweise unterschiedliche Elemente angezeigt Je nachdem , wann Sie das Kursmaterial herunterladen, werden in diesen Kursmaterialien . Weil ich im Moment nur weitere Dinge hinzufüge , während ich mit diesem Kurs arbeite. Möglicherweise gibt es mehr Symbole als das, was Sie hier gerade sehen können. Habe diese drei Symbole. Gehen wir vorerst zum Ordner mit den Symbolen. Lass mich sie einfach anklicken und hierher ziehen. auch hier daran, dass wir , genau wie bei den anderen, Denken Sie auch hier daran, dass wir , genau wie bei den anderen, die Texturgruppe auf UI und die Komprimierungseinstellungen auf Benutzeroberfläche zwei D geändert haben die Komprimierungseinstellungen auf Benutzeroberfläche zwei D Lassen Sie uns das auch mit diesen drei machen. Jetzt kannst du sie anklicken und sie individuell einstellen. Sie können jedoch einfach auf einen klicken oder die Strg-Taste gedrückt halten und alle drei auswählen. Klicken Sie mit der rechten Maustaste und gehen Sie zu Asset. Aktion, Massenbearbeitung über Eigenschaftsmatrix. Denken Sie daran, dass Sie auf diese Weise alle gleichzeitig bearbeiten. Das haben wir schon einmal gemacht. Wir machen weiter und klicken darauf. Was die Komprimierung angeht, glaube ich es, da von hier aus die Komprimierungseinstellungen hier auf zwei Benutzeroberflächen, zwei D, und der Detaillierungsgrad, Sie können es von der Welt bis zur Benutzeroberfläche einstellen. Jetzt können wir es schließen und alles speichern. Ordnung, wenn wir jetzt in die Benutzeroberfläche und in die Haupt-UI gehen in die Benutzeroberfläche und in die Haupt-UI und wenn wir zum Beispiel ein Bild zum Bildschirm hinzufügen, ein Bild zum Bildschirm hinzufügen, klicken Sie hier oben darauf, damit das Bild gefunden wird. Lassen Sie uns die Symbole suchen, die wir hinzugefügt haben. Und hier können Sie die Symbole sehen, die wir haben. Ordnung, lassen Sie uns zur nächsten Lektion übergehen, in der wir diesen Widget-Blueprint entwerfen Lassen Sie uns vorerst einfach diesen löschen. Behalten wir diese Leinwand , weil wir sie brauchen. Und kompiliere, speichere alles und lass uns weitermachen. 124. 9.09 Gestaltung der Benutzeroberfläche für Waffenanzeigen: Okay, die Sache, die wir jetzt mit dem Waffendisplay machen wollen , ist genau wie in Counterstrike, wo du hier an der Seite siehst , dass du die Waffe hast und dann hast du die Taste auf der Tastatur, die du drücken musst , um die Waffe zu sehen Also einfach so, also machen wir dasselbe, und die Benutzeroberfläche wird besser sichtbar sein, und die Benutzeroberfläche wird besser sichtbar sein wenn ihr diese Waffe ausgewählt habt verglichen mit den anderen und so weiter, also nur ein kleiner Effekt. Okay, lassen Sie mich das vorerst schließen und wir werden diese sehr einfache Benutzeroberfläche für die Waffenanzeige erstellen. Wenn Sie jetzt so etwas entwerfen, müssen Sie sich überlegen, welche Boxen Sie hinzufügen möchten. Wir haben also die horizontale Box und wir haben die vertikale Box. Zuerst brauchen wir eine vertikale Box, weil die Waffen übereinander liegen. Wählen wir eine vertikale Box. Platziere es hier. Lass uns die Größe einfach irgendwie ändern, damit ich es herumziehen kann Und ich werde es irgendwo hierher ziehen. Denken Sie auch hier daran, den Ankerpunkt zu ändern, sonst wird er auf dem Bildschirm falsch angezeigt. Klicken Sie auf den Ankerpunkt setzen Sie ihn unten rechts ab. Und auch für die Position werde ich 00 schreiben, um zu sehen, wo sie sich auf dem Bildschirm befindet. Und Sie können sehen, dass es sich außerhalb des Bildschirms befindet. Denken Sie daran, dass Sie dies in der Ausrichtung anpassen können. Wenn ich hier 0,5 schreibe, kannst du sehen, dass es jetzt in der Mitte einrastet Und wenn ich eins schreibe, rastet es auf der anderen Seite ein, genauso wie bei Y, wenn t 0,5, rastet es in der Mitte Und wenn ich eins schreibe, rastet es in die andere Ecke. Jetzt, sogar an Position 00, befindet es sich innerhalb unserer Leinwand, und das ist es, was wir für die Position x und y wollen . Ich kann ihm hier etwa -30 und hier -30 geben, nur um es von den Rändern wegzuschieben Es ist nicht oben auf dem Bildschirm. Hier ist der Bildschirmrand. Okay, lass uns kompilieren. Jetzt müssen wir eine Waffe haben und wir haben die Tastaturtaste. Daneben brauchen wir tatsächlich eine horizontale Kiste. Jetzt eine horizontale Box innerhalb der vertikalen Box. Und jetzt können wir das Bild der Waffe sowie den Text für die Tastaturtaste hinzufügen . Füge die hier hinzu. Lass mich einfach auf den Text klicken und lass uns vorerst einen schreiben. Das ist die Taste auf der Tastatur. Und dann kannst du auf das Bild klicken. Lass mich einfach das Bild auswählen. Wenn ich zum Beispiel nach dem Symbol AK 47 suche und es größer als 32 mal 32 haben möchte, können wir vielleicht so etwas wie 130 mal 130 schreiben. Denken Sie daran, bevor Sie das Ganze richtig gestalten, denken Sie daran, auf die Bildschirmgröße zu klicken. Gehen Sie beispielsweise zu Laptops und wählen Sie das generische 14-15-Notizbuch aus. Das ist genau wie das, was ich dir zuvor mit dem Teamauswahl-Widget gezeigt habe . Dies dient dazu, diese Benutzeroberfläche auf allen Geräten korrekt zu skalieren. Immer wenn ich nacheinander im Zoom bin, wird es auf dem Laptop so aussehen , so sieht es aus. Jetzt kannst du sehen, wenn du hier auf diesen Button klickst, entferne ich die Strichlinien. Normalerweise mache ich das, um zu sehen, wie es ohne all diese Linien aussieht. Ich denke, das ist groß genug für einen Laptop. Lass uns kompilieren. Denken Sie daran, wir haben es auf meinen Bildschirm skaliert Ich habe zum Beispiel einen Vier-K-Monitor, und wir haben ihn skaliert, indem wir auf dieses kleine Symbol geklickt Und dann haben wir hier ausgewählt, wie stark wir skalieren wollten. Ich glaube, vorher waren es acht. Es ist also sehr schnell skaliert. Ich habe es auf 2,5 gesetzt. Ja. Jetzt klicken wir auf diese Nummer. Ich werde es vertikal in der Mitte ausrichten. Ich glaube, das klickt jetzt auf dieses horizontale Feld. Eigentlich werde ich auf das vertikale Feld klicken. Und wenn Sie auf „An Inhalt anpassen“ klicken, wird das vertikale Feld einfach an die Größe angepasst, verglichen mit dem Inhalt, den es enthält. Was wir tun können, ist zum Beispiel, ich für das horizontale Feld D steuern kann, und dadurch wird es hier oben über dieses Feld hinaus kopiert. Wenn Sie einfach D drücken, um es zu kopieren oder zu duplizieren, können Sie sehen, dass es die Waffen hier oben einfügt und das sieht richtig Ich brauche nur zwei davon. Ich brauche nicht so viele. Ich werde zuerst auf die Zahl klicken. Eigentlich werde ich diesen löschen. Ich werde einfach einen von ihnen stilisieren und ich kann ihn kopieren und einfügen Ich werde auf diese Nummer klicken. Ich werde den Fonds gegen etwas ändern. Wir haben Rubin importiert. Ich denke, Simy Bold wird dafür gut sein. Wir können es jederzeit auf die Größe testen. Ich denke, 22 ist vielleicht ein bisschen besser. 22, wir brauchen ein Leerzeichen zwischen diesen beiden. Geh hier hoch, suche nach Abstandshaltern und platziere sie zwischen dem Bild und dem Text Und dann kannst du etwas Abstand zwischen ihnen setzen. Wenn ich zum Beispiel 20 draus mache, so etwas in der Art. Oder du kannst es noch mehr machen, wenn es zu wenig ist. Ich denke, es ist vorerst in Ordnung. Jetzt können Sie auf dieses horizontale Steuerelement D klicken , um es zu duplizieren. Und jetzt hast du es zum Beispiel, für dieses kannst du es in eine Pistole verwandeln Jetzt ist es im Moment nicht wirklich wichtig, weil wir es im Spiel dynamisch ändern Diese AK wird eine Waffe sein. Wenn ich zu den Waffen gehe, wenn ich sie hier finde, die Waffe hier, 44. Das wird das Symbol sein, oder dieses. Wenn du 44 statt eines AK eingesammelt hast, ändern sich diese Bilder im Spiel dynamisch. Es ist nicht wirklich wichtig, aber für diese Zahlen ist das eins, das ist zwei. Und das drücke ich auf der Tastatur, damit diese Waffen für mich ausgerüstet werden. In Ordnung, das war es also, um es zu stilisieren. Sie können sehen, dass es sehr, sehr einfach ist. Es ist eine sehr einfache Benutzeroberfläche, aber sie wird im Spiel gut aussehen. Das war es also vorerst. Fahren Sie fort und kompilieren und speichern Sie alles, und lassen Sie uns mit dem nächsten fortfahren. 125. 9.10 Anzeigen der Benutzeroberfläche für die Waffenanzeige: Jetzt werden wir diese Benutzeroberfläche auf dem Bildschirm anzeigen. Jetzt können Sie es selbst machen, wenn Sie etwas Training wünschen, weil wir das schon einmal gemacht haben. Versuche herauszufinden, wie du das auf dem Bildschirm anzeigen kannst. Nach dem Teamauswahl-Widget. Immer wenn wir das Team auswählen, möchte ich diese Haupt-Benutzeroberfläche anzeigen. Versuche es selbst herauszufinden. Es ist ein gutes Training, wenn du dich nicht erinnern kannst oder wenn du Hilfe brauchst. Lass uns das zusammen machen. Lass mich das schließen. Zuerst muss ich mir die Baupläne ansehen. Gehe zur Spielersteuerung Denken Sie daran, dass wir in der Spielersteuerung die gesamte Benutzeroberfläche haben, in der wir dieses Ereignis zum Ein-/Ausblenden von Widgets gemacht haben. Hier möchte ich mein Haupt-Widget zeigen. Jetzt verwenden wir diese Aufzählung, ich muss sie der Aufzählung hinzufügen Wenn ich zu Enums gehe, klicke ich auf die Darin füge ich einen neuen Enumerator hinzu und schreibe Name oder nicht Name Ich werde es hier nach oben verschieben, nur um sauberer zu bleiben. Spielt eigentlich keine Rolle. Dann gehe ich hier wie zuvor zum Player-Controller. Rechtsklick, Widgets erstellen. Dann können wir das Haupt-Widget erstellen. Wir können hier danach suchen. Ich mache einen Rechtsklick und mache daraus eine Variable und nenne sie WB Main Jetzt ziehen wir von hier aus und fügen es zum Viewport hinzu, genau so Jetzt, genau wie zuvor, werde ich diesen Hauptteil herausziehen, richtig, in ein validiertes Get umwandeln Wenn es dann nicht gültig ist, möchte ich das Widget erstellen. Wenn wir es jedoch schon einmal erstellt haben, werde ich es einfach wie zuvor direkt zum Viewport hinzufügen einfach wie zuvor direkt zum Viewport Versuche das zu organisieren. Wenn Sie damit fertig sind, können Sie weitermachen und kompilieren. Und denken Sie auch daran, hier zum Widget zum Ausblenden zu wechseln. Lassen Sie uns wie zuvor W in ein validiertes Abrufen übernehmen und von hier ziehen und dann „Entfernen von“ sagen. Denken Sie auch daran, dies zu tun, wann immer Sie möchten , vielleicht jetzt schon. Mit der Menü-Benutzeroberfläche passiert das nicht wirklich oft. Du entfernst es nicht zu sehr. In einem Fall, z. B. wenn Sie eine Filmsequenz oder ähnliches haben, möchten Sie die Menü-Benutzeroberfläche jedoch wenn Sie eine Filmsequenz oder ähnliches haben, möchten Sie die nicht anzeigen So entfernst du es auch. Gehen wir jetzt zurück zum Event-Graph. nach der Teamauswahl daran, dass wir hier im Player-Controller unten diesen CL-Spawn-Spieler erstellt haben Wir spawnen den Spieler, wir verstecken die Teamauswahl. Jetzt ist hier ein guter Ort, um die Maui zu zeigen. Denken Sie daran, dass die Benutzeroberfläche kundenseitig ist. Wann immer Sie mit UI arbeiten, müssen Sie sie hier auf dem Client ausführen. Normalerweise suche ich einer Kundenveranstaltung, die wir bereits durchgeführt haben und die wir nutzen können. Dieser CL-Spawn-Player läuft auf dem Client, also ist dies ein wirklich guter Ort, um die Maui zu zeigen Ich werde hierher fahren und „Widget einblenden“ sagen , so wie wir es genannt haben Und ich werde das MenüUI auswählen. Ich werde auf Show klicken und es verbinden. Jetzt nur zur Erinnerung, falls du es vergessen hast, es wird Maui und dann Show up here in the show auswählen Widget ausblenden. Es weiß, dass es die Menü-Benutzeroberfläche Es weiß, dass dieses Bulletin wahr ist. Es wird also hierher kommen. Es weiß, dass es wahr ist. Es wird also das Widget anzeigen. Jetzt weiß es, um welches Widget es sich handelt, weil wir das Haupt-Widget ausgewählt haben, hier hineingeht. Und es wird diesen Code vom Haupt-Widget aus ausführen. Und es wird diesen ignorieren. Es läuft nur diesen hier oben. Und wir werden das Haupt-Widget zum Viewport hinzufügen. Ich glaube also nicht, dass uns etwas fehlt. Lassen Sie uns also weiterspielen und beispielsweise die Terrorismusbekämpfung auswählen . Und dann können Sie sehen, dass ich meine Haupt-Benutzeroberfläche habe. Wenn ich meinen Bildschirm maximiere, habe ich hier die Haupt-Benutzeroberfläche und ich kann sie auf meinem Bildschirm sehen. 126. 9.11 Codierung der Waffenanzeige-Funktionalität: Lassen Sie uns nun die Funktionalität für die Display-Benutzeroberfläche codieren. Gehen wir zur Benutzeroberfläche und öffnen wir sie. Bevor Sie mit der Programmierung der Benutzeroberfläche beginnen, müssen Sie sich im Wesentlichen nur überlegen, was Sie versuchen zu tun? Die Sache, die ich versuche, ist, dieses Bild in das zu ändern, was ich gerade in der Hand habe. Ich möchte es anzeigen und entfernen, je nachdem, ob ich die Waffe geplündert habe oder nicht Fangen wir also mit dem ersten an. Beim ersten werde ich nur den Bildnamen ändern, damit es nicht verwirrend ist. Ich werde es IMG-Gewehr nennen. Die nächste werde ich IMG-Pistole nennen. Nun, um sie hier in der Grafik zu verwenden, können Sie sehen, dass wir keine Variablen haben Wir müssen auf beide klicken. Wählen Sie beide aus. Zwei ist variabel, also musst du das nehmen und kompilieren. Und jetzt können wir sehen, dass wir sie hier als Variablen verwenden können . Ich werde all diese löschen und uns ein benutzerdefiniertes Ereignis erstellen lassen. Nennen wir es einfach Inventar aktualisieren. Ich aktualisiere das Inventar, das ich hier drin habe. Im Grunde versuchen wir, diese Bildpistole zum Beispiel und das Bildgewehr zu nehmen und wir versuchen zu sagen, Pinsel aus Textur zusammensetzen Dieser eine Satz Pinsel aus der Textur, das ist einfach nur, wenn du dieses Bild änderst Wir wollen dieses Bild ändern je nachdem, ob wir das K, die Info oder etwas anderes gedrückt halten . Stellen Sie den Pinsel aus der Textur und hier ist das Bild, das wir ändern können. Die andere Sache ist, dass wir versuchen, dieses Symbol entweder ein - oder auszublenden, je nachdem , ob wir die Waffe geplündert haben oder nicht erneut aus dieser eingestellten Sichtbarkeit und wählen Sie diese aus Ich kopiere das hier unten, kopiere das und schließe das Bildgewehr Das versuchst du zu tun. Ich kopiere das auch und füge es einfach so ein. Dies sind die Funktionen, die wir einfach verwenden werden. Es ist immer nett, das zu tun wenn man mit etwas anfängt. Versuche zu überlegen, was das Wichtigste ist, was du zu tun versuchst. Sie versuchen, das Bild zu ändern , je nachdem, welche Waffe Sie geplündert haben , und Sie versuchen, die Sichtbarkeit auf versteckt oder nicht versteckt einzustellen , je nachdem, ob Sie die Waffe geplündert haben oder Okay, mit dem. Nun kommt es darauf an, welche Waffe wir plündern. Ist es eine Pistole oder ist es ein Gewehr? Denken Sie daran, wir haben bereits eine Variable dafür und das ist der Waffentyp E. Wir verwenden das häufig und lassen uns diesen einen Waffentyp nennen. Okay, wir haben diesen und wir können von hier wegziehen und sagen, dass Switch Autorität hat. Schalten Sie die Aufzählung tatsächlich ein. Nun, je nachdem, ob es sich um eine Pistole handelt, werden wir diesen Code ausführen Je nachdem, ob es ein Gewehr ist, werden wir diesen Code ausführen Und ich werde das alles hier verbinden , einfach so Okay, jetzt zu den Bildern, zu den Texturen. Anstatt sie hier zu platzieren, klicke ich sie einfach an und ziehe sie in dieses Event. Und ich werde es dummen Nagel nennen. Wir können das auch hier reinziehen. Okay, lass uns jetzt kompilieren. Lasst uns alles speichern. Alles klar, das Einzige, was uns momentan fehlt , ist das Vorschaubild der Waffe Denn denken Sie daran, dass wir der Waffeninfrastruktur kein Waffen-Thumbnail hinzugefügt haben kein Waffen-Thumbnail hinzugefügt Also müssen wir das in der nächsten Lektion tun. Bevor wir das beenden, müssen wir jedoch auch festlegen, ob es sichtbar ist oder nicht. Jetzt ist die Sichtbarkeit der Waffe also immer sichtbar, wenn Sie die Waffe geladen haben. Wenn Sie es jedoch noch nicht geladen haben, wird es ausgeblendet. Um dies zu tun, können wir einfach überprüfen, ob dieses Bild- oder Waffen-Thumbnail gültig ist oder Denn wie zuvor, wenn ich zurück zu den Spielern und der Spielerbasis gehe, erinnere ich mich einfach daran, wie wir Variablen wie diese löschen könnten , indem wir sie auf nichts setzen und sie dann ungültig werden Das Gleiche können wir hier für das Vorschaubild des Bildes tun. Wir können es auf nichts setzen und es wird nicht gültig sein, und das bedeutet, dass wir die Waffe fallen gelassen haben Was wir tun können, ist, von hier wegzuziehen und zu sagen, dass es gültig ist, und dann können wir wählen, ob das gültig ist. Wie zuvor, oder wir haben mit den ausgewählten Notizen gearbeitet , können wir daraus ziehen und sagen, diese auswählen und auswählen. Jetzt kann ich dieses Goldbarren mit diesem hier verbinden. Okay? Wenn das Vorschaubild der Waffe nicht gültig ist, gültig ist falsch, bedeutet das, dass wir wollen , dass es ausgeblendet wird Nun zu diesem anderen, wenn es wahr ist, ist es gültig Wir wollen, dass es nicht getestet werden kann. Denken Sie daran, dass kein Treffer testbar bedeutet, dass Ihr Mauszeiger nicht mit diesem Bild interagieren kann Das müssen wir nicht wirklich tun. Was wir tun müssen, ist, hier darauf zu klicken und die Kontrolle zu halten. Klicken Sie auf den zweiten und stellen Sie die Sichtbarkeit ebenfalls auf Testbar ohne Treffer ein. Sichtbar bedeutet, dass Ihre Maus tatsächlich darauf klicken kann und alles, was sich dahinter befindet, blockiert Aber wir müssen nicht wirklich darauf klicken. Ich muss sie so einstellen , dass sie nicht getestet werden können. Und mach hier dasselbe für den Text. Stellen Sie sie so ein, dass sie nicht getestet werden können. Hier unten in der Sichtbarkeit werde ich auch standardmäßig diese beiden auswählen und die Sichtbarkeit auf versteckt stellen. Wir müssen sie nicht wirklich sehen, wenn wir das Spiel starten, wir haben keine Waffen Wir werden es auf „ Testbar ohne Treffer“ einstellen , wann immer wir die Waffe hier tatsächlich erbeuten Machen Sie hier dasselbe. Wir fragen, ob das gültig ist. Wir können diesen tatsächlich einfach kopieren und einfügen. Kopieren Sie es, fügen Sie es ein, schließen Sie es an und schließen Sie es auch hier an. Okay, hier habe ich einige Routennotizen erstellt und den Code ein wenig organisiert. Hier haben wir den Code, und das ist der Hauptcode für unser Inventar, die Benutzeroberfläche. Gehen wir nun zur nächsten Lektion über und erstellen dieses Waffen-Thumbnail in unserer Struktur 127. 9.12 Hinzufügen von Waffen-Thumbnails zur Struktur: Fügen wir nun das Waffen-Thumbnail zur Struktur hinzu. Gehen wir zurück zu unseren Strukturen und öffnen die Waffeninformationen Und lassen Sie uns eine neue Variable hinzufügen und sie hier ein Thumbnail nennen sie hier ein Thumbnail Bei der Miniaturansicht handelt es sich bei dem Typ nur um ein Bild, also um eine Textur mit zwei D. So werden sie genannt. Geh raus und speichere Lassen Sie uns jetzt diese Struktur schließen. Lassen Sie uns es auch zur Datentabelle hinzufügen. Wenn Sie die Datentabelle aus Google Sheets öffnen, die wir zuvor erstellt haben , und Sie öffnen die Datentabelle hier, lassen Sie uns die Variable innerhalb der Struktur hinzufügen . Ich schiebe es einfach nach dem Typ hierher, vielleicht hier drüben, nur um es sauberer zu machen. Es ist nicht wirklich wichtig, wohin du es verschiebst, aber jetzt muss ich es hier hinzufügen. Nach dem Typ muss ich das Vorschaubild hinzufügen. Wenn ich hier nach dem Typ suche, muss ich das Vorschaubild hier hinzufügen Ich klicke mit der rechten Maustaste und füge rechts eine Spalte hinzu. Dann nenne ich das ein Vorschaubild. Denken Sie daran, es den gleichen Namen zu nennen wie Sie es hier genannt haben Jetzt brauchen wir die Verweise auf sie. Wenn ich das schließe, gehe ich zur Benutzeroberfläche. Ich öffne die Icons, jetzt kann ich schreiben, auf dieses AK klicken und die Referenz kopieren. Ich kann zu meiner Datentabelle zurückkehren und sie hier für die AK einfügen. Machen Sie hier dasselbe für die Informationen, klicken Sie mit der rechten Maustaste auf Referenz kopieren. Fügen Sie es hier ein und klicken Sie mit der rechten Maustaste auf Referenz für die Pistole kopieren. Und füge es auch hier ein. Jetzt können Sie es als CSV-Datei hier im Download-Ordner herunterladen. Ich werde Weapon Info umbenennen. Ich werde das kopieren, das alte. Ich werde es löschen. Ich werde den Namen hier einfügen, DT Weapon Info. Denken Sie daran, dass dies derselbe Name ist wie der, den wir hier in unseren Datentabellen genannt haben. Und jetzt können wir es anklicken und hierher ziehen, und es heißt, es wurde erfolgreich reimportiert Wenn Sie es öffnen, können Sie sehen, dass jetzt tatsächlich Symbole daran angebracht Okay, jetzt können wir es schließen. Und jetzt gehen wir zum Spieler und öffnen die Spielerbasis. Innerhalb der Spielerbasis wollen wir die Benutzeroberfläche aktualisieren, wenn wir die Waffe hier in der Los-Waffe erbeuten Lass uns mit der Servalote-Waffe hier runter gehen. Wir müssen dieses UI-Aktualisierungsereignis innerhalb eines Clients aufrufen. Denken Sie daran, dass die Benutzeroberfläche kundenseitig ist und wir derzeit keine Kundenereignisse haben Ich werde jetzt mit der rechten Maustaste hier klicken und ein neues benutzerdefiniertes Event erstellen Nennen wir es CL für Client, lassen Sie mich es einfach Inventar aktualisieren, UI zum Beispiel nennen. Und führe es auf dem besitzenden Client aus und es ist zuverlässig. Die Sache, die wir hier machen wollen, ist, dass wir unser B Main anrufen wollen Denken Sie daran, dass es sich im Player-Controller befindet, wir haben dieses WB-Main Und im B-Main finden wir unser Event, das wir zuvor erstellt haben Wir müssen auf dieses WB-Hauptmenü zugreifen, das sich im Player-Controller Versuche zu sehen, ob du es selbst machen kannst und nenne diese Veranstaltung hier. Dies ist eine bewährte Methode , um zwischen Bauplänen zu kommunizieren . Lass es uns zusammen machen Lassen Sie mich jetzt einfach mit der rechten Maustaste klicken und Get Controller sagen , um den Controller für diesen speziellen Bereich zu erhalten. Dann kann ich von hier aus ziehen und sagen Player-Controller-Referenz abrufen, das haben wir über unsere Blueprint-Oberfläche Und dann kann ich meine WB-Hauptvariable aufrufen. Dann kann ich das Inventar ziehen und aktualisieren. Ich aktualisiere sogar das Inventar. Ich mache weiter und verbinde es für den Waffentyp. Ich ziehe es einfach hierher, ebenso wie das Waffen-Thumbnail Ich ziehe es einfach mit in die Veranstaltung. Es erstellt automatisch eine Variable und ich werde einige Routenknoten erstellen Wenn das erledigt ist, wollen wir weitermachen und alles hier kompilieren und speichern. Immer wenn wir eine Waffe plündern, rufe ich sie an, nachdem ich sie ausgerüstet habe , nachdem ich den Ausrüstungstyp hier geändert habe, werde ich sie wegschieben Ich werde das auch wegschieben . Ich werde das wegschieben. Dann rufe ich die Benutzeroberfläche von CL, Update Weapon oder Inventar auf. Anstatt den Waffentyp festzulegen, ziehen wir ihn einfach aus dieser geplünderten Waffe Ich werde es anklicken und es hierher ziehen. Machen Sie auch eine Notiz zur Weiterleitung. Auch für das Vorschaubild der Waffe. Jetzt haben wir es in unserer Datentabelle. Wenn Sie die Waffeninformationen erhalten, erhalten Sie auch die Informationen für das Vorschaubild, das Sie hier sehen können Wenn du es nicht siehst, denk daran, es hier anzukreuzen. Denken Sie daran, dass wir auf Nicht verbundene Pins ausblenden klicken und nur dies sehen Jetzt kannst du auch auf den Spin klicken, um das Vorschaubild einzublenden und wir können es In Ordnung, jetzt haben wir es hier. Wir haben es jetzt angeschlossen. Es sollte funktionieren, wann immer wir eine Waffe plündern. Lass es uns einfach ausprobieren. Bevor wir weitermachen, klicken wir auf Play. Und wenn wir auf Als Terrorist spielen klicken. Ich spiele zum Beispiel auf diese Pistole an. Und Sie können sehen, dass die Pistole jetzt hier unten in der My UI angezeigt wird jetzt hier unten in der My UI angezeigt Wenn ich auf das für anspiele, wird das P nicht angezeigt. Das müssen wir reparieren Das wird vorerst nicht angezeigt. Es ist komisch, weil es hier derselbe Code sein sollte. Wann auch immer es soweit ist, die Information, wir sind nicht mehr unbewaffnet Also hier bei der Waffe jetzt plündern oder Waffe verlieren, damit wir nicht unbewaffnet sind Also, es geht tatsächlich diesen Teil des Codes hier oben durch und überspringt das alles Wir müssen das tatsächlich wieder mit einem richtigen verbinden . Ich werde die Strg - und Alt-Taste gedrückt halten, um die Verbindung zu trennen. Alt. Klick, tut mir leid. Drücken Sie Alt und klicken Sie, um die Verbindung zu trennen. Dann werde ich das von der falschen Seite hierher verschieben. Ich denke, es ist besser, wenn wir es hier verbinden. Lassen Sie uns es stattdessen hier verbinden, das ist richtiger und lassen Sie uns jetzt kompilieren und versuchen, es auszuspielen. Wenn ich also gegen ausgewählte Terroristen spiele, nehme ich jetzt ein Formular und dann nehme ich die Pistole und Sie können sehen, dass beide jetzt funktionieren Wir müssen das Problem beheben, bei dem wir jetzt eine Waffe fallen lassen und sie jetzt aus unserer Benutzeroberfläche entfernt werden sollte Kopieren wir das hier und suchen wir die Waffe, die wir fallen lassen. Hier drüben, um den Waffencode und die Waffe fallen zu lassen. Ich werde hier reingehen. Und jetzt legen wir die abgeworfene Waffe fest und entfernen sie aus dem Inventar. Du kannst es entweder hier oder hier machen. Spielt eigentlich keine Rolle. Ich werde es einfach hier drinnen machen. Ich werde es einfügen. Und wir brauchen das Vorschaubild der Waffe. Das ist also die Waffe, die man fallen lassen muss. Was ich tun kann, ich kann es einfach von hier nehmen, Waffe zu Drop, und ich kann das hier verbinden, damit es sauberer aussieht. Ich kann das auch nehmen. Ich kann noch einmal sagen, wir machen eigentlich alles hier. Anstatt es zu kopieren und einzufügen, verwenden wir einfach dieses. Lass es mich zurückschieben Und dann kann ich den Waffentyp und das Vorschaubild verwenden Und lassen Sie uns das für diesen Fall einfach besser strukturieren . Lassen Sie uns die Verbindung wieder herstellen Lass es uns zurückziehen. Genau wie zuvor können wir immer ein Heck erstellen. Eigentlich müssen wir keinen hinteren Knoten erstellen. Wir können ihn hier für das Vorschaubild der Waffe einfach so platzieren hier für das Vorschaubild der Waffe Bevor wir auf Play klicken, ist es eigentlich nicht so Denkt daran, wenn ihr eine Waffe fallen lasst, wollt ihr kein Vorschaubild setzen, wir wollen sie auf Null setzen Hier in der Benutzeroberfläche heißt es, dass es nicht gültig ist, und wenn es nicht gültig ist, wird dieses Symbol ausgeblendet Wir klicken weiter auf Spielen“ und machen weiter und plündern die Pistole Plündere das Gewehr. Und wenn wir zum Beispiel das Gewehr fallen lassen, können Sie sehen, dass es von der Benutzeroberfläche entfernt wurde Wenn ich die Pistole fallen lasse, ist sie jetzt entfernt. Wenn ich die AK aufnehme, kannst du sehen dass sie jetzt das AK-Symbol zeigt Wenn ich die Pistole in die Hand nehme, wenn ich die AK fallen lasse und die Information aufnehme, siehst du, dass jetzt das Info-Symbol angezeigt wird Also funktioniert alles so , wie es soll. Und das war es vorerst. Also im nächsten können wir es versuchen. Also wann immer du eine Waffe ausgewählt hast. Also, wenn ich jetzt die Pistole ausgewählt habe, sollte die Pistole vollständig sichtbar sein Das Infosymbol sollte jedoch kaum sichtbar sein. So weißt du, was du aus deinem Inventar ausgewählt hast. 128. 9.13 Unbefangene Opazität der Waffen-UI: In Ordnung, lassen Sie uns den Code hier fortsetzen. Was wir jetzt tun müssen, ist, die Deckkraft der Bilder im Designer zu ändern Wenn du auf eines davon klickst, zum Beispiel die AK, wenn du auf den Farbton klickst, wenn du auf den Pfeil klickst und siehst, dass du das Alpha ändern kannst , sodass du es sichtbar und nicht sichtbar machen kannst es sichtbar und nicht sichtbar machen Das wollen wir also zeigen, wann immer wir die Pistole ausgewählt haben Ich werde es zum Beispiel noch einmal machen. Und lass uns zur Grafik gehen. Wir können die Bildpistole nehmen und wir können Opazität sagen. Wenn Sie nicht wissen, wie es heißt, suchen Sie einfach nach dem Wort und dann können Sie sehen, welches am besten zu verwenden ist Das ist manchmal etwas, das ich benutze. Wenn ich eine neue Mechanik entwickle, kann ich einfach das Wort schreiben und dann versuchen, das auszuwählen, was Sinn macht Wir möchten die Deckkraft für diesen Bildsatz festlegen. Jetzt kommt es darauf an, mit welcher Waffe wir ausgerüstet sind. Die ausgerüstete Waffe befindet sich im Inneren unseres Spielers, dieser eine Waffentyp. Weil wir diese im Moment nicht benutzen können. Das ist nur die Waffe wir vom Boden aufgesammelt haben. Dies ist unbedingt nicht die Waffe, die wir gerade ausrüsten Wir brauchen diese Variable. Und so wie wir das machen, müssen wir wieder mit dem Spieler kommunizieren. In der Benutzeroberfläche haben wir etwas namens Get Owning, Get Owning Player. Wenn du einen Verweis auf den Player-Controller haben willst, wähle Get owning player Wenn du einen Verweis auf den Spieler-Pan für das I willst, brauchen wir einen Verweis auf den Spieler Paw Ich würde sagen, erwerb dir den Besitzer eines Spielers. Dann können wir von hier wegziehen und sagen, Spielerreferenz holen. Weil wir das bereits in einer Blueprint-Oberfläche gemacht haben in einer Blueprint-Oberfläche Lassen Sie uns es einfach nach denen hier verbinden. Es spielt keine Rolle, welcher von ihnen es ist, es führt den Code aus und dann läuft es von hier aus weiter. Wir wollen den ausgerüsteten, diesen einen ausgerüsteten Waffentyp bekommen. Nochmals, genau wie zuvor. Ich werde das verschieben und sagen Enumeration Connect einschalten Lassen Sie uns das jetzt nehmen. Wenn es sich um eine Pistole handelt, möchten wir die Opazität auf einen Wert einstellen , der vollständig sichtbar ist Wenn es ein Gewehr ist, lassen Sie uns das tatsächlich ohne dieses kopieren Sagen wir, stellen Sie die Opazität ein, wenn es sich um ein Gewehr handelt. Aus der Pistole. Im Moment haben wir die Pistole ausgerüstet, das Gewehr hätte eine Sichtweite von 0,25 Zum Beispiel die Opazität. Jetzt können wir das hier kopieren und einfügen und wir können es mit dem Gewehr verbinden Die Pistole ist jetzt 0,25 und das Gewehr ist eins. Jetzt, wo wir damit fertig sind, können wir weitermachen und alles kompilieren und speichern können wir weitermachen und alles kompilieren und speichern. Jetzt sollte es funktionieren. Wir müssen diesen anrufen. Erinnerst du dich an diese Benutzeroberfläche für das Update-Inventar? Wir nennen es nicht im Rahmen unseres Events, bei dem wir hier unten Waffen auswählen. Wenn wir hier die Primär- und Sekundärwaffe auswählen . Wir rufen das Event, bei dem wir die Benutzeroberfläche des Inventars aktualisieren, nicht aus, wir müssen dieses Event auch aufrufen. Immer wenn wir Waffen ausrüsten, wird diese Version hier aktualisiert. müssen wir tun. Gehen wir zur Spielerbasis. Lass mich das einfach wegziehen. Denken Sie daran, wir sind in der Serva-Ausrüstungswaffe. Immer wenn wir hier zur Primär- und Sekundärseite wechseln hier zur Primär- und Sekundärseite Danach rufe ich wieder CL an , aktualisiere Waffe I, ich werde hier den Waffentyp überprüfen, den wir Es ist diese eine ausrüsten. Es ist diese eine Waffentyp-2-Ausrüstung, die wir verwenden Ich kann das einfach hier verbinden und einen Umleitungsknoten für den nächsten erstellen Das Waffen-Thumbnail ist, dass wir es tatsächlich von dieser Waffenvariablen bekommen können, wir können es hierher ziehen, den Namen abrufen, nach der Namensvariablen suchen, sie wie zuvor sammeln, Waffeninformationen abrufen und dann können wir von hier ziehen und es kaputt machen Dann können wir uns die Informationen hier holen. Wir haben den Waffentyp und wir haben das Vorschaubild. Technisch gesehen kannst du das auch einfach hier einstecken. eigentlich keine Rolle. Ich stecke einfach das Vorschaubild ein. Das ist in Ordnung Und ich werde auf diesen klicken und nicht verbundene Pins ausblenden Und jetzt haben wir das erledigt. Ich werde das einfach näher betrachten und alles sieht gut aus. Lassen Sie uns kompilieren, alles speichern und testen wir es. Flic beschwert sich jetzt über ausgewählte Terroristen und ich kann die Pistole in die Hand nehmen und ich kann die vier abholen Sie können sehen, dass die M Four momentan nicht so sichtbar ist wie die Pistole Wenn ich die M4 auswähle, wird sie sichtbarer Jetzt kann ich sehen, dass ich auf diese Weise die Waffen wechseln kann. Wenn ich sie fallen lasse und die AK auswähle oder die AK aufnehme, kann ich die Pistole fallen lassen Und jetzt ist die AK nicht sichtbar, weil ich sie nicht ausgerüstet habe Aber wenn ich es ausrüste, wird es sich zeigen. Jetzt kannst du sehen, wie das funktioniert. Es ist viel besser als zuvor. Jetzt können wir tatsächlich sehen , was wir ausgerüstet haben. Es ist einfach ein nettes Spieldesign, also können wir tatsächlich einige visuelle Änderungen vornehmen. Okay, jetzt ist es fertig. Lass uns ein paar Soundeffekte machen. Die Soundeffekte, wenn wir die Waffe tatsächlich wechseln und sie so nachladen und wann immer wir die Waffe auf den Boden fallen lassen 129. 9.14 Hinzufügen von Equip-Sound-Effekten: Lassen Sie uns nun fortfahren und die ausgestatteten Soundeffekte hinzufügen. Lassen Sie uns zunächst die Soundeffekte importieren. Wenn wir zum Audioordner und den Soundeffekten hier gehen , habe ich Ihnen in der Kostenliste Materialien hier gegeben. Wenn Sie zu Audio gehen und hier runtergehen und dort das Nachladen des Gewehrs und den Gewehrclip, das Nachladen der Pistole und den Pistolenclip, diese fünf Soundeffekte finden des Gewehrs und den Gewehrclip, das Nachladen , diese fünf Soundeffekte klicken Sie einfach darauf und ziehen Sie sie in klicken Sie einfach darauf und ziehen Sie sie in den Inhaltsbrowser hier. Okay, wenn Sie sie hineingezogen haben, wählen wir sie alle aus, indem wir sie gedrückt halten, auf einen von ihnen klicken, die Umschalttaste gedrückt halten und auf den letzten Rechtsklick klicken, um mehrere Cues zu erstellen. Es wird all diese Sound-Cues für Sie erstellen. Jetzt möchte ich sie in das umbenennen, was wir hier zuvor gemacht haben , mit dem S, dem Präfix Lass uns weitermachen und auf den ersten klicken. Ich werde am Ende löschen. Ich werde Sound Q anstelle von Effekten hinzufügen. Ich werde das mit den anderen machen. Und ich werde einfach ein bisschen weitermachen und sie hier einfach umbenennen. Jetzt habe ich sie alle umbenannt. Bevor ich weitermache, reduziere ich einfach die Lautstärke für jeden einzelnen , weil sie sehr laut sind. Und für diesen Kurs möchte ich nicht, dass sie sehr laut sind, weil es für dich nervig sein wird. Das ist der Sound hier, und wenn ich auf den nächsten klicke, reduziere ihn vielleicht auf etwa 0,30 0,3. Übrigens, du kannst Luda-Lautstärken haben Es wird im Spiel viel besser klingen, aber ich mache das nur für meinen Kern, damit du dir diese lauten Geräusche nicht anhören musst Das sind also die Reloads und so klingt es. Okay, großartig. Lass mich es jetzt schließen und alles speichern. Gehen wir nun zu den Assets und Animationen und suchen nach diesen Animationen. Denken Sie daran, dass es hier nicht um diese alten Animationen geht, sondern um unsere eigenen Animationen. Wenn ich jetzt nach Montagen suche, können wir beide öffnen. Die Gewehr-Animationsmontage und die Pistolen-Animationsmontage, die wir die Pistolen-Animationsmontage, die wir zuvor erstellt haben. Okay, cool Innerhalb der Animationsmontage können Sie Soundeffekte hinzufügen, Soundeffekte hinzufügen sodass Sie das nicht innerhalb des Codes tun müssen. Hier im Knoten von F haben wir diesen Balken hier, diesen hier. Sie können es umbenennen , wenn Sie möchten, indem Sie darauf klicken. Klicken Sie auf der Tastatur auf zwei. Oder klicken Sie einfach darauf und nennen Sie es vielleicht Soundeffekte oder so ähnlich. eigentlich keine Rolle. Und hier klicken wir mit der rechten Maustaste und fügen eine Benachrichtigung hinzu und spielen dann Sound ab. Jetzt klicken wir darauf und wir können jetzt auswählen, welchen Sound wir abspielen möchten. Was wir für den ersten Teil spielen wollen heißt Pistolenclip Wir wollen diesen einen Pistolenclip wählen , weil Sie hier sehen können, dass wir den Sound immer dann platzieren wollen, wenn er hier nachlädt, wann immer er den Clip aus der Pistole nimmt Was ich jetzt herausgefunden habe, ist, dass es viel besser ist , den Sound hinzuzufügen, bevor er das Ding macht, weil er verzögert klingt Wenn Sie den Sound tatsächlich dort platzieren, wo er den Clip herausnimmt, und Sie versuchen können, ihn sich anzuhören, klingt das etwas verzögert. Ich würde es gerne hinzufügen, bevor er es tatsächlich tut. Vielleicht so etwas wie hier drüben. Okay. Klingt gut. Nun, der nächste ist, dass ich keine Soundeffekte für den Pistolenclip brauche, wir müssen tatsächlich den gleichen hinzufügen Du kannst hier klicken, C und dann V hier drüben kontrollieren Mal sehen, wann wir es spielen wollen. Vielleicht so etwas wie hier. Dann ist der letzte das Nachladen der Pistole. Und ich glaube, ich werde es irgendwo hier hinzufügen. Rechtsklick, Hinzufügen, Abspielen benachrichtigen. Sound Klicke darauf und finde die Pistole nachgeladen. Ich denke, wenn du so nachlädst , wirst du die finden, die ich dir gegeben habe Pistole nachladen. Übrigens können Sie hier viele Soundeffekte sehen Und das liegt daran, dass Sie bereits Soundeffekte vom Markt importiert haben. Als Sie all diese Waffen importiert haben, befinden sich in diesen Waffenordnern tatsächlich Soundeffekte . Sie können versuchen, einige davon zu verwenden, wenn Sie möchten. Du musst den, den ich dir gegeben habe, nicht benutzen. Du kannst nach Pistol Reload suchen. Den habe ich dir gegeben. Das ist der Sound. Sie können auf die Leertaste klicken, um es sich anzuhören. Okay. Um es etwas interessanter klingen zu lassen, können Sie den Clip ein- und ausschneiden hören. Oder aus- und einclipsen. Sie klingen gleich. Okay? Es ist nicht wirklich interessant. Lass uns weitermachen und es ändern und interessanter machen. Wenn Sie zu den Audio- und Soundeffekten gehen und klicken, klicken Sie darauf. Aber lass uns auf den Pistolenclip klicken und ihn duplizieren Wenn ich den Button hier finde, duplizieren Sie ihn. Nennen wir es Pistol Clip In. Benennen wir diesen in Pistol Clip Out um. Klicken wir hier auf den Pistolenclip , damit er anders klingt Ich glaube, wir haben es schon einmal im Kurs benutzt . Aber Sie können diesen sogenannten Modulator verwenden. Und mit einem Modulator können Sie die Tonhöhe ändern Und auf diese Weise können Sie es anders klingen lassen. Lass es uns hier verbinden. Lass uns sie zusammenstellen. Klicken Sie nun auf den Modulator. Ich werde diesen Wert in der Tonhöhe auf 1,3 ändern. Es wird höher klingen als das andere. Wenn du versuchst, es zu spielen , klingt es so. Wenn Sie den anderen öffnen, den Clip herausnehmen, können Sie jetzt den Unterschied hören. Okay, wir können hier auf das Leerzeichen klicken, um ihn uns anzuhören. Eigentlich denke ich, ja, wir müssen sie hier austauschen, anstatt sie auszuschneiden. Ich ändere es auf Clip-In und versuchen wir es erneut. Okay, klingt viel besser als zuvor, also lass uns weitermachen und es speichern. Und wir müssen dasselbe für den anderen tun. Wenn ich die andere Animationsmontage öffne und Sie das übrigens hier im Asset-Browser tun können , können Sie die andere Animationsmontage sehen. Mach weiter und öffne es wie zuvor. Lassen Sie uns diesen in Soundeffekte umbenennen. Klicken wir hier mit der rechten Maustaste auf eine zufällige Stelle und fügen eine Benachrichtigung hinzu. Abspielen. Sound Klicken Sie auf den Sound. Mach weiter und suche nach Rifle Lip, ich glaube, es heißt Rifle Clip Out Der erste ist wieder Clip Out. Ich werde es verspätet veröffentlichen, vielleicht stelle ich es hier hin. Dann den Clip rein, ich werde irgendwo hier etwas hinzufügen, vielleicht mit der rechten Maustaste darauf klicken und darauf klicken, wechselt beim Reload zu Gewehr, vielleicht spiele ich das Reload irgendwo hier ab Rechtsklick, Abspielen. Sound Klicke darauf und suche nach Rifle Reload. Wählen Sie es aus und versuchen wir zu sehen, wie es sich anhört . Klicke hier. Vielleicht sollte dieser früher kommen, weil er sich verspätet anhört . Es klingt gut. Ich mag es jetzt. Und lass uns alles speichern. Und das war's für diesen. Also sollte es schon funktionieren. Weil diese jetzt auf die Animationen angewendet werden, müssen wir dem Code nichts hinzufügen. Also wenn wir hierher gehen und Terroristen auswählen. Und wenn ich vorerst nur eine Pistole in die Hand nehme. Klingt nett Wenn ich das Formular abhole und auswähle, klingt das nett. Okay. Fantastisch. Jetzt klingen sie gut. Natürlich werden wir es mit dem Nachladen und mit dem Clip und so weiter viel besser aussehen lassen , aber im Moment waren es nur die Soundeffekte und alles klingt übrigens großartig Auch hier können Sie andere Soundeffekte verwenden, die mit den anderen Waffen geliefert werden, die Sie vom Marktplatz heruntergeladen haben Und das war es vorerst. Speichern wir also alles und fahren wir mit dem nächsten fort. 130. 10.01 Erstellen der Crosshair-Benutzeroberfläche: Okay, lassen Sie uns weitermachen und das Kreuz hinzufügen. Gehen wir zum UI-Ordner. Und lassen Sie uns den Ordner mit den Symbolen öffnen , statt hier, genau wie zuvor, gehen wir zu Ihren Kostenmaterialien und ich habe für Sie anstelle von Symbolen dieses Kreuz für Sie hinzugefügt. Klicken Sie darauf und ziehen Sie es in den Inhaltsbrowser. Bevor wir es vergessen, öffnen wir es und gehen wir hier in die Texturgruppe. Ändern wir es auf UI, genau wie zuvor für die Komprimierungseinstellungen, ändern wir es auf eine Benutzeroberfläche zwei D, speichern wir es, schließen wir es. Was wir nun tun wollen, lass uns zur Benutzeroberfläche gehen. Klicken wir mit der rechten Maustaste hier und gehen wir zur Benutzeroberfläche, wählen Sie Wigid, Blueprint aus. Und wähle den Benutzer aus Widgid. All das haben wir schon einmal gemacht Nennen wir es WB. Rosa. Öffnen wir es statt hier. Was müssen wir als Erstes hinzufügen? Denken Sie daran, dass es die Leinwand ist. Lass uns nach Leinwand suchen. Lass es uns hinzufügen. Und hier drinnen, sehr einfach. Für die Crossa brauchen wir nur ein Bild. Wir brauchen nur die Crossa. Lassen Sie uns weitermachen und das Bild in das Kreuz ändern. Wählen Sie die Crossa aus, wir möchten, dass sie sich in der Mitte befindet. Versuche das selbst zu tun. Wir haben das schon einmal gemacht. Versuche, diese Crossia in der Mitte an Position 00 zu machen. Versuche das zu tun. Lassen Sie uns gemeinsam weitermachen, was Sie hier tun möchten. Zunächst möchten Sie den Ankerpunkt in die Mitte ändern . Wenn Sie dann 00 für die Position schreiben, können Sie sehen, dass sie hier verankert ist Das liegt daran, dass Sie sie für die Ausrichtung auch für das Y auf 0,5 setzen müssen 0,5 einfach so , damit es die richtige Größe hat. Anstatt die Größe hier oder die Größe hier zu ändern , ich meine, du kannst diese Größe an den Inhalt anpassen, sie wird an jede Bildgröße angepasst, die du hast, anstatt sie hier oben zu ändern. Lass uns jetzt kompilieren. Nun, so sieht es aus. Denken Sie daran, dass Sie auch hier und bei den Laptops auf den Bildschirm klicken und es auf generisch ändern möchten, dieses Notizbuch hier. Da das nur ein Crosser ist, brauchen wir hier nicht wirklich die ganze Leinwand. Das ist nur etwas, das sich in der Mitte des Bildschirms Aus diesem Grund können wir tatsächlich auf Vollbild klicken und Gewünscht auswählen. Das wird es einfach zu diesem kleinen Ding hier schaffen , weil wir es einfach auf dem Bildschirm platzieren wollen. Wir wollen nicht den ganzen Raum um ihn herum haben. Es wäre richtig, hier „Gewünschtes“ auszuwählen. Wenn Sie nun eins nach dem anderen zoomen, können Sie sehen, wie klein das ist. Wir müssen das Bild vergrößern und vielleicht etwa 80 mal 80, nur viel größer. Wir können es später im Spiel testen, um zu sehen, ob das groß oder klein ist. Jetzt können wir also alles für dieses Spiel speichern. Ich werde noch einmal darauf klicken. Gehen Sie zu Sichtbarkeit und ändern Sie es so, dass es nicht testbar ist. Und das liegt daran, dass wir nicht möchten, dass die Maus damit interagiert Das war es für alles. Lass uns das speichern. Schließen wir es und fahren wir mit dem nächsten fort. 131. 10.02 Darstellung des Fadenkreuzes: Fügen wir nun das Kreuz zum Bildschirm hinzu. Und du kannst auch versuchen , das selbst zu tun. Wir haben das schon einmal gemacht. Wenn du dich nicht erinnern kannst, lass uns das nochmal zusammen machen. Gehen wir zu den Bauplänen. Gehen wir jetzt zum Player-Controller. Hier haben wir unsere gesamte Benutzeroberfläche im Event-Graph. Sie können hier zu Ihren Widgets gehen. Sie müssen den Aufzählungswert dafür erstellen. Wenn du einfach den Blueprints-Ordner, den Ordner en und die Spiel-Widgets hier öffnest Ordner en und die Spiel-Widgets , genau wie zuvor Lass uns einen neuen Enumerator hinzufügen. Nennen wir das Kreuz. Mach weiter und speichere. Gehen wir hier zurück zum Play-Controller. Klicken wir hier mit der rechten Maustaste auf „Widgets erstellen “, wählen Sie „Widgets erstellen“ und dann „Cross“. Klicken Sie mit der rechten Maustaste darauf, stufen Sie es zu einer Variablen herauf und nennen Sie es B-Cross. Fahren Sie fort und fügen Sie es dem Viewport hinzu. Fügen Sie einfach so zwei Viewports hinzu. Okay, lassen Sie uns wie zuvor diese B-Kreuzvariable herausnehmen Klicken wir mit der rechten Maustaste und konvertieren wir es in ein validiertes GET. Lass es uns hier verbinden. Wenn es gültig ist, können wir es einfach direkt zum Viewport hinzufügen . Wenn es nicht gültig ist Lassen Sie uns fortfahren und es zuerst erstellen bevor wir es dem Viewport hinzufügen Denken Sie auch daran, es dem Hyde-Widget hinzuzufügen , sehen wir uns hier an Wenn Sie auf Hyde Widgets klicken und es auch hier finden Wenn du es nicht geöffnet hast, kannst du dieses Kreuz nehmen und es zu Recht in ein validiertes Get umwandeln Wenn es auf dem Bildschirm angezeigt wird und wir es entfernen möchten, können wir es mit der Maus ziehen und „Aus den Eltern entfernen“ sagen. Mach weiter und organisiere es einfach ein bisschen mehr einfach so. Okay, speichern wir alles und fügen es jetzt dem Bildschirm hinzu. Gehen wir zum Van-Diagramm. Und ich denke, der beste Ort, um das hinzuzufügen , ist vielleicht, nachdem du den Spieler spawnst, du versteckst die Teamauswahl und du zeigst auch das Haupt-Widget Lass uns weitermachen und auch das Kreuz zeigen. Lassen Sie uns von hier aus zuschlagen und sagen „Widget einblenden “ und das Event nennen, das wir gemacht haben. Fahren Sie fort und wählen Sie das Kreuz aus und wählen Sie Anzeigen. Das sollte jetzt funktionieren kompilieren, lass uns spielen. Spielen wir jetzt zum Beispiel als Client und wählen Sie Terrorist aus. Sie können jetzt sehen, dass ich die Crossa jetzt in der Mitte meines Bildschirms habe Sie können die Größe anpassen, wenn Sie möchten. Wenn du einfach zur Benutzeroberfläche gehst und zum Crosier gehst , kannst du darauf klicken und vielleicht die Größe auf etwa 60, 60 ändern, wenn du denkst, dass das zu groß ist Und du kannst versuchen, es erneut abzuspielen und zu sehen, wie es aussieht Vielleicht ist so etwas viel besser als zuvor. Okay, so fügst du dem Bildschirm einen Crosier hinzu und lass uns mit dem nächsten fortfahren 132. 10.03 Hinzufügen von Waffeneigenschaften zur Struktur: Bevor wir fortfahren, müssen wir der Struktur einige Eigenschaften hinzufügen der Struktur einige Eigenschaften hinzufügen Gehen wir jetzt zur Struktur hier und öffnen wir sie. Das erste, was wir zu den Waffeninformationen hinzufügen möchten , ist die Schussgeschwindigkeit. Das brauchen wir. Das nächste, was wir hinzufügen müssen, ist der Mündungsblitz Das ist der visuelle Effekt, den wir immer dann spielen wollen, wenn wir mit der Waffe schießen Der letzte ist der Soundeffekt, okay für die Schussgeschwindigkeit. Lass es uns in einen Float umwandeln. Das ist nur ein numerischer Wert für den Mündungsblitz. Das ist ein Partikelsystem. Partikelsystem, Der visuelle Effekt. Und fahren Sie fort und wählen Sie die Objektreferenz für den Aufnahmeeffekt. Lassen Sie uns einfach den Sound-Cue verwenden. Wir verwenden hier akustische Hinweise für die Schussgeschwindigkeit, die Schnauze und den Soundeffekt Alles sieht gut aus. Lass uns weitermachen und es speichern. Diese Variablen, die wir hier erstellt haben, werden wir später zur Datentabelle hinzufügen, aber im Moment sind wir fertig. Wir haben diese hinzugefügt. Schließen wir es jetzt, speichern wir alles und fahren wir mit dem nächsten fort. 133. 10.04 Input-Action und Struktur für Schusswaffen: Lassen Sie uns nun weitermachen und eine Eingabeaktion namens Waffe schießen erstellen eine Eingabeaktion namens Waffe schießen Und das kannst du wieder selbst machen. Versuche das als Übung zu machen. Gehen wir zum Player und öffnen den Eingabeordner. Klicken wir mit der rechten Maustaste, gehen wir zu Eingaben und fügen eine Eingabeaktion hinzu. Nennen wir es eine Schusswaffe. Wir müssen hier drinnen wirklich nichts tun. Lassen Sie uns den Eingabe-Mapping-Kontext öffnen. Lassen Sie uns eine weitere Zuordnung hinzufügen. Es sollte hier unten sein. Und lass uns es auswählen und nach einer Schusswaffe suchen. Mach weiter und wähle es aus. Und für den Schlüssel benutzen wir einfach die linke Maustaste. Wir brauchen hier unten wirklich nichts. Lass es uns jetzt schließen. Lasst uns die Spielerbasis öffnen und hier drinnen. Also hier kann ich jetzt gleich nach einer Schusswaffe suchen . Und mach weiter und wähle es aus. Und bevor ich fertig bin, suche ich hier nach der Ausrüstungswaffe. Lass uns das tatsächlich reparieren. Jetzt, wo ich weiß, dass wir hier für die Ausrüstungswaffe diese Nachladeanimation haben Lassen Sie uns das eigentlich einfach innerhalb unserer Struktur hinzufügen. Wenn du einfach zur Struktur gehst und sie öffnest und suchst oder einfach eine neue Variable erstellst und du nennst sie equip, so ähnlich oder equip-Animation. Du kannst das Ganze auch schreiben, etwa so. Animation ausrüsten Für dieses Beispiel öffnen wir es und lassen uns nach einer beliebigen Montage suchen. Wir werden eine Objektreferenz für die Animationsmontage für die Ausrüstungsanimation verwenden . Ich werde es einfach hier unten sein lassen . Lass uns alles speichern. Lass uns jetzt hier drüben in den Code reingehen. Anstatt es so zu machen, können wir das jetzt entfernen, wir können es tatsächlich löschen. Und wir können diese Montage nehmen , um sie hier direkt abzuspielen. Und wir können diesen auch entfernen. Diesen können wir ändern, um so etwas oder eine Animation auszustatten. Und ziehen wir es einfach näher heran. Nun, was wir tun können, ist hier drüben, wo auch immer wir es verwendet haben, falls Sie nicht wissen, wo Sie es benutzt haben, übrigens, wir haben es hier verwendet, aber wenn Sie alle Referenzen haben wollen, können Sie hier klicken und Sie können nach Referenzen suchen und Sie können tatsächlich sehen, wo wir es verwendet haben. Lass uns auf den ersten klicken. Es ist nur dieser. Lass uns auf den nächsten klicken. Es ist hier drüben. Wir können weitermachen und auf Alt klicken und hier klicken, um die Verbindung zu trennen. Ich werde diesen Straßenknoten auch löschen. Anstatt den Waffentyp zu verwenden, ist es dieser, die Ausrüstungswaffe. Und wir haben die Struktur bereits aufgeschlüsselt, sodass wir sie einfach anklicken können. Verstecke hier alles. Verstecken Sie nicht verbundene Pins Und ich kann einfach auf diese Ausrüstungsanimation klicken. Und ich kann das nehmen und hierher ziehen. Jetzt können Sie sehen, dass wir eine benutzerdefinierte Animation für alle Waffen haben. Je nachdem, was wir für jede Waffe eingesteckt haben, wird es diese Animation nehmen und abspielen Also lasst uns alles kompilieren und speichern. Wir müssen es auch hier ändern. Wenn ich das also einfach unterbreche, lösche ich diesen Straßenknoten. Und mit dieser Struktur auch hier nicht verbundene Pins verstecken Ich werde die Ausrüstungsanimation zeigen. Und ich werde es auch hier hinzufügen. Ordnung, jetzt haben wir das behoben und für die Ausrüstungsanimation neu organisiert Was wir tun können, wir können diese Informationen einfach in unsere Datentabelle einfügen diese Informationen einfach in unsere Datentabelle Lassen Sie uns weitermachen und die Datentabelle hier öffnen . Ich werde die Datentabelle öffnen. Ich werde auch die Struktur öffnen, damit ich sehen kann, welche Variablen ich hier hinzugefügt habe. Lassen Sie mich die Variablen einfach etwas vergrößern und nach dem Unterricht an diesen Ort gehen. Hier haben wir die Aufnahmegeschwindigkeit hinzugefügt, wir haben auch den Mündungsblitz hinzugefügt und wir haben auch einen Schuss-Soundeffekt hinzugefügt Und wir haben die Ausrüstungsanimation hinzugefügt. Denken Sie auch hier daran, sie genau so zu schreiben , wie Sie sie hier geschrieben haben. Lassen Sie uns nun zur Quip-Animation alles speichern. Gehen wir hier zum Browser und öffnen die Assets. Animation. Suchen Sie hier nach einer Animationsmontage für die Pistole. Klicken wir mit der rechten Maustaste und kopieren Sie Ihre Referenz. Gehen Sie weiter in die Datentabelle für die Pistole, die hier die letzte ist Gehen wir zur Seite für die Quip-Animation. Ich werde diese Referenz einfach einfügen. Ich klicke mit der rechten Maustaste für die Gewehrreferenz. Ich werde es sowohl für die AK als auch für die Vier einfügen. Übrigens können Sie hier dasselbe tun. Und lassen Sie uns das einfach für die AK machen, wegen der Schussgeschwindigkeit. Jetzt müssen wir das im Spiel testen, ich habe keine Ahnung. Schreiben wir einfach 0.1 für das nächste 10.1, für das dritte 10.1, ich weiß nicht, wir müssen das im Spiel versuchen. Wir haben momentan keine Ahnung. Was den Mündungsblitz angeht, was du tun kannst. Ich glaube, wir haben ein paar Muzzle Flashes in diesem Ordner, in den wir alle Waffen vom Markt importieren Wenn du nur nach einem Maulkorb suchst, kannst du diese Schnauzenblitze sehen Ich werde zum Beispiel einen von ihnen benutzen . Du kannst die benutzen. Sturmgewehr Mündungsblitz. Ich klicke es mit der rechten Maustaste an. Ihre Referenz für das Gewehr für die AK. Ich kann eins für die M Four einfügen. Ich kann dasselbe einfügen. Jetzt kannst du für jede einzelne Waffe sehen, du kannst sogar für jede Waffe einen Mündungsblitz haben. Sie können tatsächlich einzigartig sein. Sie können alle einzigartige Soundeffekte haben, sie können alle einzigartige Animationen, einzigartige Aufnahmegeschwindigkeiten usw. haben. Sie können also sehen, wie schön diese Methode ist. Es ist wirklich dynamisch und sehr einfach zu ändern. Wenn Sie eines Tages einen anderen Soundeffekt haben möchten, können Sie einfach hier reinkommen und eine weitere Referenz hinzufügen. Okay, für die Pistole haben wir hier den Mündungsblitz für die Pistole und wir können mit der rechten Maustaste darauf klicken Wir können die Referenz erneut kopieren. Und wir können es hier einfügen. Nun zu den Soundeffekten für die Aufnahme, wir haben sie noch nicht importiert Lassen Sie uns das also tun, während wir es hier machen. Lassen Sie uns den Ordner mit den Kostenmaterialien öffnen. Gehen wir hier zurück zum Kostenmaterial. Ich möchte, dass du den AK-47-Schuss importierst. Ich möchte auch, dass du die 41 Schüsse und auch den Pistolenschuss importierst und auch den Pistolenschuss importierst Dieser eine Pistolenschuss. Gehen wir als Effekte zum Audio-Ordner. Lassen Sie mich das Suchwort entfernen und Sie können es anklicken und hierher ziehen. Und genau wie zuvor können Sie auf alle klicken. Klicken Sie mit der rechten Maustaste und erstellen Sie mehrere Cues. Ich werde sie alle hier öffnen. Reduziere den Ton hier auf 0,3. Ich glaube, ich möchte sie noch weiter reduzieren, weil sie sehr laut sind und ich nicht möchte , dass sie in diesen Kurs aufgenommen werden. 0.1 für alle. Und lass uns einfach versuchen, es zu spielen. Okay. Fantastisch. Alles klingt gut. Schließen wir sie alle. Bevor wir die Referenzen kopieren, wollen wir sie nun umbenennen. Ich werde diesen in SC umbenennen und das Q hier am Ende entfernen. Ich werde das auch für die Pistole ändern. Lassen Sie uns das Q entfernen und C am Anfang schreiben. Der letzte für die AK. Nochmals, entfernen Sie Q und A. C. bis zum Anfang. Nun zu den Referenzen Lassen Sie uns zuerst die AK 47 kopieren. Ich werde die Referenz kopieren. Und dann hier in der Datentabelle für die AK 47, die die erste ist, kann ich sie hier für die M Four einfügen. Wenn wir es hier finden können. Das sind die vier hier. Klicken wir mit der rechten Maustaste auf Kopieren, Referenzieren und Einfügen. Und der letzte ist der Pistolenschuss. Kopieren Sie die Referenz und fügen Sie sie auch hier ein. Lass uns weitermachen und es wird tatsächlich automatisch gespeichert, also lass uns weitermachen und es hier und die CSV-Datei herunterladen. Jetzt werde ich es hier umbenennen. Ich kopiere den gleichen Namen hier für die Waffeninformationen, lösche den alten. Ich benenne die neue um und gehe dann zurück zu meinen Blueprint-Datentabellen und nehme jetzt einfach diese neue Datentabelle und füge sie hier Okay? Jetzt sind all diese Informationen hier drin. Sie können weitermachen und überprüfen, ob alles korrekt aussieht und alles gut ist. Wir können weitermachen und alles speichern. Jetzt sollte es automatisch abgespielt werden, denn hier in der Spielerbasis. Hier in der Spielerbasis für die Ausrüstungswaffe haben wir jetzt diese Ausrüstungsanimation. Und sie spielt sie jetzt automatisch ab. Weil wir es in der Struktur definiert haben , was es ist, wenn wir es einfach jetzt spielen und sehen, was passiert, wenn wir Terrorist auswählen und ich rausgehe und es abhole. Sie sollten sehen, dass es es tatsächlich abspielt. Und für die Pistole auch. Anstatt es vom Waffentyp zu übernehmen, all die Informationen , die wir einzigartig machen können, zu dieser Waffenstruktur hinzufügen 134. 10.05 Erstellen des Waffenschuss-Timers: Okay, lass uns jetzt weitermachen und die Spielerbasis öffnen. Und hier drinnen gehen wir zu dem Ereignis, dass wir die Rutschenwaffe hergestellt haben Lassen Sie uns zunächst den Server mit einem Rechtsklick erstellen und ein benutzerdefiniertes Ereignis ausführen Und lassen Sie uns die Server-Schusswaffe hier drinnen erstellen. Wir werden zuerst einen Timer erstellen, ihn auf Replikate auf dem Server platzieren und ihn zuverlässig zum Schießen verwenden Wir werden einen Timer erstellen, genau wie den anderen Timer , den wir hier für die Schritte erstellt haben , wo wir Timer für jedes Ereignis festgelegt Es ist dieselbe Methode, die wir für das Schießen verwenden werden. Wenn wir hier runtergehen und von hier aus ziehen und Timer für Ereignis sagen und dann weitermachen und es auswählen. Dann können wir von hier aus ein neues benutzerdefiniertes Ereignis ziehen und erstellen. Wir können es Shot Weapon Loop nennen. Okay, die Logik der Schießwaffen wird hier unten stehen. Denken Sie daran, den Timer so einzustellen , dass er wiederholt wird und dann müssen wir eine Zeit einstellen Die Zeit, die Sie hier einstellen hängt davon ab, wie schnell Ihre Waffe schießt zum Beispiel für AK 47 an, Nehmen wir zum Beispiel für AK 47 an, es ist 0,1 für eine Pistole Es wird vielleicht für Pistolen sein, wenn Sie nicht wollen, dass sie automatisch schießen, brauchen wir diesen Timer nicht wirklich Aber für automatische Waffen, AK 47 und die Informationen, die sie benötigen, müssen sie über einen Timer abfeuern Weil es den Code mit dieser Geschwindigkeit wiederholt , da diese Geschwindigkeit die Geschwindigkeit der Waffe ist. Denken Sie bei der Struktur daran, dass wir, wenn ich zurückgehe und die Struktur öffne, wenn ich zurückgehe und die Struktur öffne, diese Variable für die Schussgeschwindigkeit hinzugefügt haben. Wir können das tatsächlich verwenden , um uns hier einzuklinken. Je nachdem, wie schnell deine Waffe schießt, ändert dieser Timer die Zeit. Je nachdem brauchen wir einen Hinweis auf die Waffe, also machen wir das. Lass uns hier klicken und eine neue Variable erstellen. Und wähle hier die Waffenbasis aus den Variablentypen. Mach weiter und wähle das aus. Nennen wir das eine Waffe. Wir müssen das hier oben anrufen. Nennen wir es Server Shoot Weapon. Ich kann das so buchstabieren. Der Server hat die Waffe gewählt. Jetzt müssen wir die Waffe definieren. Jetzt, wenn du kompilierst, kannst du sehen, dass du eine Ära bekommst. Und es heißt neuer Parameter. Auch wenn hier oben Waffe steht, passiert das manchmal und du musst es einfach löschen und neu erstellen. Oder du kannst auf Datei klicken und alle Notizen aktualisieren. Und das wird das auch tatsächlich beheben. Okay, wir brauchen sofort eine Definition der Waffe. Wir haben eigentlich weder eine Variable noch die Waffe, weil wir nur die ausgerüstete Waffe haben, aber wir löschen später auch, dass wir die Waffe nicht ausgerüstet haben und wir auch jede Waffe verloren haben Hier oben haben wir die geplünderte Waffe. Allerdings führen wir hier auch diese geplünderte Waffenvariable an. Wir haben wirklich keine Variable für die Waffe, die konsistent bleibt Lassen Sie uns tatsächlich einfach eine erstellen. Gehen wir hier zu der ausgerüsteten Waffe. Wenn wir diese Waffe ausrüsten, klicke ich einfach mit der rechten Maustaste auf dieselbe Variable und mache daraus eine Variable. Nennen wir das eine ausgerüstete Waffe. Diese ist eine ausgerüstete Waffe. Wir rüsten die Waffe aus. Und das ist die ausgerüstete Waffe. Und wir können diese Variable verwenden. Wir löschen das nicht. Dies wird sich jedes Mal ändern, wenn dies festgelegt wird. Denken Sie daran, auf diese Variable zu klicken und sie auf repliziert zu setzen Wir müssen eigentlich nichts melden, was repliziert wird. Es bedeutet nur, dass wir diese Informationen nur an den Kunden senden diese Informationen nur an den Kunden Der Kunde weiß auch, was diese Variable ist. Ich wähle hier einfach alles aus und verschiebe es weg. Und diese Variable hierher verschieben. Jetzt haben wir diese Variable, mit der wir arbeiten können. Okay, wir können jetzt hier runter gehen. Und wir können diese ausgerüstete Waffe nehmen und sie hier einstecken. Jetzt haben wir das. Lassen Sie uns jetzt aus diesem kompilieren. Wir können ziehen und sagen, wir können die Namensvariable abrufen und dann können wir Waffeninformationen abrufen, hier. Und dann lass uns das wegziehen und brechen. Und jetzt können wir die Aufnahmegeschwindigkeit von hier aus nutzen und sie hier einstecken. Okay? Also klicken Sie darauf und verstecken Sie alle nicht verbundenen Pins Okay, also wann immer wir mit der Maus eine Taste drücken , wird sie schießen und diesen Timer Jetzt müssen wir auch diesen Timer irgendwann stoppen . Klicken wir also mit der rechten Maustaste auf diesen Griff, der zu einer Variablen heraufgestuft wurde, und nennen wir ihn Schusswaffen-Handle. Und wir können diesen Griff verwenden, um den Timer zu stoppen, sodass wir wissen müssen , wann wir schießen und wann nicht. Wenn wir die Maustaste eine Taste loslassen, wird dieser komplette Auslöser abgespielt und wir schießen nicht mehr mit der Waffe. Lassen Sie uns hier tatsächlich eine Kugel hinzufügen. Fügen wir eins hinzu. Und nennen wir es Schusswaffe. Und ich füge einfach ein B davor hinzu, um konsistent zu bleiben, da es sich um ein Edelmetall Und verwandle es in ein Edelmetall wie dieses. Okay. Jetzt kannst du von hier wegziehen und Zweig sagen und es verbinden, wenn es wahr ist Wenn Shot Weapon wahr ist, wollen wir weitermachen und die Waffe abschießen. Wenn wir die Waffe jedoch nicht mehr abfeuern wollen, nehmen wir diesen Griff und sagen, dass sie gültig ist. Wenn dieses Handle gültig ist, stellen Sie nur sicher, dass wir keine Kiste bekommen , stellen Sie sicher, dass es gültig ist. Und lass uns noch einen Zweig machen. Wenn es gültig ist, nehmen Sie diesen Timer und sagen Sie Timer nach Handle löschen und ungültig machen Wir werden diesen Timer hier in diesem Code beenden. Wir können das jetzt kopieren und einfügen. Und im Endeffekt, wenn wir die Maustaste loslassen, wird die Waffe schießen auf Falsch gesetzt. Wenn wir mit der Waffe schießen, muss sie wahr sein, wenn sie falsch ist Wenn wir aufhören zu schießen, wird sie fragen, ob dieser Timer gültig ist Wenn ja, fahren Sie fort und beenden Sie den Timer. Ich werde die Dinge hier nur ein bisschen neu organisieren. Im Moment haben wir das erledigt, lassen Sie uns weitermachen und es testen und sehen, ob alles funktioniert Und lassen Sie uns weitermachen und hier für den Client auf Play klicken . Ich werde zum Beispiel Terroristen auswählen. Lass uns weitermachen und etwas abholen. Lassen Sie uns die Informationen sofort abholen. Lass uns versuchen zu schießen. Ich versuche gerade mit meiner Maus zu schießen und es passiert nichts. Hier oben wird nichts auf den Bildschirm gedruckt. Lass es mich hier einfach absagen, wir haben eine Ära. Diese Ära bedeutet Zugriff. Kein Zugriff bedeutet nur, dass versucht wird, etwas aus dieser Waffenvariablen zu lesen, dieser Waffenvariablen hier. Access non bedeutet jedoch, dass diese Variable leer ist, es gibt also nichts, woraus sie lesen könnte. Das ist tatsächlich wahr , weil wir die ausgerüstete Waffe nur innerhalb des Events „Waffe ausrüsten“ gesetzt haben. Und dieser wird nur gesetzt, wenn wir die Waffe wechseln. Wenn ich zu Terroristen gehe und etwas in die Hand nehme, muss ich zu einer anderen Waffe wechseln und dann zurückschalten, bevor diese Variable jetzt gesetzt ist Lass mich einfach jetzt schießen und schauen, was passiert und nichts passiert. Das liegt eigentlich daran, dass wir das mehrmals ausführen. Wenn ich die Verbindung unterbreche, kannst du hier sehen, ob ich den Timer nicht stoppe. Du kannst es klarer sehen, Du kannst es klarer sehen wenn ich einfach wieder etwas anderes annehme. Wenn ich jetzt mit der Waffe schieße, schieße ich jetzt. Und wenn ich meine Maus loslasse, jedes Mal, wenn ich meine Maus loslasse, druckt es tatsächlich. wollen wir. Wir wollen, dass es immer dann gedruckt wird, wenn wir die Maus drücken, und nicht, wenn wir es loslassen. Das liegt daran, dass der Timer hier im Code sehr schnell läuft. Immer wenn ich mit der Maus eine Taste gedrückt halte und es nie die Gelegenheit hat, diesen Code tatsächlich abzuspielen. Diesen Teil müssen wir eigentlich nur einmal machen. Lassen Sie mich das hier einfach mit dem Wahren verbinden. Ich werde einen One Node machen. Immer wenn ich meine Maustaste eine Taste gedrückt halte, wird dieser Code einmal ausgeführt und dann können wir diesen Code zurücksetzen, wann immer wir wollen. Ich werde das alles einfach wegziehen. Und dieses Mal werde ich ein neues individuelles Event machen. Und lass uns diesen anrufen und nochmal schießen. Wann können wir wieder schießen? Wir können wieder schießen. Wann immer wir hier oben aufhören zu schießen, nenne ich das, können wir wieder schießen. Und einfach so, das ist das Einzige, was wir tun mussten. Versuchen wir es jetzt noch einmal. Lassen Sie uns kompilieren und testen wir es. Lassen Sie mich Terroristen auswählen. Lassen Sie mich einfach die Waffen aufheben. Jetzt werden wir dieses Problem beheben. Das ist wieder ein Problem mit den geplünderten Waffen hier oben. Also werde ich in Kürze tatsächlich einen Hardfix machen. Ich möchte nur sehen, ob das hier unten funktioniert und wir das beheben können . Wenn ich also die Waffe in die Hand nehme und die Maustaste eine Taste gedrückt halte, können Sie jetzt sehen, dass sie korrekt auf dem Bildschirm angezeigt wird. Und wenn ich die erste Maustaste loslasse, stoppt sie den Druckvorgang. Und lassen Sie uns das auch mit dem Gewehr machen. Also, wenn ich einfach wie Terroristen das Gewehr in die Hand nehme, die Pistole in die Hand nehme und wenn ich hin und her wechsle, um die Variable einzustellen, kann ich jetzt die Maus eine Taste gedrückt halten und es schießt, und wenn ich loslasse, schießt es nicht mehr Okay, also dieser Code hier unten funktioniert tatsächlich voll und ganz. Jetzt sind wir mit diesem fertig und ich werde auch diese Druckzeichenfolge löschen. Lass uns hierher gehen und das reparieren. Bevor wir fertig sind, lass mich es einfach von hier entfernen. Wir werden einfach eine sehr nette Lösung für dieses Problem finden. Hier unten in den Überlappungswaffen wird nie wieder geboxt, das ist es, was du erreichen willst. Nehmen wir einfach das und sagen, ist das gleich der Variablen der geplünderten Waffe? Wir versuchen zu überprüfen, ob die, die wir gerade plündern, auf dieselbe Variable gesetzt ist wie die, die wir zuvor angegeben haben. Wenn es wahr ist, wollen wir die alte Variable löschen Lass mich das einfach hierher verschieben. Wir wollen die alte geplünderte Variable löschen. Danach wollen wir die neue Variable ausführen. Da das geklärt ist, überprüfen wir im Grunde nur, ob das, was wir gerade plündern, dasselbe ist, was wir zuvor gesagt haben Wenn ja, werden wir diese Variable löschen , bevor wir die neue setzen Stellen Sie also sicher, dass wir dieselbe nicht zweimal setzen. Wenn es nicht dasselbe ist, wenn es nicht derselbe Gegenstand ist, plündern wir Fahren Sie einfach fort und führen Sie den Code aus, ohne ihn zu löschen. Okay, ich werde das später organisieren, aber mal sehen, ob es funktioniert. Bevor ich es ausprobiere, lassen Sie uns das noch einmal verbinden. Hier sind wir. Den Artikel aus dem Inventar entfernen. Ich klicke es einfach an und ziehe es zurück hierher. Fahren Sie fort und kompilieren Sie jetzt. Versuchen wir, auf Play zu klicken und Terrorist auszuwählen und zu sehen, ob es funktioniert. Wenn ich hier reingehe, kannst du sehen, dass es tatsächlich funktioniert. Okay, so denke ich, ist das eigentlich eine bessere Methode, es zu tun. Wie Sie sehen, hört es nicht mehr auf. Als Nächstes fällt mir tatsächlich auf, dass die Symbole falsch sind Lass uns das einfach debuggen. Gehen wir zurück zum Haupt-Widget, öffnen wir es und gehen wir zum Diagramm Ich sehe nur, was hier oben ist, warum es das macht. Für das Gewehr haben wir das Imagegewehr, Imagegewehr. Das ist hier richtig. Für die ausgerüstete Waffe. Für die Pistole zeigen wir die Pistole und verstecken das Und was das Gewehr angeht, zeigen wir Gewehr und wir verstecken die Pistole, die Das scheint richtig zu sein. Bei der Einstellung des ausgerüsteten Waffentyps stimmt etwas nicht . Gehen wir zurück zum Spieler. muss etwas Mit der ausgerüsteten Waffe muss etwas schief gehen. Für die ausgerüstete Waffe. Mal sehen, das ist die Benutzeroberfläche für das Update-Inventar. Wir stellen den Waffentyp auf den Waffentyp ein, um den Waffentyp auszurüsten. Wir haben es hier definiert, als wir auf den Knopf drücken. Wenn wir auf Primary drücken, stellen wir Gewehr ein, was richtig ist. Das ist unser Sekundärgewehr, wir stellen es auf Das ist auch richtig. Hier ist eigentlich nichts falsch. Dann muss etwas falsch sein , wenn wir auf die Waffe hinweisen, wenn wir hier drüben auf die Waffe hinweisen, Waffe plündern, wir stellen das auch ein, wir legen auch den Waffentyp fest Auf den, den wir gerade angespielt haben, was auch richtig ist . Eigentlich gibt es hier nirgends einen Fehler. Ich vermute, dass es vielleicht einen Fehler in der Datentabelle gibt. Wenn Sie die Datentabelle öffnen, schauen wir uns den Datentabellentyp hier an. Also müssen wir nach der Art der Waffen suchen. Wenn wir etwas falsch geschrieben haben, Gewehr, Gewehr und Sie sind eigentlich alle richtig. Sie sind auf das Richtige eingestellt. Okay. Eigentlich ist nichts falsch. Ich kann keinen Fehler erkennen. Vielleicht liegt das Problem gerade darin, dass wir den ausgerüsteten Waffentyp richtig einstellen. Wir führen diesen Code jedoch auch aus. Und dieser Teil des Codes erkennt noch nicht, erkennt noch nicht dass er auf diesen Wert gesetzt wurde. Wenn wir einfach eine Verzögerung machen und ihm die Möglichkeit geben, dies einzustellen, schauen wir einfach mal, ob das funktioniert, denn ich möchte hier nicht wirklich eine Verzögerung haben. Aber schauen wir uns einfach an, ob das Problem dadurch tatsächlich behoben wird. Wenn ich die Waffen plündere, klicke ich auf eine. Wenn ich auf zwei klicke, funktioniert das jetzt auch. Sie können also sehen, dass es tatsächlich funktioniert. Wenn ich jetzt auf 1.2 klicke, funktionieren die Icons. Das Problem hier ist , dass der Waffentyp richtig eingestellt ist. Sie führen diesen Code jedoch auch sehr schnell aus. Sie führen diesen Code also aus, bevor er sich tatsächlich ändern konnte. Okay, um dieses Problem zu beheben, können wir versuchen, eine Verzögerung hinzuzufügen. das in diesem Code jedoch Lassen Sie uns das in diesem Code jedoch tatsächlich innerhalb unseres WB-Hauptservers tun Innerhalb der Funktion hier , die wir zuvor erstellt haben. Hier stellen wir die Opazität für das Gewehr ein. Bevor wir die Deckkraft einstellen, können Sie versuchen, eine Verzögerung und die Verzögerung hinzuzufügen . Bitte machen Sie sie zunächst sehr klein, 0,01, und kompilieren Sie sie . Und lass uns auf Play klicken Und wenn das funktioniert, dann ist es wirklich gut. Jetzt kann ich alles aufheben und sehen, dass die Pistole jetzt abgeholt ist Und ich werde einfach meinen Standpunkt maximieren. Die Pistole ist jetzt abgeholt. Ich kann auf 14 klicken. Klicken Sie auf zwei für die Pistole, sehen Sie, manchmal bekommen wir einen Dollar. Ich wechsle zu meinem Gewehr und setzen es auf 0,03 . Kompiliere Klicke auf Abspielen. Lass es uns noch einmal versuchen. Lass uns alles abholen. Klicke auf Gewehr, Pistole Gewehr, Pistole. Jetzt scheint auch alles zu funktionieren. Okay, das funktioniert also. Also 0.03 behebt das Problem wie gewohnt. Und das wäre eine wirklich, wirklich nette, einfache Lösung Okay, ich weiß, dass es hier wirklich verwirrend war, aber wir mussten das wirklich tun aber wir mussten das wirklich tun , weil es die ganze Zeit kaputt ging Also, wenn die ausgerüstete Waffe hier unten mal kaputt geht, dann ist sie momentan nicht wirklich kaputt Also werde ich es einfach sein lassen. Also, falls es mal kaputt geht, wie hier oben, kannst du die gleiche Methode anwenden, indem überprüfst, ob die Waffe hier ist. Du kannst jederzeit überprüfen, ob es dasselbe ist wie das vorherige, das wir eingestellt haben. Dann können Sie die Variable entfernen und dann die neue setzen. Anstatt es mit der alten Methode zu machen, glaube ich jedoch nicht, dass das ausbleiben wird , weil wir hier oben überprüfen ob wir schon ein Gewehr tragen, aber in Zukunft könnten wir einen Bug bekommen Ich habe gerade keine Ahnung. Wir müssen uns weiterentwickeln und sehen. Aber so ist das in der Spieleentwicklung. Man bekommt Bugs während der Programmierung und die muss man beheben. Das Gute für einen Programmierer ist einfach zu wissen, wie man diese Probleme behebt Und hier siehst du, wir haben gerade einen Tyrann hinzugefügt und nur überprüft, ob das dasselbe ist oder nicht, und wir beheben das Problem auf diese Du wirst es immer sehen , wenn du Spiele entwickelst, auch in großen Studios Aber du musst nur wissen, wie man sie repariert und wie man das Problem löst. Lass es uns jetzt ausprobieren. Lass uns kurz bevor wir das beenden auf Play klicken , um zu sehen, ob alles funktioniert. Und wenn ich den Terroristen auswähle, nehme ich alles hier auf und kann zwischen ihnen wechseln. Wenn ich die vier fallen lasse, probiere ich gerade das Dropping, du kannst sehen, dass es auch ausfällt Also müssen wir hier eine kleine Verzögerung hinzufügen , weil es nicht merkt , dass wir das gelöscht haben Wenn ich die Verzögerung auf 0,05 sagen würde und ich auf Play klicke. Und klicke hier auf Abspielen. Und lass uns eine Waffe nehmen. Lass es uns fallen lassen. Lass es uns abholen, ablegen, fallen lassen, fallen lassen. Siehst du, jetzt funktioniert es perfekt und ich kann zwischen denen wechseln. Ich versuche nur, das Spiel zu testen , um zu sehen, ob es Fehler macht. Jetzt scheint es gut zu funktionieren. Wir mussten diese kleine, unmerkliche Verzögerung hinnehmen , weil das Programm sonst nicht wusste, was wir hier machten. Es ist schön zu wissen, dass wir das auch hier haben. Das behebt alle Probleme, die wir beim Löschen dieser Variablen hatten , ohne dass wir möchten, dass sie sie löscht, bevor der Code ausgeführt wurde. Also funktioniert jetzt alles. Ich werde das neu organisieren. Ich werde es hier reinlegen und lassen Sie uns mit dem nächsten weitermachen 135. 10.06 Linienverfolgung nach Kanal: In dieser Lektion werden wir eine Funktion „Zeile für Kanal“ erstellen eine Funktion „Zeile für Kanal Auf diese Weise werden wir die Kugel aus der Waffe abschießen. Lass uns weitermachen und auf den Spieler klicken und die Spielerbasis hier öffnen. Gehen wir zu dem Code über, den wir zuvor geschrieben haben. Bei Weapon wollen wir hier die Linienverfolgung nach Kanal hinzufügen. Aber vorher haben wir noch einen kleinen Dollar mit der ausgerüsteten Waffe, wenn ich eine Waffe erbeute, wenn ich auf Terrorist klicke, verliere ich etwas. Wenn ich jetzt schieße, bekomme ich keinen Dollar, weil ich die Waffe wechsle Wenn ich jedoch die Waffe nicht wechsle, also direkt die Waffe also direkt aufnehme und mit dem Schießen beginne, erhalte ich hier eine Fehlermeldung, weil wir die ausgerüstete Waffe nur dann einstellen, wenn wir tatsächlich mit unseren Tasten auf der Tastatur wechseln Lasst uns diese ausgerüstete Waffe kopieren. Lasst uns raufgehen, wo auch immer wir die Waffe laden , hier drüben in der geplünderten Waffe Und wir werden die ausgerüstete Waffe einsetzen wann immer wir diesen Code hier durchgehen, wann immer wir unbewaffnet sind, werden wir die ausgerüstete Waffe Nach dieser Verzögerung hier. Lass uns weitermachen und es einfügen. Und lass es uns verbinden. Und ich werde das alles auch wegziehen , damit ich es hier sehen kann. Und ich werde es hier verbinden. Und dann ziehe ich von der geplünderten Waffe zu dieser. Auch hier können Sie sich Notizen machen, sich Notizen machen und alles organisieren Das sollte jetzt also gut funktionieren. Jetzt stellen wir auch die ausgerüstete Waffe ein, wann immer wir hier plündern Okay. Also werde ich das auch wegziehen. Erhöhen Sie die Größe des Kommentars, etwa so. Okay, das ist jetzt behoben. Das nächste, was ich tun möchte, ist hier bei den Waffen. Gehen wir also zu den Waffen und öffnen wir die Waffenbasis. Lasst uns jetzt diese Kugeln verstecken. Wir brauchen sie nicht mehr wirklich. Ich klicke auf die Kollisionskugel und wähle sie erneut aus. Hier, versteckt im Spiel. Und das werde ich in der Waffenbasis machen. Also macht es das für sie alle. Wenn ich jetzt speichere und dann versuche, das Spiel zu spielen , nur um zu überprüfen, ob das behoben ist. Und du kannst hier sehen , dass das jetzt behoben ist. Okay? Also brauchen wir diese Kugeln nicht mehr wirklich, okay? Also lassen Sie uns weitermachen und die Linie für jeden Kanal nachverfolgen. Gehen wir also zu dem Code über, den wir zuvor hier unten geschrieben haben. Lass uns von hier aus damit beginnen. Wann immer wir den Code wiederholen, ziehen wir ihn von hier aus und schreiben die Zeile für Kanal. Wählen wir diese Funktion aus. Nun, es sieht komplex aus, aber es ist wirklich, wirklich einfach, die Linienverfolgung nach Kanälen zu verstehen . Es braucht eine Startposition und eine Endposition. Der Startort ist dort, wo Sie sich gerade befinden, und der Endort ist dort, wo ich gerade hinziele. Bei Mikros müssen wir ihm genau das sagen. Wir erhalten diese Informationen, wenn Sie klicken und wir zuerst auf den Player-Controller zugreifen müssen Versuche es jetzt selbst zu machen. Wenn du dich daran erinnerst, wie man auf den Player-Controller zugreift, können wir das zusammen machen. Jetzt können Sie Get Controller schreiben, Sie können den Controller dieses Spiels wie zuvor aufrufen, wir haben diese Get Player-Controller-Referenz aus dem Gesicht. Du kannst jetzt etwas ziehen, wenn du einfach Kamera schreibst, wir wollen etwas bekommen, das man Kamera-Manager nennt. Wenn du das alles durchblätterst, versuche zu lesen, was wir haben. Holen Sie sich den Player Camera Manager. Mit diesem sind wir in der Lage, genau das zu erreichen , was wir mit unserem Cross-Sale anstreben. Wenn wir uns diesen Kameramanager holen, ziehen wir von dort und ziehen wir von dort und sagen Kameraposition ermitteln. Das ist unsere Startposition. Die aktuelle Startposition ist da, wo ich gerade bin, hier, hier als Spieler in der Mitte meines Bildschirms. Jetzt müssen wir ihm sagen, dass die Endposition dort ist, wo ich mit Microsa Der erste Weg, das zu tun, besteht darin, von hier wegzuziehen und zu sagen, zum Vorwärtsvektor zu gelangen Wir ermitteln also die Richtung für diesen Kameramanager. Dann nehmen wir das und multiplizieren es. Der Grund, warum wir multiplizieren, lassen Sie uns zuerst hier richtig sein und lassen Sie uns diesen Pin ändern Es muss kein Vektor sein. Verwandeln wir es in einen Float. Multiplizieren wir es mit etwas wirklich Großem. Zum Beispiel 20.000 so etwas. Der Grund, warum wir das tun, ist dass wir den Vorwärtsvektor bekommen, also die Vorwärtsrichtung der Kamera. Und dann multiplizieren wir das mit viel weil wir wollen, dass es die Entfernung da drüben an der Wand erreicht Wir multiplizieren es. Dann müssen wir Plus sagen. Hier fügen wir den Startort hinzu. Wir fügen die Startposition zusammen mit dieser Zeile für die Endposition hinzu. Auf diese Weise erhalten wir den Endort. Du kannst dir vorstellen, dass ich hier als Spieler stehe und wir den Startort bekommen. Hier stehe ich gerade. Und wir erstellen im Grunde nur eine Linie und fügen sie mit dem Start hinzu. Und dann wird es am Ende da sein , wo ich gerade anstrebe. Jetzt ist es sehr verwirrend, als Anfänger oder als erstes Mal zu verstehen das als Anfänger oder als erstes Mal zu verstehen. Aber versuche darüber nachzudenken, wie das Sinn macht. Nun, wenn wir das zusammenzählen, fügen wir es hier bis zum Ende hinzu. Und das sollte reichen. Denken Sie also auch daran, diesen Ausführungspin anzuschließen. Und mach weiter und mach dir Notizen zur Umleitung. Okay, jetzt sollte das hier funktionieren. Jetzt haben wir etwas, das Hits genannt wird, und Sie können sehen, dass es eine blaue Stecknadel ist. Und falls ihr es schon einmal bemerkt habt, haben wir schon einmal blaue Stecknadeln verwendet, weil unsere Waffeninformationen auch eine blaue Stecknadel sind. Eine blaue Stecknadel bedeutet, dass es sich um eine Struktur mit Strukturen wie zuvor handelt eine Struktur mit Strukturen wie zuvor Wir können sie ziehen und sagen, können sie brechen, wir können Strukturen zerstören Sie haben all diese Informationen, die Sie verwenden können. Sie können diese Linie für jeden Kanal verfolgen. Sie können also die Linie nehmen, die Sie hier gezogen haben, und Sie können die Position ermitteln, an der Sie tatsächlich auf diese Linie gestoßen sind. Sie können den Schauspieler, den Sie mit dieser Linie getroffen haben , Spur für Kanal ermitteln. Du kannst die Zeit, die Entfernung und viele Dinge hier abrufen, wir brauchen im Moment nicht wirklich viel. Bevor wir das tun, wollen wir nur dieses Goldbarren herausziehen und einen Ast machen Weil wir unseren Code nicht fortsetzen wollen, wenn dieser nicht gültig ist Immer wenn wir tatsächlich auf etwas stoßen, wollen wir weitermachen und den Code fortsetzen. ist immer schön, das zu haben sonst kriegt man manchmal eine Ära. Als Nächstes haben wir diesen blockierenden Treffer. Immer wenn wir mit dieser Zeile tatsächlich auf etwas stoßen, wollen wir den Code auch fortsetzen auch hier eine Verzweigung erstellen. Außerdem wollen wir sichergehen, dass es der Spieler ist , den wir treffen , der Schaden anrichtet. Weil wir nicht wollen, dass irgendein zufälliger Schauspieler wie zuvor mit einem Treffer getroffen wird. Wir haben das schon einmal gemacht. Angenommen, der Schauspieler hat ein Tag , dann können Sie den Spieler schreiben. Denken Sie daran, dass wir den Tag Player hinzugefügt haben. Wenn du dich nicht erinnern kannst, kannst du auf klicken, ich glaube, das sind die Standardwerte der Klasse Und wenn Sie nach einem Tag suchen, denken Sie daran, dass wir den Tag-Player zum Schauspieler hinzugefügt haben Der Schauspieler hat den Tag-Player. Wir haben das für alle Spieler, weil wir es zur Spielerbasis hinzugefügt haben. Jetzt können wir daraus ziehen und sagen, ziehen, wenn wir auf etwas stoßen. Wir haben also einen blockierenden Treffer, der Schauspieler, den wir treffen, ist ein Spieler. Dann wollen wir weitermachen und etwas Schaden anrichten. Okay, mit diesem. Zuerst können wir einfach eine Druckzeichenfolge schreiben, um zu sehen ob sie hier tatsächlich funktioniert. Für das Debuggen können Sie dies tatsächlich auf persistent ändern, weil Sie dann die Zeile sehen können, die Sie aufnehmen Und du kannst sehen , ob es tatsächlich etwas falsch oder richtig macht Auch für die Schauspieler zum Ignorieren. Du willst dich hier nicht selbst erschießen. Ignorieren Sie sich selbst ist schon aktiviert, aber ich habe einige Beispiel manchmal, wenn ich mich in meiner eigenen Zeit entwickle, ziehe ich gerne davon ab und sage machen. Jetzt kannst du ein Array erstellen und dann kannst du von hier aus ziehen und Self sagen. Jetzt wird es diesen Spieler hier tatsächlich ignorieren, Schauspieler sich selbst ignorieren. Und das tut es hier schon. Vielleicht ist das unnötig, aber ich habe es einfach gerne hier. Sicherheit. Wenn du andere Schauspieler blockieren willst. Damit du andere Schauspieler nicht ignorierst. Also kannst du sie nicht schlagen. Du kannst jederzeit auf das Plus klicken und hier einen weiteren Schauspieler hinzufügen. Aber lassen Sie mich vorerst mit der rechten Maustaste hier klicken und dieses Array-Element entfernen. Okay, das war es für die Linienverfolgung. Und lass uns kompilieren. Und lass mich einfach auf Play klicken und sehen, was passiert, wenn ich als Server spiele und Terroristen auswähle. Und ich wähle hier zum Beispiel eine Waffe aus und schieße. Und im Moment passiert nichts. Lassen Sie mich hier einfach aufhören und mir ansehen, warum das nicht läuft. Es wird tatsächlich abgespielt, aber es wird abgespielt. Etwas verspätet. Wenn ich es einfach noch einmal versuche und Maus gedrückt halte, wird es tatsächlich abgespielt. Sie können sehen, dass es jetzt die Linien erstellt. Wo auch immer ich schieße, da drüben wird tatsächlich aus dieser Entfernung geschossen. Was auch immer ich ziele, aber es ist ein Schuss auf eine verspätete Reaktion. Und der Grund, warum es das tut ist, dass wir hier eine erste Chance brauchen. Denn wenn wir drehen, denken Sie an die Zeit, die Sie hier für einen Timer eingestellt haben, es wird tatsächlich diese Zeit dauern, bis es abgespielt wird. Nehmen wir zum Beispiel an, ich habe hier drei für meinen Timer geschrieben und ich kompiliere und dann auf Abspielen klicke, es 3 Sekunden, bis es tatsächlich gedreht wird. Jetzt halte ich meine Maus gedrückt und Sie können sehen dass nach 3 Sekunden der Schuss hier abgefeuert wird , die Zeit, die Sie hier eingestellt haben. Es wird tatsächlich so lange warten , bis es anfängt, sich zu wiederholen. Um das zu beheben, benötigen wir ein erstes Event, wie bei einem Shooting , bei dem dieser Code einmal ausgeführt wird , bevor wir den Code hier ausführen Und so beheben wir dieses Problem. Lassen Sie uns etwas machen, das als erster Waffenschuss bezeichnet wird. Lassen Sie mich das einfach rausziehen und ein individuelles Event erstellen. Ich muss das alles wahrscheinlich wegziehen, damit wir hier etwas Platz haben , um mit dieser Veranstaltung zu arbeiten. Ich nenne es einfach „Erste Waffenschüsse“. Dieser läuft nur einmal um sicherzugehen , dass er läuft bevor dieser Timer für Event hier nach dem einen läuft . Dies wird nur einmal ausgeführt. Wir können also sagen, erster Waffenschuss. Also wird es nur ein Mal schießen bevor wir tatsächlich anfangen zu schießen. Wir haben also keine Verzögerung bei den Dreharbeiten. Lass uns auf Jetzt abspielen klicken. Und wenn ich etwas aufhebe und schieße, kannst du sehen, wie es schießt. Es schießt sofort. Wir müssen jetzt auf nichts warten. Es funktioniert. Und lassen Sie uns das schließen. Ich glaube, wir bekommen gerade einen Fehler. Wenn ich nichts habe und versuche zu schießen, können Sie sehen, dass ich etwas drehen kann und ich erhalte auch eine Fehlermeldung. Wenn ich darauf klicke, heißt es da, dass da ein Pfeil ist. Dafür können wir hier etwas tun. Immer wenn wir mit der Waffe schießen, können wir sicherstellen, dass wir auch wirklich eine Waffe haben. So wie wir das machen, können wir entweder hier mit der rechten Maustaste klicken und das Ganze in ein validiertes Get umwandeln ein validiertes Get und weitermachen und so etwas machen. Wir können auch etwas anderes tun. Lassen Sie uns das behalten und lassen Sie uns diesen ausgerüsteten Waffentyp nehmen und direkt davon und sagen, wenn das nicht dem unbewaffneten Zustand entspricht, können wir weitermachen und schießen, weil es nicht wirklich Sinn macht zu schießen, wenn wir unbewaffnet sind , weil wir keine Waffe haben Lassen Sie uns das verbinden. Später werden wir es wahrscheinlich tun , wenn wir MO nicht haben. Wenn wir MO hinzufügen und wir kein MO haben, wollen wir auch nicht schießen. Wir werden das später hinzufügen, wann immer wir das MO zum Spiel hinzufügen. In Ordnung, im Moment schießen wir mit der Waffe. Wir treffen den Spieler jedoch nicht. Wenn Sie hier sehen, wenn ich auf Abspielen klicke, nehme ich den Terroristen hier, ich nehme meinen anderen Kunden und ich wähle Terroristen aus, also nehmt eine Waffe her, lasst mich das einfach als Server nehmen . Wenn ich als Server auf den Spieler schieße, trifft das den Spieler. Es passiert jedoch nichts. Du kannst sehen, was auch immer ich auf etwas treffe, die Linie dahinter wird grün. Und das heißt, es weiß , dass es auf etwas trifft. Wir haben ihm jedoch gesagt, dass wir nur reagieren wollen, wenn es der Spieler ist, den wir treffen. Immer wenn es nicht der Spieler ist, wird es nicht wirklich etwas bewirken, aber es weiß, dass es etwas trifft. Für den Spieler trifft es jedoch nicht wirklich etwas. Lassen Sie uns in der nächsten Lektion die Kollisionseinstellungen für den Spieler anpassen . 136. 10.07 Anpassen der Kollisionseinstellungen für Spieler: Ordnung, willkommen zurück. Lass uns weitermachen und die Player-Einstellungen hier anpassen. Kollisionseinstellungen. Also lass mich auf das Mesh klicken. Und lassen Sie mich zu den Kollisionseinstellungen gehen. Immer wenn wir auf etwas treffen, müssen wir ein Trefferereignis erzeugen. Ich werde das Ereignis „Treffer generieren“ aktivieren, weil wir das auch brauchen, wenn wir Schaden und Gesundheit und ähnliches anrichten, müssen wir ein Trefferereignis generieren. Und für die Kollision hier, wenn Sie sich die Linienspur ansehen, verwenden wir den Sichtbarkeitskanal. Bei Linienspuren können Sie dies nun ändern. Wenn Sie jetzt zu den Projekteinstellungen gehen, werden wir sie nicht ändern , da wir damit eigentlich keine Probleme haben. Aber wenn wir in Zukunft ein Problem haben und es ändern müssen, werden wir es ändern. Aber vorerst sollten wir es bei der Sichtbarkeit belassen. Aber ich zeige Ihnen nur, wo Sie es für alle Fälle in den Projekteinstellungen ändern können . Wenn Sie eine Kollision finden, wenn ich einfach durch sie scrolle und wir haben etwas, das Kollision genannt wird, haben wir etwas, das als Trace-Kanäle bezeichnet wird. Das ist eine Linienspur. Sie können der Linienverfolgung tatsächlich einen neuen Kanal hinzufügen und dann den Kanal auswählen, den Sie erstellt haben. Sie können dafür auch einen benutzerdefinierten Kanal verwenden, aber vorerst verwenden wir den Sichtbarkeitskanal. Und wenn du hier auf das Mesh für die Kollisions-Voreinstellungen klickst, ändere ich es auf Benutzerdefiniert Dann sagen wir für die Sichtbarkeit Blockieren, weil wir den Sichtbarkeitskanal verwenden Lass es uns jetzt so belassen. Wenn wir später ein Problem haben, können wir es ändern. Lassen Sie uns alles zusammenstellen. Im Moment verwenden wir quasi eine präzise Kollision, weil wir nicht diese Kollisionskomponente , dieses Netz verwenden, um die Treffer-Ereignisse zu erzeugen. Jetzt klicken wir auf Abspielen und schauen, ob es Hallo sagt, wenn ich auf den Spieler schieße. Wenn ich diese Waffe hier wie die andere nehme, wähle ich Terroristen aus. Ich werde diesen abholen. Das ist jetzt der Kunde. Ich schieße auf den Spieler. Im Moment passiert nichts. Lass mich versuchen, das auf dem, auf dem Server zu machen. Wenn ich auf den Server klicke, kannst du sehen, dass er Hallo sagt. Auf dem Client heißt es derzeit jedoch nichts, um das Problem zu beheben. Da es sich um einen Mehrspielermodus handelt, weiß der Client nicht wirklich was der Start - und der Endort sind. Weil du hier sehen kannst, weiß der Server, was es ist. Aber für den Kunden hier drüben, wenn ich einfach nochmal versuche zu spielen und es dir zeige, bevor wir es reparieren, wenn ich etwas abhole und für den Kunden der Terroristen, wenn ich einfach, sagen wir mal, ich schieße hier an dieser Wand. Das Linienrennen findet automatisch statt. Es wird nicht wirklich auf dem Client angezeigt, denn denken Sie daran, dass das Linienrennen, das Sie machen, auf dem Server stattfindet. Die Zeile ist hier persistent, die Debug-Zeile wird niemals auf dem Client angezeigt Was normal ist, weil Sie das auf dem Server ausführen Wenn wir uns hier auch den Server ansehen , können Sie sehen, dass ich auf diese Wand geschossen habe. Für den Kunden sieht es jedoch so aus, als ob Sie dort drüben gedreht haben. ergibt es jedoch keinen wirklichen Sinn Server ergibt es jedoch keinen wirklichen Sinn. Und ich schieße hier drüben, das sollte ich richtig. Du kannst es hier sehen, ich habe hier zugeschlagen. Für den Kunden ist es jedoch nicht einmal da drüben. Der Weg, das zu beheben. Das ist jetzt Multiplayer, also weiß es das nicht wirklich. Wir müssen das tatsächlich weiter in die Veranstaltung hineinziehen . Lassen Sie uns diesen Anfang machen. Lassen Sie uns auch hier das Ende erreichen. Wir müssen diesen Code verschieben. Ich werde diesen Code hier trennen. Und lass uns das wegziehen. Wir müssen das hier wieder an den Anfang bringen. Der Grund, warum wir das tun, ist, wenn wir diesen Code auch auf dem Client ausführen. Weil wir nicht wirklich etwas einstellen. Das ist in Ordnung. Wenn wir nichts einstellen, ist es in Ordnung, es auf dem Client abzuspielen. Wir führen es auf dem Client aus und wissen auch wo die Start- und Endposition , und so korrigieren Sie diesen Code. Lass uns weitermachen und die hier einstecken. Lass mich das jetzt einfach wegnehmen. Lass mich das organisieren. Lassen Sie mich das alles näher an dieses Thema heranrücken. Jetzt ist es nur noch dieser Code hier. Lassen Sie mich einige Umleitungsknoten für diese Vektoren erstellen. Okay? Etwas wie das hier. Nun, das ist erledigt, lass mich gehen, lass mich diesen Code nehmen und ihn nach unten verschieben. Da oben haben wir etwas Platz. Nun zu diesem Code, nachdem er gültig ist, haben wir herausgefunden, dass diese ausgerüstete Waffe gültig ist. Wir können dann weitermachen und diesen Code eingeben. Lass uns weitermachen und ihn einstecken. Und lassen Sie uns das wieder wegziehen. Lassen Sie uns den Anfang mit diesem und das Ende mit diesem verbinden. Sie können das auch einfach nach unten verschieben , damit Sie sehen können, was vor sich geht. Und du kannst weitermachen und das verbinden, wenn du willst. Du kannst das alles einfach nehmen. Sie können mit der rechten Maustaste klicken und dies auf eine Funktion reduzieren. Und Sie können diese Funktion aufrufen oder sie einfach aussagekräftiger machen Holen Sie sich einen Bullet Line Standorte zu verfolgen, etwa so Da Sie Informationen erhalten und nichts einstellen, können Sie einfach auf Pure klicken , da Sie das nicht wirklich durchgehen müssen. Und du kannst darauf doppelklicken. Machen Sie weiter und organisieren Sie auch diese Funktion. Stellen Sie sicher, dass alles angemeldet ist. Und das sollte gut sein, um so etwas zu machen. Das hast du schon erledigt. Gehen wir jetzt zurück zur Grafik und lassen Sie mich alles ein bisschen näher bringen. Sie können sehen, dass es viel sauberer ist, es einfach zu einer Funktion zu machen. Und lassen Sie uns die Startposition dieser beiden Aufzählungszeichen und diese eine Position am Ende der Aufzählungszeichen umbenennen Startposition dieser beiden Aufzählungszeichen und diese eine Position am Ende der Aufzählungszeichen Jetzt haben wir das erledigt, wir können für diesen kompilieren Wir müssen wirklich nichts tun , weil wir die Schießerei beenden werden. Wir brauchen das nicht wirklich. Das ist das Wichtigste hier. Okay, wir haben das angeschlossen und ich denke, das wird funktionieren Okay, lass mich das hier weiter voranbringen. Und lass uns auf Play klicken. Lass es uns ausprobieren. Versuchen wir es jetzt als Kunde. Und lass mich etwas abholen. Lass es mich auch als Server versuchen. Ich hole den, als Server ab. Jetzt kann ich diesen Spieler erschießen. Und es grüßt genauso gut wie der Kunde. Es sollte Hallo sagen, wenn ich den Spieler erschieße, und wenn ich den Spieler erschieße, heißt es eigentlich Hallo sagen. Man kann auch auf dem Server sehen, die Linie tatsächlich korrekt gezogen wird. Es hat mich auch ausgeschaltet. Sagen wir auf dem Server, ich drehe auch hier als Client. Ich schieße hier. Sie sehen, es schießt tatsächlich präzise. Jetzt ist das behoben. Jetzt weiß es, wo ich eigentlich schieße. Wenn ich den Player treffe, kannst du sehen, dass er Hallo sagt. Ihr seht, wie präzise es ist, wenn ich den Spieler hier treffe, heißt das nichts, weil ich das Spielernetz nicht treffe. Wenn ich den Spieler treffe, zum Beispiel, lass mich den Spieler erschießen. Sie können sehen, dass es Hallo sagt. Lass mich den Spieler erschießen. Hier drüben steht zum Beispiel Hallo. Wenn ich den Spieler hier erschieße, heißt es Hallo. Ich erschieße den Spieler hier oben. Es sagt nichts. Es ist auch richtig gut. Dieser hier trifft den Spieler hier oben, weil das Mesh selbst eigentlich nicht wirklich gut ist. Es beugt sich, aber du kannst zum Beispiel sehen, wenn ich als Terrorabwehr spiele , dann sind die Maschen im Moment so Wenn ich nur als Anti-Terrorist spiele und das Beste daraus mache, sollte er als Server Hallo sagen Wenn ich hier schieße, siehst du Hallo. Die Leitungsverfolgung wird nicht angezeigt, weil wir auf dem Client sind. Denken Sie daran, wenn ich zum Beispiel einfach hier oben schieße , können Sie sehen, wie Sie Hallo sagen. Wenn ich hier drüben schieße, heißt es Hallo. Sie können sehen, dass dieses Netz hier genauer ist als das andere. Es geht auch darum, wie man das Netz macht und wie präzise es ist und so weiter. So kannst du den Unterschied sehen. Ich kann hier schießen und es sagt Hallo, weil ich ihn erschieße. Aber wenn ich hier oben schieße, heißt das nicht Hallo. Es ist auch bei dieser Kollision sehr präzise. 137. 10.08 Erstellen der Mündungs-Flash-Sockel: Bevor wir den visuellen Effekt und die Soundeffekte für das Shooting hinzufügen können , müssen wir einen Anschluss für den visuellen Mündungseffekt hinzufügen . Lass uns weitermachen und das tun Gehen wir zu der Waffe, die wir benutzen. Ich muss das Skelett für die Waffe finden. Der einfachste Weg, es zu finden, anstatt nur in den Marketplace-Ordnern nachzuschauen. Du kannst die Waffen öffnen, das K für die AK öffnen. Klicke auf die Waffe und dann auf dieses kleine Symbol. Dadurch gelangen Sie im Inhaltsbrowser automatisch zu dieser Waffe. Jetzt mach weiter und öffne das Skelett für die Waffe. Und hier drinnen müssen wir, genau wie zuvor, eine Steckdose hinzufügen. Ich sehe schon, dass es hier eine Steckdose gibt. Lass mich es einfach umbenennen. Ich werde es umbenennen und es als Präfix bezeichnen. Und Maulkorb, wir können es einfach Maulkorb nennen. Das ist Oder wir können es nennen, nennen wir es einfach Maulkorb Und lass uns zu den anderen gehen und das auch tun. Lass mich noch einmal zur Waffe gehen, öffne die Vier, öffne die Pistole, klicke auf den Klick auf die Waffe, klicke auf dieses kleine Symbol, es bringt dich dorthin Und dann öffne das Skelett. Und für das Skelett hier, für den Schnauzenblitz, können wir jetzt mit der rechten Maustaste klicken und sagen Socke hinzufügen für diesen hier, nennen wir es Nennen Sie es einfach bei allen gleich. Auch für diesen einen Maulkorb. Ich bin mir nicht sicher, ob wir es wechseln müssen. Sie können sehen, dass X die Vorwärtsachse für diesen ist. Ich denke, es muss auf diese Weise gedreht werden. Lass uns einfach versuchen, das zu tun. Lass mich noch einmal darauf klicken. Und ich werde hier für die Rotation nippen. Und ich werde mich um 90 Grad drehen. Auf diese Weise zeigt das X tatsächlich nach vorne. Okay, speichern wir das und gehen wir zur Pistole über. Lassen Sie uns jetzt den vollständigen Blueprint-Editor öffnen. Gehe zur Waffe und klicke auf dieses kleine Symbol für die Pistole. Nun zur Pistole. Öffne hier das Skelett für den Mündungsblitz Hier gibt es tatsächlich auch einen. Es gibt keinen Auswurf, es hat den Mündungsblitz. Dieses Pack hier ist fortgeschrittener als zuvor, aber lassen Sie mich es für dieses Paket einfach noch einmal umbenennen Lass es mich Maulkorb nennen. Jetzt haben wir eine Buchse für sie alle, und wir werden sie innerhalb unseres Charakters verwenden , um der Waffe visuelle Effekte 138. 10.09 Dreharbeiten mit VFX und SFX: Ordnung, gehen wir zurück zum Spieler und öffnen die Spielerbasis Und jetzt sind wir bereit, die visuellen Effekte und die Soundeffekte hier hinzuzufügen . Was wir hier drinnen tun müssen, ein Multicast Nochmals, weil wir die visuellen Effekte und die Soundeffekte allen zeigen müssen die visuellen Effekte und die Soundeffekte allen , müssen wir einen Multicast durchführen Lassen Sie uns zunächst einfach den Multicast erstellen. Klicken wir mit der rechten Maustaste und sagen Benutzerdefiniertes Ereignis. Für dieses benutzerdefinierte Ereignis nennen wir es Multicast-Waffe. Nun zu diesem, lass es uns anziehen. Wird nicht auf einem Server ausgeführt, sondern ist Multicast und zuverlässig. Dafür wollen wir einfach den Emitter am Standort spawnen Oder lassen Sie uns den Spawn-Emitter anhängen, weil wir ihn an den Socket anschließen werden Machen Sie weiter und sehen Sie, wie der Emitter angeschlossen ist, und dann müssen wir auswählen, über welchen Emitter wir sprechen ? Wenn wir zur Struktur gehen und die Waffenstruktur öffnen, haben wir dieses Mündungsblitz-Partikelsystem , das wir zuvor zu unserer Datentabelle hinzugefügt Wir können weitermachen und das einfach einstecken . Wir werden das benutzen. Ich werde das in Shooting Visual Effects oder einfach VFX umbenennen Shooting Visual Effects oder einfach VFX Ich werde es einfach VFX nennen. Und die Komponente zum Anhängen, ich werde sie auch hier einfach einstecken Ich werde das nach oben verschieben. Und wir müssen es an der Waffe befestigen. Ich nenne es jetzt Waffe, das ist der Knochen, an dem wir es befestigen müssen. Der Knochen, den wir Schnauze nannten. Schreib hier einfach den Namen, Muzzle. Der Name des Sockets, den Sie erstellt haben. Dann die Position dieses Effekts, den wir jetzt für diesen Emitter abspielen müssen Wenn wir den Spawn-Emitter an einem Ort verwendet haben, dann brauchten wir dafür tatsächlich den Standort Dies ist jedoch nur die Position innerhalb des Sockets, und das sollte nur 000 sein Das ist in Ordnung. Jetzt müssen wir auch einen Soundeffekt abspielen Ziehen Sie von hier aus und sagen Sie Sound am Standort abspielen. Nun zu diesem Soundeffekt. Denken Sie auch an die Struktur, für die wir diesen Soundeffekt bei der Aufnahme erstellt haben. Wir müssen ihn nur hier einstecken und wir werden ihn später hinzufügen. Nennen wir diesen einen Soundeffekt, den Ort des Soundeffekts, den, den wir brauchen. Ziehen wir das hier rein. Wir können einfach Standort sagen. Das ist in Ordnung. Lassen Sie uns alles kompilieren und speichern. Lass uns versuchen, das hier oben abzuspielen. Bevor wir das Linienrennen machen, versuchen wir, den Effekt abzuspielen. Wenn ich das wegschleppe, nenne ich das Multicast-Chute Weapon hier drüben McChute-Waffe. Dieser muss genauso angeschlossen werden wie dieser. Also diese beiden Ereignisse. Jetzt müssen wir all diese Informationen eingeben. Die Waffe, die wir benutzen, ist diese Waffe hier drüben. Wenn ich etwas draus ziehe und tatsächlich die Waffenvariable brauche , wenn ich einfach nach der Waffenvariablen suche und das statische Netz oder das Skelettnetz das wir hier verwenden, können wir es hier anklicken und es hierher ziehen. Und jetzt ist das angeschlossen. Jetzt hängt der visuelle Effekt davon ab , was wir in dieser Struktur haben Sie können es einfach hier verwenden, wir haben die Struktur bereits genannt. Du kannst darauf klicken und dann auf den Stift für den Mündungsblitz Und Sie können es anschließen und auch auf den Stift klicken , um den Shooting-Soundeffekt Und das kannst du auch anschließen. Nun zur Position, wir müssen nur noch die Position der Buchse für den Mündungsblitz ermitteln , dort wollen wir den Soundeffekt abspielen Du kannst auch einfach des Charakters ermitteln oder einen Ort spielen Niemand wird es bemerken, du kannst einfach sagen Standort des Schauspielers ermitteln und diesen einfach verwenden. Und es wird abgespielt, wo auch immer dein Schauspieler oder Charakter ist und niemand wird wirklich merken, dass es nicht direkt aus der Pistole kommt. Wenn Sie jedoch möchten, dass es genau aus der Waffe kommt, können Sie das einfach nehmen und sagen: Position des Sockels ermitteln. Du kannst das machen und du kannst den Sockelmaulkorb schreiben und du kannst ihn nehmen und ihn hier einstecken Das ist bei diesem auch genauer. Ordnung, also habe ich Smyroute-Knoten erstellt, also ist das jetzt etwas übersichtlicher Wenn ich alles kompiliere und speichere , sollte es funktionieren Jetzt dieser Anfang und das Ende, wir können auch den Namen dafür ändern. Anstatt das aus der vorherigen Lektion, Aufzählungszeichen, zu machen , nenne ich es einfach Bullet-Startposition. den Ort auflisten, es eher so aus, als ob er besser aussieht und wir ihn leichter verstehen können. Lass uns jetzt auf Play klicken und schauen, ob das funktioniert. Denken Sie daran, dass wir das in den vorherigen Lektionen getan haben, falls Sie Ihre Datentabelleninformationen noch nicht festgelegt , falls Sie Ihre Datentabelleninformationen noch haben. Wenn Sie es noch nicht eingerichtet haben, müssen Sie die Schnauze hier in und außerhalb der Datentabelle platzieren Es weiß, welcher Soundeffekt gespielt werden soll und auch, welches F gespielt werden soll Okay, lass uns alles speichern und schließen. Und lass uns weitermachen und hier als Server auf Play klicken, ich werde Terrorist auswählen. Wähle die Waffe aus. Jetzt kannst du weitermachen und schießen. Sie sollten den Soundeffekt hören. Sie können auch sehen, dass der Mündungsblitz abgespielt wird. Okay. Fantastisch als Kunde. Lass uns das auch versuchen. Lass mich einfach weitermachen und etwas abholen. Lass uns das K abholen. Wenn ich weitermache und schieße , funktioniert das auch. Beide arbeiten. Sowohl der Client als auch der Server. Wenn ich einfach vor ihn gehe, spielst du es. Ich kann die Schnauze an beiden blinken sehen. Wenn ich das als Kunde mache, nur um sicherzugehen, dass es auch funktioniert, gehe ich hier vor und drehe es, und das funktioniert auch Okay, großartig. Beides funktioniert also, und jetzt sind wir mit dem Code fertig. Wenn Sie also zur Spielerbasis zurückkehren, haben wir einfach diesen Multicast erstellt und ihn dem Server hinzugefügt Denken Sie daran, dass ein Multicast nur über ein Serverereignis laufen kann nur über ein Serverereignis laufen Wir lassen es durch das Serverereignis laufen. Wir haben all diese Informationen eingegeben und jetzt funktioniert es Also mach weiter und speichere alles und lass uns weitermachen. 139. 10.10 Verhinderung des Schießens während Equip Anim: Das Problem, das wir momentan haben, ist, dass der Spieler schießen kann, während er die Waffe ausrüstet Wenn ich diese Waffe ausrüste, kannst du sehen, dass ich schießen kann, während ich die Waffe ausrüste Übrigens, für diesen Kurs deaktiviere ich einfach den Ton für die Waffe, deaktiviere ich einfach den Ton für die damit du mich hören kannst, wenn ich schieße und es nicht ablenkt Ich werde es einfach auf meiner Seite deaktivieren. Wenn du die Waffe ausrüstest, wollen wir das Schießen ausschalten. Lass uns weitermachen und das tun. Lassen Sie uns zuerst einen Goldbarren hinzufügen. Nennen wir das als Ausrüstungswaffe. Lassen Sie uns jetzt kompilieren. Wir müssen das durch eine Veranstaltung regeln. Lass uns einfach ein neues benutzerdefiniertes Ereignis erstellen. Benutzerdefiniertes Ereignis. Und nennen wir dieses eine Set Ausrüstungswaffe. Lassen Sie uns diesen Namen kopieren, weil ich ein weiteres benutzerdefiniertes Ereignis erstellen werde Wir müssen das über den Server laufen lassen. Ich werde es am Anfang Server nennen. Und führe diesen auf dem Server aus und sei auch zuverlässig. Okay, Sie können den Server auf dem normalen Event-Server-Set ausführen . Dieses eine Set dient zur Ausrüstung einer Waffe, genau wie das hier drüben. Als was wir diese Variable einfach setzen wollen, ob sie wahr oder falsch ist, je nachdem, worauf wir sie setzen Ziehen wir das einfach hierher. Und lassen Sie uns das auch hierher ziehen. Okay, dieser. Denken Sie daran, es so einzustellen , dass es repliziert wird, damit der Client auch weiß, was diese Variable ist In diesem Fall müssen wir es irgendwo über den Code aufrufen , damit es wahr oder falsch Fangen wir von hier drüben an. Wir haben diese Spielmontage, wann immer wir die Waffe einsetzen. Lass mich das hier runterziehen . Wann immer wir die Waffe einsetzen, wann immer das wahr ist, mache ich einen Floh, wann immer das wahr ist. Nennen wir diese Ausrüstungswaffe MC-Equip. Und dann können wir auch diese Ausrüstungsanimation einstellen. Also was wir hier gemacht haben, wir haben den Multicast durchgespielt und das Ganze dann auf dem Server Wir können das also kopieren und einfügen. Ich überlege nur, ob wir das hier reinziehen und das dann hierher ziehen sollten , damit wir es einfach hier aufrufen können. Und ich glaube, das müssen wir nicht wirklich tun, lassen Sie uns das einfach hier oben kopieren. Und lassen Sie mich das einfach nach unten verschieben. Lass uns das hier unten einfügen. Und lassen Sie uns die Ausrüstungsanimation wie zuvor einfügen. Und lassen Sie uns die nicht verbundenen Pins verstecken. Also, wann immer wir die Waffe ausrüsten, werden wir diesen Multicast spielen Okay, jetzt haben wir das, lassen Sie uns das kompilieren . Was wir jetzt tun können ist, dass wir diese mit dem Set ausgestattete Waffe anstelle dieser verwenden können diese mit dem Set ausgestattete Waffe anstelle dieser Immer wenn wir eine Waffe ausrüsten, wird dies auf „wahr“ gesetzt. Lass mich das vorerst löschen und nicht verbundene Pins verstecken. Lass mich das Set als Waffe ausrüsten und lass es uns verbinden Und es wird über den Server laufen und dann den Multicast aufrufen , wann immer das stimmt Hier wollen wir die Waffe ausrüsten. Du musst es irgendwann auf Falsch setzen, sonst ist es die ganze Zeit wahr und du kannst deine Waffe nicht abfeuern. Immer wenn wir mit dem Abspielen dieser Animationsmontage fertig sind, nennen wir das Set ist Prügelwaffe falsch Wir entfernen es hier. Okay? Und wenn wir dann hier mit der Waffe schießen, dann mit der Waffe. Wir wollen immer dann schießen, wenn wir uns nicht ausrüsten. Lass uns das hier nehmen. Es rüstet eine Waffe aus Und richtig, nicht Goldbarren, dann schleppe von hier und schreibe Lass es uns hier verbinden. Okay, wir können also nicht schießen, wenn wir unbewaffnet sind, und wir können nicht schießen, wenn wir die Waffe hier noch ausrüsten Okay, lassen Sie uns kompilieren. Und ich werde auch hier raufgehen. Wenn wir die Waffe plündern, sind wir auch die Ausrüstungswaffe Lassen Sie uns den Multicast von hier löschen. Ich werde das Gleiche tun. Du kannst einfach hier runter gehen. Wenn du das kopieren möchtest, füge es hier ein, einfach so. Und das sollte auch die Animation abspielen. Das sollte das Problem beheben. Und ich kann das hier löschen. Ich kann die nicht verbundenen Pins verstecken, anstatt die ausgerüstete Waffe zu benutzen Weil diese Ausrüstungswaffe nur hier in der Ausrüstungswaffe aufgerufen wird hier in der Ausrüstungswaffe aufgerufen Allerdings haben wir die ausgerüstete Waffe nicht wirklich hier oben, als wir an die Waffe verloren haben. Vielleicht ist es besser, diese eine ausgerüstete Waffe zu benutzen. Es ist besser, diese zu benutzen. Also lass mich das hier sehen. Ausgerüstete Waffen. Ja, das haben wir schon einmal definiert. Wir nennen das, vielleicht kannst du das einfach löschen und mir die ausgerüstete Waffe zeigen stattdessen diese benutzen. Das sollte viel besser funktionieren. Lass uns kompilieren und speichern. Lassen Sie uns tatsächlich versuchen zu spielen und zu sehen, ob wir hier eine Box haben. Lass mich hier spielen, der Terrist. Und versuche zu schießen, wann immer ich die Waffe plündere, ich kann nicht. Und du siehst, dass ich nur schießen kann, wenn ich mit der Ausrüstung der Waffe fertig bin Wenn ich sie wieder fallen lasse und versuche, sie zu plündern und zu schießen, kann ich nicht. Jetzt kann ich es, wann immer es hier aufhört. Okay, versuchen wir es als Client zu spielen. Weil es auch sehr wichtig ist zu sehen, ob es als Client funktioniert. Ich werde einfach einen Spieler schreiben und als Kunde spielen. Ich werde hier spielen und es testen. Das und das zu nehmen ist dasselbe. Ich kann nicht wirklich schießen, wenn ich meine Waffe benutze. So funktioniert es und die Animation wird nur dann abgespielt, wenn die Ausrüstungswaffe auf „True“ gesetzt ist Und sie wird immer dann auf Fehler gesetzt , wenn die Animationsmontage abgeschlossen ist. 140. 10.11 Erstellen der UI für Munition: Jetzt ist es an der Zeit, die MO-Benutzeroberfläche so zu gestalten , dass wir dem Spiel etwas MO hinzufügen können Und um das zu tun, gehen wir zur Benutzeroberfläche über. Und lassen Sie uns es in unserer Haupt-Benutzeroberfläche entwerfen. Weil es Teil der Haupt-Benutzeroberfläche hier ist. Ich möchte es hier direkt unter der Waffe entwerfen. Nehmen wir zum Beispiel diese vertikale Kiste, lassen Sie uns sie einfach im Y nach oben schieben. Also habe ich hier unten etwas Platz dafür Ich möchte so etwas entwerfen. Ich zeige dir gerne, was ich entwerfen möchte, und du musst es aufschlüsseln. Sie müssen sich das ansehen und dann versuchen , es aufzuschlüsseln und zu sehen, was Sie als Benutzeroberfläche hinzufügen müssen. Müssen Sie beispielsweise ein horizontales Feld hinzufügen? Ein vertikales Feld? Und was musst du hier hinzufügen? Zuerst brauchen wir ein Overlay, weil ich sehen kann, dass wir Text über einem Bild im Hintergrund haben über einem Bild im Hintergrund Und deshalb brauchen wir etwas, das als Overlay bezeichnet wird . Fangen wir hier an. Lassen Sie uns nach einem Overlay suchen und es hier in das Canvas-Bedienfeld einfügen , in das vertikale Feld Wir sind mit diesem fertig. Es ist hier ein Overlay für sich. Und ich werde den Anker an der Schaltfläche platzieren, richtig? Und wenn wir dann 00 als Position schreiben, können wir sehen, dass sie hier für die Ausrichtung ausgerichtet Wir müssen 11 schreiben. Jetzt, an Position 00, befindet es sich innerhalb der Leinwand. Okay, zuerst brauchen wir ein Bild. Lass uns nach einem Bild suchen und es in das Overlay einfügen. Klicken Sie auf das Bild und lassen Sie uns das gesamte Overlay so füllen , dass es horizontal ausgerichtet Und auch die Füllung mit vertikaler Ausrichtung. Okay, wenn wir auf das Bild klicken, wählen wir das Bild aus. Ich glaube, ich habe es Panel genannt. Ja. Wenn Sie nach einem Panel suchen und dieses Bild-Panel-Mitglied nehmen, wenn es so gestreckt ist, können Sie es ungedehnt machen Wenn Sie in den Türen etwas hören, ändern Sie es in ein Feld und ändern den Rand auf 0,5. Okay, denken Sie auch daran, eins nach dem anderen herauszuzoomen Sie können die tatsächliche Größe dieses Felds tatsächlich sehen. Sie können es einfach in der Größe ändern. Im Moment nicht wirklich wichtig. Was ich tun möchte, ist auf das Overlay zu klicken und tatsächlich auf Größe zum Inhalt zu klicken Es wird tatsächlich an den Inhalt angepasst, der sich in diesem Overlay befindet Wenn ich auf das Bild klicke und es vergrößere, siehst du jetzt, dass ich es in beide Richtungen vergrößern kann Sie können es vorerst einfach erhöhen. Wir müssen zuerst das Innere entwerfen , bevor wir wissen, wie groß es ist. Zuerst brauchen wir ein horizontales Feld, weil wir etwas Text haben, und daneben haben wir ein Bild. Suchen wir nach einem horizontalen Feld und platzieren wir es in der Überlagerung Nehmen wir das horizontale Feld und richten es in der Mitte des Bildes hier auf dem Overlay aus Lass uns jetzt nach einem Text suchen. Nimm den Text und platziere ihn in das horizontale Feld. Nehmen Sie auch ein Bild und platzieren Sie es in der horizontalen Box. Okay, jetzt können wir auf den Text klicken . Lass uns etwas schreiben. Zum Beispiel 30 mal 90. Sie haben gerade 30 Kugeln im Magazin und dann haben Sie 90 zusätzliche Kugeln Jetzt wird sich das im Spiel dynamisch ändern, also ist es im Moment nicht wirklich wichtig Ich werde tatsächlich so etwas wie 100, 200 schreiben, damit ich weiß, dass es ein falscher Text ist, und wir können ihn später richtig einstellen. Okay, für dieses ist das Aufzählungsbild und wir haben es noch nicht importiert. Gehen wir zu den Vermögenswerten bei Assets. Gehen wir hier zur Benutzeroberfläche und den Symbolen. Ich habe dir im Ordner „Case Materials“ in der Benutzeroberfläche die Symbole angezeigt Klicke darauf und ziehe es hierher. Und denken Sie daran, es zuerst zu öffnen und die Texturgruppe in UI zu ändern. Und ändern Sie die Komprimierungseinstellungen auf die Benutzeroberfläche. Lass uns weitermachen und speichern. Gehen wir zurück zu unserem Nui Lasst uns nach der Kugel suchen und sie auswählen. Okay. Jetzt kann ich auf meinen Text klicken. Und lass mich einfach heranzoomen, damit ich sehen kann, was ich mache. Ich ändere das auf rubisch, halbfett. Was den Text angeht, werde ich jetzt auf eins zu eins herauszoomen damit ich die Größe dieses Textes tatsächlich sehen kann Und ich lasse es hier als Größe einfach bei 24 stehen. Okay, ich werde auf das Symbol hier oben klicken, also entferne ich die gestrichelten Linien für diese Kugel. Ich werde es in der Mitte ausrichten und es kleiner machen, vielleicht 30 mal 30. Stattdessen sieht es so aus. Okay, ich brauche etwas Abstand zwischen diesen beiden. Und das kann getan werden, indem man nach einem Abstandshalter sucht und ihn zwischen dem Text und dem Bild platziert Lassen Sie uns den Text, oder den Raum hier, zehn Pixeln im X machen. Okay, hier haben wir es Sie können jetzt kompilieren. Und was Sie jetzt tun können, ist, dass Sie auf das Bild klicken und versuchen können, die Größe besser zu ändern Jetzt haben Sie den Inhalt darin und versuchen, die Größe so zu ändern, wie Sie es möchten Okay, wenn Sie zufrieden sind, schiebe ich das Overlay etwas vom Bildschirm weg, von den Rändern hier auf dem Vielleicht -30 mal -30 und jetzt ist es perfekt. Lassen Sie uns also alles kompilieren und speichern. Und ich werde auch den Text, das Bild und das Bild im Hintergrund auswählen . Und setze die Sichtbarkeit auf einen Wert, bei dem kein Treffer getestet werden kann, sodass der Meilenzeiger auch nicht mit ihnen interagieren Okay, lass uns alles kompilieren und speichern. Und jetzt, wo das fertig ist, klicken wir auf das vertikale Feld hier oben. Und jetzt können wir es nach unten verschieben. Du kannst das nach unten verschieben, vielleicht so etwas. Und damit bin ich zufrieden. Wir haben die Munition und wir haben auch die Waffen hier oben. Okay, du kannst weitermachen und kompilieren, alles speichern und uns mit dem nächsten weitermachen lassen 141. 10.12 Festlegen des anfänglichen Waffenmunitionsbetrags: Lassen Sie uns nun weitermachen und definieren wie viel MO Sie in jeder Waffe haben Auch hier müssen wir zur Struktur zurückkehren. Gehen wir zu der Struktur und den Waffeninformationen, die wir erstellt haben. Lassen Sie uns zwei neue Variablen erstellen. der ersten müssen wir wissen, wie viel MO du in einem Magazin hast, diese Waffe hat maximal MO drin. Wir müssen wissen, wie viel MO Sie als zusätzliche Kugeln haben. Sie können also hier in der Benutzeroberfläche sehen, ob ich sie öffne. Wie viel MO hast du hier im Magazin? Und wie viel MO hast du? Reste, die du aus diesem nachladen kannst. Ich rufe einfach Max extra MO an. Was ist das Maximum, das du in der Waffe haben kannst? Da es nur eine Zahl ist, ist es eine ganze Zahl, es ist keine Dezimalzahl. Wir müssen eine Ganzzahl wählen, nur eine gewöhnliche Zahl. Ohne Dezimalzahlen haben wir Maximo in Ma und Max Extra MO. Ich werde sie hierher bringen und ich glaube, ich werde sie über die Schussgeschwindigkeit bringen , ungefähr so Jetzt ist es nicht wirklich wichtig, wohin du sie bewegst. Ich möchte einfach so sauber bleiben. Wenn diese fertig sind, können wir es jetzt schließen und wir müssen daran denken, es in der Datentabelle zu aktualisieren. Wenn ich die Datentabelle und meine Datentabelle hier öffne , müssen wir sie genauso schreiben wie hier in der Struktur. Wenn ich zur Struktur zurückkehre, öffne ich die Struktur hier innerhalb der Struktur. Wenn ich es jetzt einfach mit meiner Datentabelle vergleiche, brauche ich jetzt dieses MO in mir und Max zusätzliches MO nach der Klassenvariablen. Nach diesem. Nach dem Unterricht schreibe ich, klicke und sage Spalte nach rechts einfügen. Und das werde ich noch einmal machen. Lassen Sie mich das maximieren, damit ich tatsächlich sehen kann, was ich mache. Wir können das einfach kleiner machen und wir können Max MO in Mag schreiben. Du kannst das sogar kopieren und hier einfügen. Und kopiere das. Und füge es hier ein. Okay, das haben wir jetzt. Und dann musst du definieren, wie viel MO du hast. Also für die AK 47 kann ich zum Beispiel 30 in meiner Meg haben und ich kann maximal 90 zusätzliche Kugeln Meine Daten könnten zum Beispiel 2060 und meine Pistole zum Beispiel 12 Kugeln und maximal 24 Kugeln als zusätzliches MO enthalten, so etwas in der so etwas Fahren Sie erneut fort und klicken Sie auf Datei, um sie herunterzuladen und als CS-Datei herunterzuladen, damit wir sie auf die Engine hochladen können Und wieder werde ich, genau wie zuvor, den alten löschen, den wir erstellt haben. Und ich werde es hier einfügen und es wieder in DT Weapon Info umbenennen. Und dann gehen wir innerhalb der Engine zu den Datentabellen. Und lassen Sie mich das einfach anklicken und hierher ziehen, damit es aktualisiert wird. Und wenn Sie es erneut öffnen, können Sie sehen, dass alle Werte hier aktualisiert wurden. Okay, großartig. Jetzt haben wir den MO-Betrag definiert. Wenn wir das Spiel jetzt spielen, kennt die Engine jedoch den ursprünglichen Betrag nicht , da wir diese Zahlen nicht wirklich verwendet haben. Es ist in Ordnung. Wir haben sie in die Struktur - und Datentabelle geschrieben. Wir haben sie derzeit jedoch nicht wirklich auf irgendetwas eingestellt. Gehen wir zu den Waffen und machen wir das innerhalb der Waffenbasis. Der Grund, warum ich das jetzt in der Waffenbasis mache und nicht im Spieler, ist, dass jedes Mal, wenn die Waffe erscheint, sie die Menge an MO festlegt sie die Menge an MO festlegt, die sie im Magazin hat, und die zusätzlichen MO, das wird automatisch gemacht Hier drinnen, hier drinnen. Klicken wir mit der rechten Maustaste und erstellen Sie ein neues benutzerdefiniertes Ereignis. Nennen wir diesen einen Server. Also werden wir es über den Server laufen lassen. Und nennen wir es initialisierte Waffe. Es ist nur ein Anfänger-Event , das hier im Startspiel stattfinden wird Wenn du einfach die vom Server initialisierte Waffe aufrufst und das auf dem Server ausführst, zuverlässig, einfach so, kompiliere jetzt hier, was wir tun wollen, ist, dass kompiliere jetzt hier wir das aktuelle zusätzliche MO und auch MO im Magazin für die Waffe setzen wollen das aktuelle zusätzliche MO und auch MO im Magazin für die Waffe Lassen Sie uns zwei neue Variablen erstellen und wir werden sie später auch benötigen. Nennen wir das eine. Ich muss den Namen hier ändern, MO im Magazin. Nennen wir das andere zusätzliche M hier in der Struktur. Wenn ich zurückgehe und die Struktur innerhalb der Struktur öffne , ist das maximale M in, ist das Maximum, das wir haben können. Das ist das aktuelle. Wir hätten unsere Waffe schließen und unseren MO benutzen können, als wir die Waffe auf den Boden fallen lassen. Es wird nicht das maximale MO haben wie das MO im Magazin. Es wird dieses aktuelle MO haben weil der Spieler einen Teil des MO verwendet hat. Lassen Sie uns das auch in ein Interieur umwandeln. Lass mich sie hierher ziehen, damit wir sie platzieren können. Und denken Sie daran, dass Sie die Alt-Taste auf Ihrer Tastatur gedrückt halten können , um sie direkt so einzustellen. Lass uns sie hier verbinden, verbinde diesen. Und wir müssen sie jetzt zuerst einstellen. Wir brauchen hier die Variable, die Struktur. Sie wissen jetzt wahrscheinlich schon, was wir tun müssen, weil wir es 1.000 Mal gemacht haben. Sie erhalten also den Waffennamen, Sie erhalten Waffeninformationen und dann brechen Sie diese Struktur auf. Und jetzt hast du den Max MO und Meg und den Max Extra MO. Max M und Mag, ich werde auf das aktuelle M und Meg und das zusätzliche M einstellen und es auf das aktuelle zusätzliche MO einstellen. Und ich werde auf Nicht ausgewählte Pins ausblenden klicken. Und einfach so, was passiert, ist, dass jedes Mal, wenn diese Waffe erscheint , das Spiel abgespielt wird Immer wenn wir das in der Welt erscheinen lassen, wann immer wir es in der Welt platziert haben, klicken wir auf Abspielen Und dieses Startspiel wird sofort abgespielt. Und wann immer dieser Ort ist, wird er automatisch das aktuelle MO und der Mac ein zusätzliches MO aus der von uns definierten Indeed-Datentabelle setzen . In Ordnung, das war es also. Das war sehr, sehr einfach. Und bei diesen Variablen musst du sie anklicken und dann auf repliziert klicken Und auch für diesen klicken Sie auf repliziert. Denken Sie daran, dass wir auf dem Server laufen. Und wenn wir sie nicht replizieren, hat der Kunde keine Ahnung , wie viel MO Sie haben Der Client wird 00 MO sehen , wenn Sie sie nicht repliziert haben Denken Sie also daran, sie ebenfalls zu replizieren. Beide. Und lass uns mit dem nächsten weitermachen. 142. 10.13 Erstellen der Munitions-UI-Logik: Lassen Sie uns nun in der Benutzeroberfläche weitermachen und die Logik hier ausführen In unserem B-Main haben wir diese Benutzeroberfläche für die Kugeln erstellt Klicken wir nun auf diesen Text. Und ich werde es in T Bullets oder MO umbenennen. Nennen wir es MO. Und lass uns kompilieren. Lassen Sie uns es auch auf eine Variable setzen. Da wir diesen Text je nachdem, wie viel MO wir haben, setzen müssen , müssen wir ihn zu einer Variablen machen. Also können wir es mit Code innerhalb des Graphen modifizieren. Hier drin. Lass uns ein neues benutzerdefiniertes Event erstellen. Klicken wir mit der rechten Maustaste auf Benutzerdefinierte Ereignisse. Lassen Sie uns dieses eine Update MOI damit nennen Zunächst wollen wir damit nur diesen Text darauf einstellen, wie viel MO wir haben Lassen Sie uns hier zuschlagen und Text festlegen sagen. Es ist immer schön, darüber nachzudenken, was willst du eigentlich? Was versuchst du zu tun? Das frage ich mich normalerweise , wenn ich versuche , etwas zu programmieren. Zum Beispiel dieser hier, was versuchst du zu tun? Sie versuchen, diesen Text auf die Menge an MO einzustellen , die Sie gerade im Meg haben, Sie gehen zur Grafik und nehmen das zum Beispiel. Sie können Text festlegen schreiben, weil wir den Text letztendlich festlegen wollen. Wie legen wir den Text fest? Wir benötigen zwei verschiedene Variablen. Das haben wir bereits gemacht. Wir brauchen das aktuelle MO auf dem Mac. müssen wir wissen, weil wir es hier einstellen müssen und wir brauchen auch das aktuelle zusätzliche MO. Nennen wir es. Klicken Sie hier und nennen Sie es Current Extra MO. Lassen Sie uns beide in eine Ganzzahl ändern. Dies sind die beiden Variablen, die wir kennen müssen und mit denen wir diesen Text festlegen müssen. Jetzt können Sie sehen, dass wir zwei Dinge einstellen müssen. Wir haben nicht nur eine Zahl, wir haben zwei Dinge. Immer wenn Sie mehrere Dinge in einer Textzeile haben, die Sie separat ändern müssen, verwenden Sie etwas, das als Formattext bezeichnet wird. Wenn Sie von hier ziehen und Text formatieren sagen, müssen Sie sofort darüber nachdenken , wenn Sie zwei Dinge innerhalb einer Textzeile ändern möchten , zwei separate Dinge. Wir wollen diese Nummer ändern und wir wollen diese Nummer ändern. Immer wenn wir die Waffe nachladen, müssen wir den Text formatieren Weil wir jetzt diese beiden Variablen mit Formattext verbinden müssen diese beiden Variablen mit Formattext Wenn Sie zunächst eine geschweifte Klammer schreiben , nennen wir diese Du kannst es nennen, wie du willst. Ich nenne es einfach den gleichen Namen wie hier. Aktueller MO im Mai. Und dann musst du die geschweiften Klammern schließen Denken Sie daran, dass es sich um eine geschweifte Klammer handelt. Sie müssen es genauso formatieren wie hier. Weil ich den Raum hier haben will und den und den Raum. Ich werde hier klicken und Leerzeichen schreiben. Weil ich einfach so aussehen wollte. Du kannst wählen , wie du willst, dass es so aussieht, als ob ich so aussehen möchte. Dann musst du die geschweiften Klammern wieder öffnen, denn jetzt muss ich hier meine zweite Variable definieren Diese ist zum Beispiel Current Extra MO, genau so Okay? Jetzt haben wir diese beiden und jetzt loggen wir diese beiden Variablen ein. Es verbindet sie automatisch hier und hier, was bedeutet, dass es dies und das getrennt voneinander aktualisiert . So verwenden Sie ein Format-Textformat. Wenn ich es einfach noch einmal mache, zum Beispiel ein anderes Beispiel, du kannst es zum Beispiel in einem RPG-Spiel verwenden , du könntest zum Beispiel Hallo sagen Und dann kannst du Spielername sagen. Weil es vielleicht Hallo John sagt, oder so ähnlich. Ich weiß es nicht. Was auch immer dein Spielername ist, er sagt Hallo. Und dein Spielername, wie geht es dir zu dieser Tageszeit, zum Beispiel, Hallo, zum Beispiel, John, wie machst du das heute Abend? Vielleicht hast du so etwas wie ein Tag- und Nachtsystem. Und im Spiel weißt du automatisch, ob es Abend oder Morgen oder so ist, und du kannst das in Variablen einbauen. So benutzt du einen Formattext. Sie können mehrere Variablen erstellen, und es müssen nicht wirklich ganze Zahlen sein Es kann eine Textzeile sein, es kann etwas anderes sein, eine Aufzählung und so weiter Es ist sehr, sehr nützlich, dieses Format zu verwenden. Okay, jetzt haben wir das erledigt, und wir können es tatsächlich verwenden , um diese Variablen einzufügen. Lassen Sie uns alles kompilieren und speichern und mit dem nächsten fortfahren. 143. 10.14-Update-UI für die Munition: Jetzt ist es an der Zeit, die Benutzeroberfläche auf die tatsächliche Menge zu aktualisieren , die wir in den Waffen haben Gehen wir zur Spielerbasis. jetzt hier drinnen Lasst uns jetzt hier drinnen ein neues Event erstellen. Und lassen Sie uns hier nach rechts schauen und ein neues benutzerdefiniertes Ereignis erstellen. Nennen wir es CL, weil wir Kundenseite mit UI und UI arbeiten. Nennen wir dieses eine Update, MOU. Was wir tun müssen, genau wie bei diesem, wir brauchen den Controller und so weiter Jetzt können Sie also sehen, dass wir immer wieder versuchen, diesen Controller zu bekommen . Es ist wirklich nett, es stattdessen in einer Variablen zu erstellen, anstatt es ständig zu kopieren und einzufügen Gehen wir hier zum Gameplay des Players, wo wir eigentlich den Controller haben Lassen Sie uns mit der rechten Maustaste klicken und diesen Controller zu einer Variablen heraufstufen und ihn Player-Controller nennen. Ich werde das hier etwas wegbewegen und dann werde ich es hier platzieren. Immer wenn dieser Player-Controller gültig ist, werden wir ihn als Variable setzen. Ja, das ist in Ordnung. Und Sie können sogar hier doppelklicken , um Notizen wie diese umzuleiten Okay, mach weiter und kompiliere. Nun, was wir hier unten tun können, wir können das tatsächlich entfernen, Controller holen, Controller spielen, weil wir es jetzt schon als Variable haben. Jetzt wird es viel einfacher. Wir können das sogar näher rücken, so etwas. Jetzt kannst du hier tatsächlich dasselbe tun. Wir können den Controller nehmen. Lassen Sie uns das auf dem Client ausführen bevor wir vergessen, den Client auszuführen. Nehmen wir den Display-Controller, holen Sie sich WB Main Dann kannst du den, den wir Update genannt haben, MO Ui aufrufen. Okay, wir brauchen hier zwei Variablen. Wir können sie einfach in diesen Client einbinden . In Kunde eins. Lass mich das ein bisschen nach unten verschieben, einfach so. Okay, und jetzt haben wir diesen hier. Also lasst uns alles kompilieren und speichern. Und diesen müssen wir anrufen, wann immer wir die Waffe plündern. Also lass mich einfach hier raufgehen. Wann immer wir die Waffe plündern , die hier drüben ist, plündern wir die Waffe. Und wenn wir zur Seite gehen, müssen wir die Kugeln nur aktualisieren, wenn wir Denn wenn ich eine AK habe, sie diesen Code hier oben durchgehen Ich möchte nur aktualisieren, wenn ich die Waffe tatsächlich beim ersten Mal plündere Weil wir die Menge an MO für die andere Waffe nicht ändern müssen die Menge an MO für die andere Waffe Das wird mir auf dem Rücken liegen, weil ich es nicht ausgerüstet habe , wenn ich unbewaffnet bin Ich möchte mein MO hier aktualisieren. Wir müssen den Code erneut erweitern. Eigentlich werde ich das ein bisschen verschieben, weil wir diesen Code ständig erweitern. Ich habe etwas Platz zum Arbeiten. Ich kann das alles hier mit mir wegnehmen. Einfach so. Wir können diesen Client Update MY nennen, einen, den wir gerade erstellt haben. Dann musst du hier definieren, was dein aktuelles und zusätzliches MO ist . Wir haben diese Waffe mit variabler Ausstattung bereits hergestellt. Bei diesem klicke ich einfach drauf und verstecke unverbundene Pins Klicke darauf. Sie haben also diese ausgerüstete Waffe, wir können sie benutzen. Die ausgerüstete Waffe. Denken Sie daran, es ist keine ausgerüstete Waffe, es ist die ausgerüstete Waffe. Vielleicht kannst du den Namen der Waffen ändern, damit du die ausgerüstete Waffe nicht zu sehr verwirrst . Und wir können das aktuelle MO im Magazin bekommen. Wir können auch das aktuelle zusätzliche MO abrufen. Und wir können die hier anschließen. Ich kann das alles tatsächlich kopieren, weil wir es rundum kopieren und einfügen können . Wir können das kopieren und einfügen. Lass uns kompilieren, lass es uns einfügen. Immer wenn wir die Waffen wechseln. Immer wenn ich hier in der Waffenlogik die Waffen wechsle hier in der Waffenlogik die , aktualisieren wir wieder die Benutzeroberfläche. Dann verschiebe ich das und füge es einfach hier ein. Füge es nach dieser Logik ein. Und lassen Sie uns weitermachen und es verbinden. Einfach so. Okay, lassen Sie uns jetzt alles zusammenstellen. Lassen Sie uns versuchen zu sehen, was passiert , wenn wir auf Jetzt abspielen klicken. Und jetzt spielt der Client. Ich wähle Terrorist und lasse mich etwas abholen. Dann kannst du sehen, dass mein MO gerade aktualisiert wird. Jetzt heißt es 20.60. Wenn ich die Pistole in die Hand nehme, heißt es nichts, es sei denn, ich wechsle zur Dann aktualisiert es auch das MO. Wenn ich das jetzt fallen lasse, müssen wir jetzt den MO-Bereich verstecken , weil ich keine Waffen habe. Aber das werden wir in den nächsten Lektionen tun. Jetzt können wir hier sehen, dass die AK korrekt aktualisiert wird, wenn ich sie abhole . Wenn ich die Waffen wechsle, wird sie auch korrekt aktualisiert. Okay, also alles wird korrekt aktualisiert. Und das war's für diese Lektion. Sehr einfach. Und lassen Sie uns alles speichern und weitermachen. 144. 10.15 UI von Munition verbergen: Okay, willkommen zurück. Jetzt müssen wir die M-Benutzeroberfläche verstecken, wann immer wir sie nicht benötigen. Lassen Sie mich die Benutzeroberfläche einfach wieder öffnen. Öffnen Sie das WB-Hauptmenü und gehen Sie in das Diagramm hier, das Update-MOU Ich werde ein weiteres benutzerdefiniertes Ereignis erstellen und dieses eine Display einfach so nennen Was wir für dieses Mal versuchen zu tun, fragen Sie sich noch einmal, was versuchen Sie zu tun? Ich versuche diesen ganzen Abschnitt zu verstecken. Immer wenn ich keine Waffe habe, klicke ich auf dieses Overlay Das überlagert das Ganze hier. Das ist das Elternteil von allen hier. Ich werde diesen in V M oder Overlay umbenennen. Lassen Sie mich es einfach als Variable festlegen damit ich diese Kodierung bearbeiten kann Lassen Sie mich zum Diagramm gehen, das nehmen und dann sagen, Sichtbarkeit einstellen Ich möchte die Sichtbarkeit dieser Benutzeroberfläche kontrollieren. Wir können daraus ziehen und „Auswählen“ sagen , je nachdem, ob wir die Benutzeroberfläche ein- oder ausblenden möchten. Ich brauche hier einen Bullen. Ich brauche ein Goldbarren namens Display. Wenn wir die Benutzeroberfläche ein - oder ausblenden möchten, können wir das mit hier verbinden. Dieses Mobbing ist falsch, was bedeutet, dass wir die Benutzeroberfläche nicht anzeigen möchten . Ich möchte es verstecken Wann immer das hier zutrifft, möchte ich die Benutzeroberfläche anzeigen. Ich werde es so einstellen, dass es nicht testbar ist. Auch dies bedeutet, dass es sichtbar ist, aber Ihr Mauszeiger kann hier nicht mit dieser Benutzeroberfläche interagieren Und wir müssen sowieso nicht wirklich damit interagieren . Lass uns kompilieren. Und jetzt ist das hier fertig. Jetzt können wir zum Spieler zurückkehren. Und statt der Spielerbasis wie bisher hier klicken wir mit der rechten Maustaste, um eine neue benutzerdefinierte Lüftungsöffnung zu erstellen, die alle wieder angezeigt wird. Nehmen wir das Copy-Paste und suchen wir nach Display MI. Lass es uns verbinden. Denken Sie daran, dies auf dem eigenen Client auszuführen und auch zuverlässig Lassen Sie mich auf diese Variable klicken und sie hierher ziehen . Okay, das war es. Lass uns jetzt kompilieren. Lassen Sie uns wählen, wann wir die Benutzeroberfläche ein- und ausblenden möchten. Ich möchte meine Benutzeroberfläche immer dann einblenden, wenn ich die Waffe ausrüste oder sie hier plündere MOU anzeigen. Wenn ich zu meiner Waffe gehe und einfach hierher gehe und sie sofort anzeigen möchte, nachdem ich mein MO aktualisiert habe Ich möchte mein MO nicht anzeigen, bevor ich es aktualisiert habe, weil es sonst fehlerhaft aussieht Ich möchte das MO aktualisieren, bevor ich die Benutzeroberfläche anzeige. Lassen Sie mich das alles noch einmal wegziehen. Nochmals, wir schleppen das immer weiter weg. Wir haben hier drinnen eine Menge Dinge zu tun, wir können hier CL-Display schreiben und es anschließen Nochmals, ich werde das ein bisschen wegziehen. So etwas wie das. Immer nett zu sagen, organisiert. Okay, lassen Sie uns die Benutzeroberfläche hier anzeigen. Noch einmal, wann immer wir unbewaffnet sind, weil wir jetzt eine Waffe haben Ich möchte meine Benutzeroberfläche anzeigen. Denken Sie daran, das hier anzukreuzen. Lassen Sie uns noch einmal kompilieren. Das brauchen wir auch, wann immer wir die Waffe ausrüsten. Wenn ich zu meiner Ausrüstungswaffe gehe, wenn ich sie hier finde, rüste die Waffe hier aus. Auch hier gilt: Immer wenn ich mein MO aktualisiere, möchte ich mein UI oder mein MO einfach so anzeigen. Okay, denken Sie auch daran, es auch hier angekreuzt zu haben. Jetzt müssen wir die Benutzeroberfläche verstecken, wann immer wir die Waffe hier drüben in meiner Drop-Logik-Waffe fallen lassen wir uns daran, dass wir diese Funktion schon einmal gemacht haben : Waffe fallen lassen. Lasst uns hier reingehen. Lasst uns die Benutzeroberfläche kurz vor diesem verstecken. Wenn ich das wegziehe, kann ich es einfügen. Das Display, das MO UI sein wird, fällt her, fällt auf das Display. Und wir können die Benutzeroberfläche verstecken, wann immer wir die Waffe fallen lassen. Okay, lass uns alles kompilieren und speichern. Lass es uns testen und sehen, ob es tatsächlich funktioniert. Lassen Sie uns Terroristen auswählen. Eigentlich müssen wir es standardmäßig verstecken. Sie können sehen, dass es jetzt ist und das wollen wir nicht. Das ist also der erste Bug. Gehen wir hier zum Hauptteil über. Lass uns hier in der Sichtbarkeit auf das Overlay klicken. Lassen Sie uns es standardmäßig auf versteckt setzen und kompilieren. Und lassen Sie uns hier im Client erneut auf Play klicken und Terrace auswählen. Im Moment können wir es nicht sehen, aber wenn wir eine Waffe in die Hand nehmen, wird sie mit der richtigen Anzahl an Kugeln angezeigt Wenn ich es jetzt fallen lasse, wird es nicht mehr angezeigt. Ich nehme die Pistole, sie wird angezeigt, ich nehme die AK Es wird die Kugeln nicht aktualisieren, es sei denn, wir wechseln zur AK Wenn ich die AK fallen lasse, wird nichts angezeigt. Sie können jetzt sehen, dass es richtig funktioniert. Immer wenn wir eine Waffe in der Hand haben, werden wir sie sehen, wenn wir die Waffe wechseln. Immer wenn wir die Waffe fallen lassen, verstecken wir die Benutzeroberfläche und so weiter. Und lass uns das tatsächlich auch auf dem Server versuchen, also weiß ich nicht, ob ich auch als Server spiele . Also hier oben klicken, als Server spielen und ich spiele mit zwei Zahlen oder zwei Spielern und lass uns Terroristen auswählen. Lass es uns auch hier auf dem Server testen. Denken Sie daran, dass Sie es auf dem Client und auf dem Server testen müssen , um zu wissen, dass es tatsächlich auf beiden funktioniert. Hier habe ich auch den Client und Sie können weitermachen und Terroristen auswählen. Und wir haben es bereits auf dem Client getestet. Alles funktioniert perfekt. Ja. Alles funktioniert, alles ist nett, großartig. Es funktioniert alles. Wir haben kein Geld, keine Fehler, und so machen wir das. Lass uns mit dem nächsten weitermachen. 145. 10.16 Berechnung von Munition: Lassen Sie uns also weitermachen und den MO berechnen, denn wenn wir gerade die Waffe abfeuern, also wenn ich das aufnehme und versuche zu schießen, berechnen wir nicht wirklich den Es ist immer noch 20. Also lass uns weitermachen und das tun. Gehen wir noch einmal zur Spielerbasis , um die Kugeln zu berechnen Denken Sie daran, wir haben diesen Timer hier unten eingestellt. Wenn wir ihn hier unten finden können , mit der Linienverfolgung nach Kanälen und Wiedergabe des visuellen Effekts und des Soundeffekts hier drüben, wollen wir jedes Mal, wenn Sie schießen, eine Kugel abziehen Lassen Sie mich diese Linienspur einfach wegbewegen, weil wir sie später verwenden werden wenn wir dem Spieler Schaden zufügen Aber lassen Sie uns vorerst hier arbeiten. Ich möchte einfach meine ausgerüstete Waffe nehmen , die ich gerade habe , und ich möchte mein aktuelles MO in mein Magazin aufnehmen. Dann will ich nur eins davon abziehen, minus eins. Und dann kannst du weitermachen und diesen aktuellen MO im Magazin einstellen. Aktueller MO im Mai. Und wir müssen es einstellen. Stellen Sie das aktuelle MO auf mag ein. wir nur eins abziehen, ziehen wir jedes Mal, wenn wir schießen, eine Kugel Anstatt es einfach so zu haben, müssen wir es hinter uns lassen und Klammer sagen Klammer verhindert, dass unser Wert unter Null fällt, weil wir nicht wollen , dass es unter Null fällt minus ein Aufzählungszeichen, minus zwei Aufzählungszeichen , minus drei Aufzählungszeichen und so weiter gibt. Wir setzen unseren Mindestwert auf Null, wenn wir hier subtrahieren. Wir verhindern, dass minus eins, minus zwei Kugeln und so weiter erreicht minus zwei Kugeln und so weiter Das würde keinen Sinn ergeben. Nun, das Maximum für diesen, wir können einfach das nehmen und sagen, wir können die aktuellen Kugeln bekommen und dann können wir es hier einstellen Jetzt spielt dieser keine Rolle. Wir können es sogar auf 999 setzen. Das ist momentan nicht wirklich wichtig. Aber ich gehe einfach zu guter Praxis, guter Programmierpraxis. Nimm die aktuellen zusätzlichen Kugeln und setze sie auf das Maximum. Okay, das Set haben wir jetzt. Lassen Sie mich einfach auch zu diesem Thema umgeschriebene Notizen erstellen. Lass uns weitermachen und diesen Ausführungs-Pin hier verbinden. Und lassen Sie uns auch hier den Ausführungspin anschließen. Was Sie damit tun können, Sie können sogar mit der rechten Maustaste darauf klicken und es zu einer Funktion heraufstufen oder es zu einer Funktion zusammenklappen. Nennen wir diese Funktion tract MO von mag so. Okay? Jetzt subtrahieren wir und wir können es einfach hier sein lassen Anstatt nur eine Kugel zu haben, können Sie sie in Zukunft sogar dynamisch gestalten Wenn Sie eine Kugel abschießen möchten und tatsächlich zwei statt einer Kugel abziehen Du kannst es sogar einfach hier einstecken und MO schreiben, um so zu subtrahieren Lass mich das alles einfach wegschieben und weitermachen und jetzt kompilieren Wenn wir jetzt zurückgehen, können Sie sehen, dass Sie schreiben können wie viele Kugeln Sie für mein Spiel gerade abziehen möchten für mein Spiel gerade abziehen Ich möchte nur eine Kugel abziehen . Dann machen wir weiter und machen eine Sequenznotiz, weil wir später neu laden werden Ich werde diese Leitungsverfolgung tatsächlich unterbrechen und ich werde sie hier etwas wegbewegen Lassen Sie uns von hier aus nachverfolgen und eine Sequenz erstellen. Und wähle den Sequenzknoten. nun mit der Sequenznotiz Lassen Sie uns nun mit der Sequenznotiz beide hier verbinden, vom Pin hier, von der Null aus. Lass uns das hier verbinden. Was eine Sequenznotiz ist, sie wird nur verwendet, um Ihren Code zu organisieren. Es macht nichts anderes als das, es organisiert nur Ihren Code. Wir machen hier zuerst den Effekt und ziehen die Kugel Dann werden wir diese Linienspur verlegen. Ich kann diese Linienspur hierher verschieben. Ich werde das alles auch hierher verschieben, weil es momentan ein bisschen chaotisch aussieht Sie können diese sogar löschen und sie hier direkt verbinden Und ich werde das so nach oben verschieben . Okay? Jetzt sieht es viel besser aus. Und jetzt können wir das hier damit verbinden. Ein Sequenzknoten dient nur dazu, Ihren Code zu organisieren. Er macht den Soundeffekt und all das, subtrahiert die Kugel und dann erstellen wir die Linienspur Danach werden wir nachladen, weil wir überprüfen müssen, ob wir keine mehr haben Wenn ja, müssen wir weitermachen und nachladen. Lassen Sie uns das in der nächsten Lektion tun. Das wird nicht sehr schwierig sein, aber dafür musst du wach sein. Im Moment sind wir fertig, wir berechnen die Kugeln Wir können sogar auf die Platte klicken, nur um sie aus guten Gründen hier zu testen und zu sehen, ob sie ausgepackt ist Im Moment müssen wir die Benutzeroberfläche aktualisieren und das machen wir innerhalb der Funktion „ Amo von Mag subtrahieren Gehen wir hier rein und hier rein. Lasst uns von hier aus zuschlagen und das CL-Update MO I nennen Das haben wir zuvor erstellt. Und dann können wir dieses MO im Magazin nehmen, das ist nur dieses hier und das andere , das zusätzliche MO. Wir können einfach diesen nehmen und einen Knoten für die Umleitung erstellen oder ihn einfach hier niedriger machen und wir können ihn bis hierher bringen. Okay, jetzt ist das erledigt. Lass uns kompilieren. Lass uns auf Play klicken. Lass uns als Kunde testen. Lass uns jetzt spielen. Ich schieße mit meiner Waffe. Es funktioniert jetzt. Ich werde auch als Server spielen, die Waffe nehmen und auch schießen. Und das funktioniert. Sowohl der Client als auch der Server funktionieren einwandfrei. Okay. Jetzt wird berechnet. Und lassen Sie uns in den nächsten Lektionen weitermachen. Und du siehst, wir können mit der Waffe schießen. Sie können sehen, ob ich weiter mit der Waffe schieße, ich kann weiterschießen, wenn ich keine Kugeln mehr Und der Grund dafür ist, dass wir Motor nicht wirklich gesagt haben, dass er das Schießen einstellen soll , wenn wir bei null Kugeln sind Und das werden wir in den nächsten Lektionen tun. Aber zuerst müssen wir den MO berechnen und das Nachladen durchführen Und danach können wir all diese Bedingungen hinzufügen. Aber lassen Sie uns vorerst alles speichern. Alles funktioniert. Und lass uns mit dem nächsten weitermachen. 146. 10.17 Waffenanimation nachladen: Hallo und willkommen zurück. Jetzt sind wir bereit, die Reload-Funktionalität auszuführen. Jetzt musst du für diese Lektion sehr wach sein , weil sie vielleicht auch lang sein wird vielleicht auch lang sein Wir müssen viel rechnen, also musst du hier wirklich aufpassen. Okay, lass uns zuerst das Nachladen machen. Lassen Sie uns weitermachen und ein benutzerdefiniertes Ereignis erstellen. Lassen Sie mich einfach mit der rechten Maustaste hier klicken und ein neues benutzerdefiniertes Ereignis erstellen. Nennen wir es Set Reloading Weapon. Also setzen wir einen Bullen rein, damit es neu geladen wird oder nicht, es tatsächlich auf dem Server laufen zu lassen. Tu das einfach. Nicht auf dem Server laufen, das war ein Fehler, nur die Waffe wird neu geladen Normales Ereignis, lass uns hier unten einen Server namens Set is Reloading Weapon einrichten Lass uns das auf dem Server laufen lassen, zuverlässig. Lass uns hier ein neues Bulling namens Reloading machen und weitermachen und reinklicken Nehmen wir das und setzen den Nachladebullen hier drüben ein. Denken Sie daran, es so einzustellen, dass es repliziert wird, da wir auf dem Server laufen und der Client wissen muss , ob wir neu laden Hier drüben müssen wir Server Event Set is Reloading Weapon ausführen Server Event Set is Reloading Lass uns weitermachen und das auch hier verbinden. Okay, also wann immer wir neu laden, wollen wir die Montage für das Neuladen tatsächlich abspielen Lass mich einfach von hier abhauen und eine Abzweigung machen. Und lass uns hier einen Zweig anlegen. Und sagen wir, wenn wir neu laden, wollen wir eine Montage abspielen Und denken Sie an die N-Montage, die wir zum Abspielen eines Multicasts benötigen , weil alle Clients diese visuelle Änderung sehen müssen Das Multicast-Set lädt die Waffe nach. Jetzt möchte ich es einfach den gleichen Namen wie die Hauptfunktionen nennen den gleichen Namen wie die Hauptfunktionen Sie können es benennen, wie Sie wollen, und es über einen zuverlässigen Multicast hier drüben laufen lassen einen zuverlässigen Multicast hier drüben Wir müssen das Netz nehmen, also nicht beide, sondern nur dieses Netz hier. Und du kannst eine Montage schreiben und diese Montage wie zuvor abspielen. Diese Montage zum Abspielen können Sie einfach hier verbinden. Nennen wir es Reload M. Lassen Sie uns diesen Multicast hier oben abspielen Das Set lädt die Waffe nach. Das ist der richtige Dann müssen wir ihm sagen, welche Montage wir abspielen müssen. Ich glaube nicht, dass wir irgendwelche Animationen haben. Denn wenn wir einfach hier raufgehen, nehmen wir eine davon. Diese Struktur hier. Ich füge es nur ein, damit ich es nicht noch einmal schreiben muss Ich kann meine ausgerüstete Waffe nehmen und sie hier einstecken. Okay, hier in der Struktur haben wir nur die Ausrüstungsanimation. Wir haben nicht für jede Waffe eine Nachladeanimation, da jede Waffe realistischerweise ihre eigene Nachladeanimation hat Lassen Sie uns also weitermachen und das der Struktur hinzufügen. Öffnen Sie sie in der Struktur und fügen Sie die Reload-Animation Lassen Sie uns das einrichten, weitermachen und danach suchen und es auswählen, genau wie das obige Lass uns weitermachen und alles speichern. Ich möchte, dass du weitermachst und deine Datentabelle öffnest. Denn hier in der Datentabelle können Sie jetzt eine Reload-Animation schreiben Reload-Animation Ich kann alle meine Ausrüstungsanimationen hierher kopieren. Denn wie ich bereits sagte, habe ich keine separate Ausrüstungsanimation. Aber wie du jetzt für dein eigenes Spiel sehen kannst, kannst du eine Ausrüstungsanimation, eine separate und eine separate Reload-Animation haben eine separate Reload-Animation All das kann sehr gut angepasst werden. Jetzt können Sie rausgehen und auf Datei und Herunterladen, Als CSV herunterladen klicken . Dann können Sie dies hier minimieren und zum Ordner mit den Datentabellen wechseln. Und hier werde ich, genau wie zuvor, meinen alten löschen und diesen neuen umbenennen und ihn dann hierher ziehen, um ihn zu aktualisieren. Jetzt kann ich innerhalb dieser Montage zu meiner Spielerbasis zurückkehren , um zu spielen. Jetzt heißt es ohne Grund Null. Sie müssen nur auf Datei klicken und alle Knoten einfach so aktualisieren. Jetzt kann ich meine Reload-Animation hier haben und du kannst sie einbinden Okay, jetzt haben wir das geklärt und wir müssen auch einstellen, dass das wird neu geladen irgendwann falsch sein soll Lassen Sie uns das wird neu geladen auf False setzen. Und so wie wir das machen, können wir es einfach wieder auf dem Server aufrufen Denken Sie daran, dass Sie, wenn Sie sich in einem Multicast befinden, hier zum Server zurückkehren können Wenn wir das Neuladen abgeschlossen haben, können wir sagen, dass das Server-Set gerade die Waffe nachlädt Wir kehren zum Server zurück und setzen das Neuladen auf „Falsch Wir können es tatsächlich ausprobieren und dann gehen wir raus und kompilieren Und das war's jetzt für dieses Spiel, wir können es momentan nicht wirklich testen, weil wir keine Reload-Funktionalität haben Aber wir werden das tun und wir werden das Nachladen und so weiter hier berechnen. Aber im Moment haben wir die Animation zum Nachladen abgeschlossen und lassen uns weitermachen und kompilieren, alles speichern und mit der nächsten fortfahren 147. 10.18 Nachlade-Waffenfunktionalität: Ordnung, jetzt sind wir also bereit, die Kugeln zu berechnen, wenn wir Und bevor wir das tun, fügen wir einfach hinzu, dass dieses Set hier im Code neu geladen wird Bevor wir weitermachen, denken Sie daran, dass wir diese Sequenz gemacht haben. Wie Sie hier sehen können, und wir schießen die Kugeln ab, ziehen wir jedes Mal, wenn wir schießen, eine Kugel ab Am Ende müssen wir jedoch überprüfen, ob wir mehr Kugeln haben Wenn nicht, müssen wir weitermachen und nachladen. Was wir tun müssen, ist, diese ausgerüstete Waffe zu nehmen und uns daran zu erinnern, dass wir diesen aktuellen MO in mir haben Wir können fragen, ob das gleich Null ist. Wenn das gleich Null ist, lassen Sie mich hier einfach eine Verzweigung erstellen. Wenn das gleich Null ist, nehmen wir das einfach und verbinden es hier. Wenn das gleich Null ist, lassen Sie uns weitermachen und sagen, dass Set neu geladen wird Set is reloading wahr ist, wollen wir immer dann neu laden, wenn wir keine Kugeln mehr haben Lass uns kompilieren. Lass uns auf Play klicken. Und mal sehen, ob es tatsächlich funktioniert. Ich werde hier weitermachen und alle meine Waffen abfeuern. Ich muss vorsichtig sein, weil ich nicht unterschießen will , weil ich dafür keine Bedingungen gestellt habe. Wenn ich auf Null schieße, kannst du sehen, dass es weitergeht und neu geladen wird, und das ist richtig Okay, jetzt wird die Animation abgespielt. Wir müssen die Kugeln jedes Mal berechnen , wenn wir nachladen Also lass uns weitermachen und das tun . Lassen Sie mich diesen Multicast einfach entfernen, weil wir den Code hier brauchen Jetzt musst du wirklich wach sein, weil bei der Berechnung der Kugeln eine Menge Mathematik im Spiel ist bei der Berechnung der Kugeln eine Menge Mathematik im Okay, zuerst müssen wir die ausgerüstete Waffe nehmen, wir müssen herausfinden, welche die ausgerüstete Waffe nehmen, zusätzlichen Kugeln wir haben Denn wenn wir keine zusätzlichen Kugeln haben, macht es nicht wirklich Sinn, nachzuladen Als Erstes möchte ich fragen, ist dieses zusätzliche MO, das wir in dieser Waffe haben, größer oder gleich groß? Jetzt lass mich das hier einfügen. Ist es größer oder gleich dem maximalen MO im Magazin? Warum wir danach fragen , ist, dass wir sagen, das ist die AK, und die AK hat 30 hier im maximalen M im Magazin, wenn wir mehr als das zusätzliche MO haben. Lassen Sie uns jetzt weitermachen und einen Zweig anlegen. Und lass mich das einfach hier unten verbinden. Wenn das stimmt, können wir einfach weitermachen und diese ausgerüstete Waffe nehmen und den aktuellen MO und das Magazin besorgen. Und stellen Sie das aktuelle MO ein, und wir können es einfach auf das setzen , was hier als M in der steht, falls das Sinn macht. hier haben wir herausgefunden , dass unser zusätzliches MO größer oder gleich dem ist , was wir im Magazin haben können. Das bedeutet, dass das Magazin voll sein kann. Wir füllen hier einfach das ganze Magazin auf, einfach so. Aber bevor wir das tun, muss ich auch berechnen, was wir in unserem aktuellen MO noch übrig haben , weil wir von hier subtrahieren müssen Nehmen wir dieses zusätzliche MO und sagen wir Minus. Was müssen wir von hier abziehen? Wir müssen abziehen, wie viel wir gerade in unserem Magazin haben Wenn ich in diesem einen Jahr nur nach dem aktuellen MO in mag suche, müssen wir das maximale MO in mag vom aktuellen M-Max subtrahieren das maximale MO in mag vom aktuellen M-Max Geben wir uns einfach ein Beispiel, damit es nicht zu verwirrend ist Es mag sehr verwirrend klingen. Nehmen wir zum Beispiel an, mein maximaler MO in der AK ist derzeit 30. Im Moment subtrahiere ich. Nehmen wir an, ich habe noch 27 MO übrig. In meinem aktuellen Magazin habe ich nur drei Kugeln abgefeuert. Jetzt habe ich 27 hier. 30, das ist das Maximum -27, das ist 33. Ich ziehe drei von meinem zusätzlichen MO ab, wenn ich 90 als zusätzliches MO gehabt hätte. Jetzt habe ich 87, weil ich nur drei Kugeln abgeschossen Jetzt macht die Mathematik hier Sinn. Jetzt dieser Wert, ich muss hier mein aktuelles zusätzliches M einstellen. Anstatt das zu kopieren und einzufügen. Ich werde eigentlich nur von hier aus zeichnen und zusätzliches M sagen . Wir können das auf diesen Wert setzen Machen wir weiter und machen das. Und lassen Sie uns weitermachen und auch das verbinden. Ich werde einige Umleitungsnotizen machen und Ihnen das noch einmal erklären, nur um sicherzugehen, dass wir auf derselben Wellenlänge sind Ordnung. Also, jetzt habe ich mir Notizen gemacht und das organisiert. Eigentlich müssen wir es etwas erweitern , weil ich sehe, dass wir später Geld bekommen, weil wir fragen, ob das aktuelle zusätzliche MO größer oder gleich dem MO ist Und wenn das der Fall ist, setzen wir es, wir setzen das aktuelle MO auf das maximale MO , weil wir es uns leisten können, wir haben genug Kugeln Wenn wir jedoch etwas haben, nehmen wir an, wir haben noch fünf Kugeln übrig Also wenn ich einfach die Benutzeroberfläche öffne , damit wir es viel besser verstehen können Nehmen wir an, ich habe noch fünf Kugeln übrig. Ich habe noch etwa zehn Kugeln übrig. Es wird es nicht auf 15 setzen, es wird hier tatsächlich falsch sein Was wir tun müssen, ist, nach dem aktuellen zusätzlichen MO zu fragen , das wir haben, wir müssen das hier hinzufügen, plus den aktuellen. Wir müssen beide hinzufügen. Wir bekommen das aktuelle M plus diese zusammen. Wenn diese größer oder gleich dem Maximum M in max sind, ist es jetzt richtig und wir bekommen damit kein Ich weiß, dass du das vielleicht verstehen musst , genauso wie du vielleicht einfach dieses Video posten und versuchen musst dieses Video posten und versuchen die Logik dahinter zu verstehen Es ist nur reine Mathematik. Du kannst es sogar auf Papier schreiben. Es ist viel besser. Manchmal, wenn ich Logik wie diese erstelle, schreibe ich sie auf Papier, sie liegt vor mir, sie ist viel einfacher zu verstehen. Wir fragen im Grunde nur, ob das aktuelle zusätzliche MO, das Sie haben, plus das aktuelle MO in mag, größer oder gleich dem maximalen MO ist? Wenn das so ist, wäre das falsch, denn die Summe wäre nur 15 und das Maximum auf Mac wäre 30. Es wäre also falsch. Und so etwas würden wir hier machen. In Ordnung, also jetzt ist das richtig. Und denken wir auch daran, wenn wir hier subtrahieren und das aktuelle zusätzliche MO wieder einstellen, nehmen wir eine Klammer und stellen sicher, dass sie nicht unter Null fällt Und lassen Sie uns es einfach hier verbinden. Das Maximum ist nur dieses zusätzliche MO. Wir können dieses einfach nehmen oder du kannst es einfach kopieren und einfügen , damit es viel besser und lesbarer aussieht wie hier. Jetzt, wo es falsch ist und ich werde es einfach ein bisschen wegnehmen, damit es viel besser aussieht. Nun, wenn es falsch ist, müssen wir diese Waffe nehmen und wir müssen das aktuelle MO in Meg ermitteln und wir müssen diesen Wert festlegen. Wir müssen es auf einen Wert setzen, sagen wir, es war wie in diesem Jahr der Fall. Wir haben hier noch fünf Kugeln übrig, wir haben zehn Kugeln hier. Wir müssen fünf plus zehn sagen, das sind 15. Und wir müssen das auf die aktuelle Anzahl an Kugeln einstellen. Wir müssen das eigentlich einfach hier aufgreifen. Wir müssen die aktuelle zusätzliche MO angeben, die wir haben, was zum Beispiel zehn ist, plus die fünf, die 15 sind. Und wir müssen es hier aufstellen. Und das immer dann, wenn wir keine Kugeln mehr haben. Das zusätzliche M plus das aktuelle MO im Magazin, sie sind nicht einmal größer als das maximale MO im Magazin Dann müssen wir nur noch alle Kugeln nehmen, sie zusammensetzen und sie in unser aktuelles Magazin legen in unser aktuelles Magazin Etwas in der Art hier. Okay, jetzt ist das erledigt. Wir müssen auch sicherstellen, dass die zusätzliche Menge an Kugeln hier auf Null gesetzt wird Nun, da wir alle Kugeln im Magazin haben, müssen wir das nehmen, wir müssen extra sagen Wir müssen sagen, dass das aktuelle zusätzliche MO auf Null gesetzt werden soll. Jetzt müssen wir auch daran denken, die Benutzeroberfläche zu aktualisieren. Lass mich einfach alles speichern und sagen wir CL Update I. Lass uns diesen hier verbinden und lass uns diesen hier verbinden. Nach diesen Ereignissen müssen wir die Benutzeroberfläche aktualisieren. Lass mich einfach auf diesen doppelklicken. Lass es hier viel besser aussehen. können wir jetzt nehmen, nein, ich werde das einfach hier abschreiben. Jetzt können wir sie anschließen, lassen Sie uns sie hier anders anschließen. Zuerst das aktuelle MO, in mag und extra MO. Achte einfach darauf, was du hier einsteckst. Lassen Sie uns jetzt kompilieren und speichern, und lassen Sie uns es jetzt ausprobieren Der Grund, warum ich die Logik hier in The Falls geschrieben habe, ist, dass ich warte , bis diese Animation fertig ist, bevor wir dem Spieler erlauben, die Anzahl der Kugeln richtig einzustellen Weil ich dem Spieler während der Animation eigentlich keine Kugeln geben möchte Spieler während der Animation eigentlich keine Kugeln Ich möchte warten, bis die Animation fertig ist. Wenn es fällt, wird es diesen Code hier unten abspielen. Okay, Sie können also sehen, dass Sie für diesen Code hier ein bisschen wach sein müssen. Auch hier können Sie einfach eine Pause einlegen, ihn sich ansehen, Papier und Stift nehmen und die Werte einfach aufschreiben. Versuche zu rechnen und zu sehen, ob es für dich Sinn macht. Lass uns weitermachen und auf Play klicken. Spiele als Terrorist. Und lassen Sie mich zum Beispiel die M Four nehmen. Lassen Sie mich einfach den Viewport maximieren. Wenn ich jetzt weitermache und alle meine Kugeln abschieße, kann ich immer noch schießen, wenn ich sie treffe Sie können sehen, dass es immer noch nervt. Ich kann schießen, wann immer ich die Maus halte. Wir haben diese Bedingung noch nicht erfüllt. Wir werden es später machen. Aber wenn ich jetzt meine Maus loslasse, werde ich neu laden und es wird die Kugeln tatsächlich korrekt berechnen , wenn ich einfach so weitermache Und es wird wieder neu geladen. Ich werde den letzten hier machen. Ich werde nochmal neu laden und so sieht es aus Sie können sehen, dass es am Ende hier draußen Fehler gibt. Das liegt daran, dass wir hier nicht wirklich irgendwelche Bedingungen erfüllt haben . Wenn ich hierher zurückgehe und den Code nehmen lasse , den wir mit der Sequenz geschrieben haben. Wenn ich nur die Sequenz hier oben finde, ist das die Sequenz, die wir drehen. Und dann fragen wir hier, ob der aktuelle Mo in Magnitude gleich Null ist. Das ist die einzige Bedingung, nach der wir fragen. Wir müssen einige Bedingungen hinzufügen , damit es nicht so ausfällt. Aber vorerst speichern Sie alles, jetzt ist das korrekt, so sieht der Code aus. Auch hier können Sie es sich gerne noch einmal ansehen, ich weiß, dass es verwirrend ist. Das ist die schwierigste Mathematik wir bisher für das Spiel gemacht haben, aber es ist nicht wirklich schwierig , wenn man es einmal zu Papier gebracht hat Also lasst uns alles speichern und dem nächsten weitermachen 148. 10.19 Aufnahmebedingungen: Ordnung, willkommen zurück. Lassen Sie uns jetzt die Aufnahmebedingungen festlegen, damit wir nicht zufällig schießen wenn wir nachladen und so Also lasst uns hier einfach mit der Schießwaffe beginnen. Ich will nicht immer mit meiner Waffe schießen, wenn ich nachlade. Im Moment können wir die Waffe nicht abfeuern, wenn wir unbewaffnet sind oder wenn wir die Waffe noch ausrüsten Außerdem möchte ich nicht jedes Mal, wenn ich nachlade, mit meiner Waffe schießen wenn ich nachlade, mit meiner Waffe Immer wenn das Nachladen hier falsch ist. Also kein erneutes Laden, wir können weitermachen und eine PIN hinzufügen und sie hier hinzufügen Mach weiter und kompiliere, okay , das ist erledigt Gehen wir nun zu diesem Teil der Sequenz hier über. Ich will nicht schießen, wenn ich keine Kugeln habe. Ich muss es hier schreiben, bevor ich den Effekt spiele und so weiter Ich muss sagen, wenn ich keine Kugeln habe, bin ich nicht daran interessiert, das alles zu spielen Es ist eigentlich genau dasselbe wie dieses. Ich werde das tatsächlich zu einer Funktion machen , da wir das wiederverwenden, zu einer Funktion zusammenfassen und ich werde diese Funktion als außerhalb von MO aufrufen, sie einfach machen, weil wir nur Informationen bekommen Wir stellen nichts ein wenn der aktuelle M Mac Null ist, das heißt, wir haben keine Kugeln mehr Wenn das zum Nachladen ist, wenn du außerhalb von MO bist, dann kannst du weitermachen und Das ergibt Sinn. Das hier oben, fügen wir es ein. Schreiben wir auf Goldbarren und wählen es aus. Wenn wir nicht außerhalb von MO sind, wollen wir weitermachen und schießen Wenn wir außerhalb von MO sind, wollen wir nicht auch für das Nachladen schießen Nehmen wir das Nachladen und sagen, wenn wir nicht nachladen, wollen wir weitermachen Wenn wir nachladen, wollen wir nicht weitermachen und schießen. Das ist es, was gerade gesagt wird. Lassen Sie mich einfach weitermachen und das alles wegnehmen. Ich glaube, sehr bald das ganze Projekt bereinigen , weil es wieder chaotisch wird , weil wir gerade eine Menge Code schreiben Aber wie Sie hier sehen können, können wir wenn wir nicht nachladen weitermachen und die Waffen hier abschießen, wenn wir MO nicht verlassen haben und Wenn wir die Waffe nachladen, möchte ich diese Waffe eigentlich nicht zweimal nachladen, da es sich um eine Sequenz handelt, wird das nur berücksichtigt Und wenn es hier unten ankommt, berücksichtigt es das nicht Du musst das eigentlich auch hier unten hinzufügen . Wenn Sie nicht neu laden, müssen Sie hier neu laden Wir wollen nicht immer wieder neu laden wenn wir bereits nachladen Und jetzt gibt es noch einen anderen Zustand , wenn ich mit meiner Waffe schieße Ich möchte auch sichergehen, dass ich beim Nachladen tatsächlich zusätzliches MO habe Weil du dir hier zum Beispiel vorstellen kannst, sagen wir, ich habe 15 Kugeln und ich habe keine zusätzlichen Es läuft auch, wenn ich nachlade, wenn ich die Waffen abschieße oder das MO abschieße und es auf Null geht, es wird tatsächlich Ich muss hier fragen, ob ich zusätzliches MO habe. So wie wir das nochmal machen, nehmen wir die Schnellwaffe und sagen, holen wir uns das zusätzliche zusätzliche MO. Wenn das nicht gleich Null ist, gleich das nicht gleich Null ist, dann wollen wir weitermachen und all das machen. Lass mich das einfach hier verbinden und verbinden. Wir stellen nur sicher, dass wir tatsächlich zusätzliches MO haben. Bevor wir neu laden, lassen Sie mich diesen Zusammenbruch einfach noch einmal zu einer Funktion überführen und diese Funktion wieder als zusätzliches MO aufrufen , sie zu einem reinen machen Mach weiter, lass es uns hier hinstellen. Und nimm das auch hier runter. In Ordnung, lass uns weitermachen und kompilieren. Ich glaube, das war es. Lass uns einfach auf Play klicken. Und vielleicht fehlt uns etwas. Wir müssen das Spiel ausprobieren und auf Play klicken. Jetzt plündere ich meine vier und schieße mit meiner Waffe Wie Sie hier sehen können, wenn ich nur die Maus gedrückt halte, wird sie tatsächlich nicht mehr schießen, sie wird aufhören zu schießen Also halte ich meine Maus. Es wird automatisch aufhören zu schießen. Ich schieße hier einfach weiter, ohne Kugeln. Das macht es gerade auch. Aus irgendeinem Grund wird es tatsächlich nicht richtig berechnet. Wenn ich meine Waffe unter 20 Kugeln schieße, fängt sie tatsächlich an zu hören. Ich glaube, das hat es in der vorherigen Lektion auch getan. Lassen Sie mich einen Blick darauf werfen , was hier falsch läuft. Es muss irgendwas hier oben sein, wenn wir die Kugel tatsächlich abziehen Denn wann immer wir schießen, tut es das. Es ist nicht hier, weil wir es durchgehen und die Waffe abfeuern. Ich glaube, es ist etwas da drinnen. Wir nehmen das MO mit minus eins, weil wir hier eines geschrieben haben , das hier festgelegt wird. Und setzen Sie es auf das aktuelle MO in seiner Einstellung auf die richtige Variable hier drüben. Dieser ist der falsche. Wir setzen das Maximum auf das aktuelle zusätzliche MO. Wenn Ihr aktuelles zusätzliches MO eins ist, wird dieses tatsächlich automatisch auf eins gesetzt. Hier liegt ein Fehler vor. Was wir tun müssen, lassen Sie uns das, ja, nehmen wir das hier, lassen Sie uns sagen, Namensvariable. Lass es uns herbringen. Holen wir uns Waffeninformationen. Holen Sie sich die Waffeninformationen wie zuvor. Brechen Sie es auf und das ist das aktuelle MO. Und lassen Sie uns das Max MO und das Magazin nehmen und es stattdessen hier platzieren. Lass uns nicht diesen benutzen, lass uns stattdessen diesen da drüben benutzen. Lass mich hier klicken und nicht verbundene Pins verstecken. Und das sollte perfekt funktionieren. Jetzt sollte der Fehler behoben sein. Ich glaube, es ist auch in der vorherigen Lektion passiert. Klicken wir also auf Play und machen wir das jetzt. Ich werde einfach alle Kugeln abfeuern. Und ich zeige dir jetzt, dass ich die letzten Kugeln abschieße , nachlade und schieße Sie können sehen, dass es jetzt richtig ist. Ich kann nicht mehr schießen, wenn ich keine Kugeln mehr habe und alles perfekt funktioniert Jetzt muss ich das auch für den Kunden überprüfen. Denken Sie daran, dass Sie den Client überprüfen müssen Obwohl er auf dem Server funktioniert, ist er möglicherweise falsch. Wenn ich die Waffe jetzt fallen lasse und sie aufhebe, kannst du sehen, dass sie tatsächlich die richtige Anzahl an Kugeln hat Wenn ich noch zehn Kugeln übrig habe, neun, kann ich sie fallen lassen Ich kann es abholen. Es hat die richtige Anzahl an Kugeln Wenn es jetzt jemand anderes plündern will , muss ich es auch mit dem Server testen Wenn ich einfach den Server hier hochlade und beide hier als Server minimiere, kann ich die Waffe fallen lassen, wenn der Client verschwindet. Hier als Server werde ich es abholen. Und wenn ich das maximiere, ist es tatsächlich die richtige Anzahl an Kugeln Wenn ich als Server schieße, jetzt noch vier Kugeln übrig Hier als Kunde kann ich rausgehen und es abholen und es vier Kugeln übrig. Okay. Das ist richtig. Alles scheint perfekt zu funktionieren. Und das tut es auch für die AK. Versuchen wir auch hier ein paar Kugeln abzufeuern. Alles funktioniert gut. Okay, wir haben die ganze Box repariert. Im Moment funktioniert alles richtig. Lassen Sie uns in der nächsten Lektion das Neuladen mit der Tastaturtaste 149. 10.20 Nachladewaffe mit Tastaturtaste: Ordnung, also lasst uns weitermachen und mit der Tastatur nachladen Gehen wir also wie zuvor weiter, gehen wir zum Player und zur Eingabe Und klicken Sie hier mit der rechten Maustaste, gehen Sie zur Eingabe machen Sie eine neue Eingabeaktion. Nennen wir das eine Nachladewaffe. Lassen Sie uns das öffnen, eigentlich nur den Mapping-Kontext Lassen Sie uns ein neues Mapping hinzufügen. Gehen Sie nach unten, wählen Sie die Waffe zum Nachladen aus und drücken Sie die R-Taste Ich werde mit meiner R-Taste auf der Tastatur neu laden und dann hier drücken Wir spielen das nur einmal und es wird viel besser optimiert Okay, hier drüben mit dem Set wird die Waffe nachgeladen. Ich schaffe es einfach hier oben. Ich lade die Waffe neu und mache das als meine Eingabeaktion, wenn wir einfach die R-Taste drücken. Wir wollen nur sagen, dass das Set neu geladen wird, um wahr zu sein Wir wollen einfach jedes Mal neu laden, wenn wir die Taste drücken. Denken Sie jedoch daran, dass Sie einige Bedingungen benötigen , da Sie nicht einfach neu laden möchten Denn wenn ich gerade spiele, kann ich einfach auf R drücken. Jetzt nehmen wir zum Beispiel das Ich kann einfach R drücken, obwohl ich volle Kugeln habe. Ich kann R drücken. Das ergibt keinen Sinn. Ich kann tatsächlich Re drücken. Immer wenn wir keine Waffe dabei haben, kann ich auch R drücken und das gibt uns Bucky. Das wollen wir nicht tun Zuallererst müssen wir diese ausgerüstete Waffe nehmen und sicherstellen, dass sie nicht gleich bewaffnet ist. Lassen Sie uns von hier wegziehen und sagen nicht gleich M und wir stellen sicher, dass es nicht gleich D ist. Okay, das ist das Erste. Lassen Sie uns einfach von hier wegziehen und Goldbarren sagen , weil wir ein paar davon hinzufügen müssen Die nächste Sache ist, wenn wir schon beim Nachladen sind, wollen wir nicht auf Reload drücken, also lasst uns unser Nachladebarren suchen und hier N bully sagen Wenn wir nicht nachladen, können wir hier nachladen. Okay, lassen Sie uns noch einmal eine neue PIN hinzufügen. Das Letzte, wonach ich fragen möchte, ist, ob ich volle Kugeln habe Nehmen wir zum Beispiel an, ich habe 30 von 90, zum Beispiel hier, wie beim AK, möchte ich nicht neu laden, weil ich volle Kugeln in meinem Mac habe Sagen wir einfach, nehmen diese ausgerüstete Waffe und holen uns das aktuelle M. Lassen Sie uns die Struktur einfach kopieren und einfügen Ich will es nicht noch einmal schreiben. Fügen wir diese Struktur für die Waffe hier ein. Lass mich einfach die ausgerüstete Waffe daran anschließen. Jetzt werden wir fragen, ist das aktuelle MO in Magnitude, entspricht das dem MO in Ma? Denn wenn sie gleich sind, bedeutet das, dass wir den vollen MO in unserer Ma haben und wir nicht wirklich nachladen müssen Ich sage, es ist gleichwertig. Wenn das aktuelle MO nicht dem maximalen MO und mir entspricht , können wir weitermachen und nachladen Sonst werden wir nicht nachladen. Okay, lassen Sie mich es einfach hinter all dem platzieren und lassen Sie uns das mit einem Zweig verbinden und lassen Sie uns diese miteinander verbinden Jetzt fragen wir, wir sagen, wenn wir es nicht tun, wenn wir nicht nachladen und wenn wir nicht schon die volle Menge an Kugeln im aktuellen MO haben und ich, dann können wir weitermachen und Lass uns versuchen, das zu tun. Lass uns kompilieren, lass uns alles speichern und lass uns auf Plate klicken. Wenn ich auf meiner Tastatur auf R klicke, können wir sehen, dass ich tatsächlich eine Fehlermeldung erhalte. Lassen Sie mich einen Blick darauf werfen, was hier gerade passiert . Ich will damit nur sagen , dass die Ära diese ist. Wenn ich hier nur Spam R schreibe und kündige, wird mir das tatsächlich die Ära zeigen, in der die ausgerüstete Waffe nicht gültig ist. Eigentlich brauche ich das zuerst, um gültig zu sein, lass mich das alles einfach ziehen. Lass mich die ausgerüstete Waffe nehmen, rechten Maustaste klicken und sie in ein validiertes Get umwandeln. Lass mich das verbinden. Bevor wir das alles tun, stellen wir sicher, dass die Waffe gültig ist , denn wenn wir noch nichts geplündert haben und R drücken, ist sie nicht gültig Jetzt bekommen wir diesen Bug nicht mehr. Gehen wir jetzt zu einer der Waffen. Wenn ich jetzt R drücke , werde ich neu laden, weil ich volles MO habe Aber wenn ich einen schieße und nachlade, kann ich einfach so nachladen Und es wird den MO korrekt berechnen . Jetzt können Sie sehen, dass dort 39 stehen sollte, das ist richtig. Und wenn ich vier davon abschieße und nachlade, müsste ich 35 als zusätzliches MO angeben. Wenn ich jetzt alle meine Kugeln abschieße, sagen wir mal, ob es richtig berechnet wird Lassen Sie mich jetzt einfach drei davon abschießen und nachladen. Da müsste 12 stehen, das ist richtig. Nehmen wir an, ich lade hier neu , wann immer ich fünf habe. Sag einfach 170 Das ist auch richtig. Wenn ich sie jetzt alle erschieße, wird es nicht nachgeladen Und wenn ich auf R klicke, wird es jetzt neu geladen Es gibt diese letzte Bedingung , nach der wir suchen müssen. Wir müssen überprüfen, ob wir noch mehr Mol haben. Dies hat auch zusätzliche Mo, bevor wir nachladen können. Jetzt sind alle Boxen repariert. Jetzt können wir auch nicht nachladen, wenn wir keine Kugeln in den zusätzlichen Magazinen haben Ich werde das ein bisschen nach unten verschieben. Ich werde das etwas später neu organisieren , wenn wir mit dem Abschnitt fertig sind Lassen Sie uns also alles speichern und mit dem nächsten fortfahren 150. 10.21 Nachladen von Waffen beim Wechseln von Waffen: Okay, die Sache ist im Moment dass wir auch nachladen wollen, wann immer wir gerade dabei sind, die Waffe zu wechseln Jetzt kannst du hier sehen, ob ich keine Kugeln habe und ich meine Waffe wechsle Lass mich einfach schnell eine Pistole nehmen und Jetzt kannst du sehen, ob ich zurückwechsle Das ist die Aufnahme-Animation Im Moment ist es nicht das Reload. Ich versuche zu schießen und ich kann nicht schießen. Ich versuche neu zu laden und kann nicht nachladen. Das liegt daran, dass wir hier, wenn wir die Waffe nachladen, das Nachladen bei jedem Nachladen auf „true“ einstellen auf „true“ einstellen Wenn wir die Animation jedoch abbrechen, spielen wir die Animationsmontage spielen wir Tatsächlich sind wir jedoch nicht dabei, sie fertigzustellen. Dies wird niemals auf falsch gesetzt werden. Deshalb nervt es tatsächlich irgendwie. Wenn wir die Waffe wechseln, müssen wir sie auf False setzen und automatisch nachladen Das können wir tatsächlich mit der ausgerüsteten Waffe machen. Immer wenn wir eine Waffe erbeuten, stellen wir fest, dass es sich bei diesem Set um Ausrüstungswaffe handelt. Das tun wir auch immer dann, wenn wir es manuell ausgerüstet haben. heben es nicht nur auf, wir machen dieses Set auch zu einer ausgerüsteten Waffe. Denkt daran, dass wir das hier unten gemacht haben. Lass mich einfach hier klicken, Unverbundene Pins ausblenden . Wir machen es hier. Immer wenn wir die ausgerüstete Waffe einsetzen und mit der Ausrüstung fertig Lassen Sie uns weitermachen und das automatische Nachladen durchführen, wann immer wir keine mehr Sagen wir einfach, das Nachladen ist falsch, weil wir es auf Falsch setzen müssen , wenn der Spieler während der Nachladeanimation tatsächlich die Waffe wechselt während der Nachladeanimation tatsächlich die Waffe Immer wenn wir mit dem Ausrüsten der Waffe fertig sind, setzen wir das Nachladen automatisch auf „Falsch Wir werden die Waffe auch nachladen. Das Set wird neu geladen. Wann immer wir kein MO mehr haben, müssen wir überprüfen der Spieler kein MO mehr hat und ob er zusätzliches MO hat Denn wenn du kein zusätzliches MO hast, macht es keinen Sinn, neu zu laden Wir brauchen die beiden und wir müssen auch eine Filiale gründen. Danach können wir weitermachen und nachladen. Vorher können wir nicht neu laden, wir müssen das Neuladen auf true setzen Wenn wir das nicht haben, werden wir nicht neu laden oder etwas anderes tun, stellen Sie einfach sicher, dass das Nachladen auf „Fällt“ eingestellt ist Denn wenn du es hier durch das Neuladen unterbrichst, wenn du die Montage unterbrichst, wirst du das nie auf Stürze setzen und dein Code wird Jetzt ist das behoben, lass es uns ausprobieren. Versuchen wir, hier als Terrorist zu spielen. Ich nehme die vier und schieße, wenn ich jetzt die Waffe wechsle. Denken Sie jetzt daran, dass die erste Animation, die abgespielt wird, die Ausrüstungsanimation ist. Nicht das Neuladen, dann muss es einfach so neu geladen werden. Lädt jetzt automatisch neu, wenn ich beim Umschalten keine Kugeln mehr habe Okay, wie Sie sehen können, lade ich jetzt neu. Ich wechsle die Waffe und ich schalte sie zurück. Jetzt kann ich R drücken und es wird tatsächlich neu geladen. Es stürzt nicht ab, genau wie zuvor. Lass es uns ausprobieren. Lass es uns nochmal versuchen. Wenn wir das getan haben, haben wir keine Kugeln und ich wechsle die Waffen, es sollte nicht nachgeladen werden und es wird nicht Jetzt funktioniert alles perfekt. 151. 10.22 Hinzufügen von Pistolenschießen: Bisher haben wir mit dem Gewehr gearbeitet und jetzt machen wir weiter und machen jetzt das Pistolenschießen Das ist sehr einfach, weil wir das Setup bereits abgeschlossen haben Gehen wir zur Spielerbasis hier drinnen. Was wir gerade hier mit der Waffe machen, wenn wir mit der Waffe schießen , wir einfach weiter und spielen das, der Timer gibt den Code ab und wir feuern das Gewehr Wenn wir jetzt eine Pistole haben , die wir abfeuern wollen, wollen wir diesen Timer nicht weil wir das alles nicht wiederholen wollen Wir wollen nur einen Schuss abfeuern, weil es eine Pistole ist. Wenn Sie eine automatische Pistole haben, können Sie dieses System natürlich einfach wieder verwenden , weil es eine automatische Pistole ist Es ist jedoch nur eine Pistole und ich möchte nur eine Kugel abfeuern Ich möchte diesen Timer nicht laufen lassen. Was wir hier tun können, ist, dass wir von diesem hier aus den Waffentyp nehmen können. Wir haben bereits den Waffentyp. Sie können von hier aus ziehen und sagen, Aufzählung einschalten Wir können sehen, mit welchem Waffentyp wir gerade schießen Du kannst rausgehen und dich verbinden. Wenn wir mit einem Gewehr schießen, wollen wir diesen Timer spielen Wenn wir mit einer Pistole schießen, wollen wir nichts tun, denn denken Sie daran, dass wir bereits eine Kugel abfeuern Wir führen diesen ganzen Code bereits hier aus. Wir führen das alles hier bereits mit diesem ersten Waffenschuss durch, weil wir es hier genannt haben. Eigentlich bist du fertig, glaube ich . Lass uns auf Play klicken. Das war also sehr einfach , wenn wir nur darauf klicken Lass es uns hier für den Kunden versuchen. Jetzt kann ich hier sehen, ich kann nicht mehr schießen. Ich schieße nur eine Kugel ab. Ich glaube, das ist es. Weil wir das hier einstellen, können wir wieder schießen. Wir schließen diesen. Wir machen diesen Code einmal und immer, wenn wir eine Kugel abfeuern, machen wir eigentlich nicht mehr. Das liegt daran, dass wir hier, wenn er falsch ist, daran denken, dass wir die Schießwaffe bereits auf falsch eingestellt haben. Warum macht es wieder diesen Schuss? Versuche es selbst zu beantworten, wenn du kannst. Ohne meine Hilfe. Jetzt kann ich dir die Antwort geben. Das Problem ist momentan, dass wir diesen Timer nie überschreiten. Dieser wird niemals gültig sein. Hier. Wir fragen, ist das gültig? Das wird falsch sein, weil wir diesen Timer noch nie ausgeführt haben. die Pistole vom Wasserfall hierher fahren lassen, müssen Sie sie anschließen, um wieder schießen zu können Und ich werde mir ein paar Mirarte-Notizen machen und jetzt sollte es funktionieren. Wenn ich jetzt kompiliere und auf Play klicke und erneut Terrorist auswähle und meine Pistole in die Hand nehme Jetzt kannst du sehen, dass ich meine Pistole tatsächlich problemlos abfeuern kann und alles funktioniert wie es soll 152. 10.23 Stoppen von Schuss-VFX beim Waffenwechsel: Aber jetzt haben wir ein Problem. Wenn ich zum Beispiel als Server spiele , lassen Sie uns eigentlich als Client spielen. Wenn ich als Client spiele, kannst du sehen, versuche mich hier auf dem Server anzusehen. Du kannst hier sehen, wann ich schieße und die Waffe wechsle. Wenn ich einfach schieße und die Waffe wechsle, kann ich tatsächlich mit der Waffe schießen, die immer noch auf dem Boden liegt. Und der Schnauzenblitz ist neben meinem Bein. Und ich sehe, es sieht sehr komisch aus. Cat, schieß auf meine Waffe und zieh dich um und es sieht so aus und es ist alles wie abgehört Eigentlich müssen wir jedes Mal aufhören zu schießen, wenn wir die Waffe wechseln, weil wir das nicht wollen Lass uns weitermachen und es schließen. Das Erste, was ich jetzt hier mit der heißen Waffe machen möchte , ist, dass wir die heiße Waffe abschalten wann immer wir die Maustaste loslassen Ich möchte es jedoch auch stornieren, wenn das nicht der Fall ist Immer wenn wir eine neue Waffe nachladen oder ausrüsten oder wir in den unbewaffneten Zustand übergehen, möchte ich eigentlich Lass uns diesen kopieren. Fügen Sie es ein. Lass es uns mit diesem verbinden. Lass mich das ein bisschen wegschieben. Und hier ist es. Wir stornieren die Schusswaffe , wann immer eine davon nicht stimmt Wir können einfach weitermachen und auf Play klicken und sehen, wie sie aussieht Auch hier spiele ich als Kunde und werde hier auf meiner großen Leinwand nachschauen , wie es aussieht Wenn ich also einfach schieße und wechsle, hört es jetzt auf. Sie können jedoch sehen, dass immer noch ein Mündungsblitz abgespielt Wenn ich wechsle, kannst du es am Boden sehen. Es registriert sich nicht zu schnell. Wenn ich schieße und wechsle, kannst du sehen, dass es immer noch läuft, diese eine Schnauze blinkt auf dem Boden , die im Spiel immer noch fehlerhaft aussieht Also müssen wir das reparieren. Okay, lass es uns hier machen. Wenn wir den Schnauzenblitz finden, werde ich das alles nach diesem Abschnitt reinigen Wir müssen das sauber haben, bevor wir weitermachen, damit es einfacher ist , mit dem Mündungsblitz zu arbeiten . Flash ist hier unten, wo ich auch den Soundeffekt spiele Hier für den Muzzle Flash schreibe ich tatsächlich click and promote diesen Emitter, schreibe ich tatsächlich click and den wir erstellen , zu einer Variablen und lass uns ihn Muzzle Emitter nennen Lassen Sie uns das hier wieder verbinden. Ich spiele einfach den Sound ab, nur um zu sehen, wie es auch mit dem Sound ist Lassen Sie uns kompilieren, okay, jetzt haben wir diesen Muzzle Flash Jetzt müssen wir diesen Muzzle Flash irgendwann beenden. Wir müssen einen früh im Code finden. Wann können wir diesen Muzzle-Blitz früh im Code löschen diesen Muzzle-Blitz früh im , um ihn zu einem Irrenbuch zu machen Vielleicht, wenn wir die Waffe ausrüsten. Wenn ich einfach hier raufgehe und wir versuchen, hier eine Ausrüstungswaffe zu finden, wenn wir hier die Waffe wechseln, tun wir das nicht wirklich Denn hier nach der ausgerüsteten Waffe versuchst du, im Inventar nach der Waffe zu suchen. Wenn du sie nicht im Inventar hast, wenn das falsch ist, tust du eigentlich nichts. Es macht nicht wirklich Sinn, den Mündungsblitz zu beenden , wenn du nichts im Inventar hast und du die Waffe hier in der Quip-Waffe nicht wechselst Waffe hier in der Quip-Waffe Ich denke, ich werde es hier immer dann tun, wenn ich die Waffe tatsächlich in meinem Inventar gefunden , weil mein Charakter jetzt hier zu einer anderen Waffe wechselt zu einer anderen Waffe Ich möchte meinen Muzzle Flash Emitter nehmen und werde mit der rechten Maustaste klicken und „In ein validiertes Get umwandeln“ sagen Dann werde ich ihn hier verbinden. Wenn es gültig ist, lassen Sie mich einfach den ganzen Code etwas wegschieben , damit ich hier arbeiten kann. Wann immer es gültig ist, ziehe ich mit der Maus und sage Komponenten zerstören, Komponente zerstören und dann weitermachen. Wenn es jedoch nicht gültig ist, möchte ich einfach weitermachen. Ich möchte nichts zerstören. Wenn es nicht gültig ist, fahren Sie einfach fort und machen Sie weiter, was Sie zuvor getan haben. Lass uns weitermachen und uns hier das Fleisch der Schnauze ansehen. Ich werde das hier hinnehmen. Bevor ich das mache, können wir hier eigentlich auch sagen , dass du das nicht tun kannst wann immer du die Waffe ausrüstest Wann immer du sie hier ausrüstest. Wenn wir sagen, Waffe ausrüsten heißt Waffe ausrüsten, müssen wir auch aufhören zu schießen Wenn ich nur diese Waffe nehme, wenn ich sie hier finde, diese Und ich kann es nehmen und hier platzieren. Und nochmal, richtig, nicht reinziehen und ich kann es verbinden. Wenn Sie die Waffe nicht auch ausrüsten , können Sie weitermachen und schießen Ich kopiere das alles und füge es direkt vor dem Sender Ich werde tatsächlich, bevor ich das alles mache, überprüfen, ob du das noch kannst. In Ordnung. Was wir hier auch tun müssen, glaube ich. Gehen wir mit der Waffe, die wir im Inventar gefunden haben, hierher. Denn wenn du eine Waffe im Inventar findest, willst du hier nicht mehr den Muzzle Flash spielen Wir können auch nachschauen, bevor wir den Emitter spielen , und wir können das vermeiden Wir können diese Waffe, die wir im Inventar gefunden haben, nehmen und sie hier abholen. Außerdem habe ich es so eingestellt, dass es repliziert wird. Es wurde nicht repliziert. Ich habe es so eingestellt, dass es repliziert wird, weil wir uns jetzt auf dem Client befinden, wir sind im Multicast, und dieser wird auch vom Client verwendet Sie müssen die Variable replizieren damit der Client weiß, wovon wir sprechen Lassen Sie mich einfach Goldbarren schreiben, wann immer es nicht im Inventar gefunden wird, können wir weitermachen und diesen Emitter erschießen oder spielen, er im Inventar gefunden wird Ich denke, das ist ein Lebensretter für uns, weil es immer früh spielt, wenn wir die Waffe wechseln Das ist die erste Variable , die geändert wird. Sie erkennt das früh und spielt den Mündungsblitz nicht Hoffentlich müssen wir ständig testen, weil wir es nicht wirklich wissen, bevor wir testen Lasst uns jetzt als Server spielen, eigentlich lasst uns als Client spielen Lassen Sie mich als Kunde hier oben spielen. Jetzt werde ich nochmal hier auf meinem Server nachschauen. Wenn ich als Kunde fotografiere und wechsle, habe ich das ein paar Mal versucht, das war's. Es gibt eine Menge Kontrollen , die wir durchführen. Dies ist notwendig, um diesen Bug-Effekt nicht auszuspielen. Jetzt wirkt es sich nicht wirklich auf das Spiel aus, aber es wirkt sich immer noch visuell aus. Hat keinen Einfluss auf den Schaden oder so , weil das eigentlich nicht gespielt wird. Das wird früh gestoppt. Wir schaden dem Spieler eigentlich nicht. Denken Sie daran, dass wir dem Spieler nach dem Linienrennen Schaden zufügen . Es ist nur ein visueller Bug , den wir beseitigt haben. In Ordnung, lassen Sie uns weitermachen und alles kompilieren. Speichern wir alles und fahren wir mit dem nächsten fort. 153. 10.24 Schießanimation: Jetzt brauchen wir eine Schießanimation , weil der Spieler momentan statisch ist Lassen Sie uns jedes Mal, wenn wir schießen, eine Animation hinzufügen. Gehen wir zu den Assets und Animationen. Und hier sind alle Animationen, die wir zuvor erstellt haben. Wenn du nur nach Schüssen suchst und ich glaube, es heißt tatsächlich Feuer. Wenn man nur nach Feuer sucht, kann man Feuerpistole und Feuergewehr sehen Dies sind die Animationen , mit denen wir jedes Mal , wenn der Spieler mit der Waffe schießt, hinzufügen können , wenn der Spieler mit der Waffe schießt, hinzufügen Für diese beiden nehme ich beide. Ich glaube nicht, dass wir das C brauchen, vielleicht brauchen wir es später. Ich bin mir gerade nicht sicher. Aber lass uns vorerst einfach diese benutzen. Und lassen Sie uns zu denen zurückkehren, wenn wir sie brauchen. Klicken wir mit der rechten Maustaste hier, gehen wir zu Erstellen und erstellen Sie wie zuvor eine Animationsmontage. Für diese beiden hier haben wir jetzt zwei Animationsmontagen erstellt Ich werde sie umbenennen und Montage vom Ende entfernen Am Anfang werde ich es als Präfix bezeichnen, nur um mit unserem aktuellen Code konsistent zu bleiben. Lass das und nenne auch das andere 11. Wenn ich nur danach suche, kann ich mir die Animationsmontagen ansehen. Ich kann zuerst auf die Pistole klicken. Das ist ein Nachladen. Ich klicke auf das Pistolenfeuer, es ist dieses hier Und was wir auch hier tun können, ist, dass Sie den Schlitz auf den Oberkörper ändern müssen, genau wie wir es zuvor getan haben Name des Spielautomaten, so ein Oberkörper. Und lass es uns schließen. Und lassen Sie uns auch das Gewehr öffnen. Ändern Sie es einfach so auf den Oberkörper. Okay, und speichere jetzt alles. Lass es uns schließen. Okay, was wir jetzt tun müssen, wir müssen diese Animation abspielen. Immer wenn wir mit der Waffe schießen, müssen wir sie erneut zu unserer Struktur hinzufügen. Gehen wir zurück zu den Bauplänen. Ich werde dieses Suchwort entfernen, damit wir es sehen können. Ich gehe zu den Gebäuden und öffne die Waffeninformationen. Was wir hier tun können, ist, dass wir für diese eine Variable namens Shoot-Animation hinzufügen können . Jetzt können Sie für jede Waffe eine andere Schießanimation haben . Das ist echt cool. In dieser Spiel-Shooting-Animation ist alles maßgeschneidert. Und ich werde es gleich nach dem Reload oder kurz vor dem Reload haben nach dem Reload oder kurz vor dem Reload Ausrüsten, schießen, nachladen. Okay, lass uns weitermachen und kompilieren oder einfach hier speichern. Öffnen wir unsere Datentabelle. Noch einmal, hier in unserer Datentabelle. Gehen wir noch einmal hier zur Ausrüstungsanimation über. Lassen Sie mich rechts eine neue hinzufügen und diese One-Shoot-Animation nennen. Jetzt können wir das hier im Spiel minimieren. Und lass uns unsere Montage wieder finden. Wenn ich nach einem suche und dieses Feuergewehr nehme , kopiere die Referenz. Und lassen Sie mich zur Datentabelle zurückkehren. Fügen Sie es für AK und M vier ein, das sind die ersten beiden. Dann gehe ich zurück und kopiere die Referenz für die erste Animationsmontage. Referenz kopieren, ich gehe zurück und füge sie für das Pistolenschießen ein. Okay, das war es Lass uns weitermachen und auf Datei klicken, CSV-Datei herunterladen. Lass es uns hier öffnen. Ich werde es wieder umbenennen, genau wie zuvor. Benennen Sie es in T Weapon Info um. Und ich habe schon einen hier, also werde ich diesen tatsächlich kopieren. Lösche es hier und benenne dieses um. Gehen wir jetzt zurück zu unserem Spiel. Gehen wir hier zu den Bauplänen, den Datentabellen. Nochmals, ich werde das hier schließen. Sie können diese Datentabelle hierher ziehen. Und jetzt ist es aktualisiert. Okay, gehen wir jetzt zum Code und programmieren ihn in der Spielerbasis hier drin ein, wann immer wir schießen. Es ist tatsächlich auch hier, wenn wir das alles einfach wegziehen. Also werden wir die Animation zusammen mit dem Mündungsblitz und dem Soundeffekt abspielen mit dem Mündungsblitz und dem Soundeffekt weil es immer noch nur eine Animation ist Und wir müssen es in einem Multicast abspielen , weil alle Spieler diese Animation sehen müssen Nehmen wir wieder das Mesh. Sagen wir noch einmal Montage. Und wir können diese Montage abspielen und alles miteinander verbinden. Und jetzt, was wir hier auch tun können , damit die Montage abgespielt wird. Jetzt haben wir es aus der Datentabelle. Lass mich das alles einfach kopieren. Fügen Sie es hier ein und lassen Sie mich einfach nicht verbundene Stecknadeln für die Waffe verstecken nicht verbundene Stecknadeln für die Waffe Jetzt haben wir nicht wirklich eine Referenz für die Waffe. Das ist nicht die Waffenklasse, das ist eigentlich nur das Waffennetz. kannst du hier sehen. Du erinnerst dich, wenn wir zur heißen Waffe zurückkehren, schauen wir uns hier den Serverschacht an, die Waffe Das ist das Waffennetz. Das ist das Skelettnetz. Denken Sie daran, das ist nicht die Blueprint-Klasse selbst. Dies ist die Blueprint-Klasse. Das ist das Skelettnetz. Und das Skelettnetz ist das wir hier mit der Waffe verbinden. Das ist eigentlich das Skelettnetz. Das ist nicht die Blueprint-Klasse selbst. Wir brauchen die Blueprint-Klausel , weil es nicht wirklich das Skelettnetz ist, das wir hier einfügen . Es ist dieser Sie können also sehen, ob ich es von hier oben ziehe und es hier einstecke, Sie können sehen, dass das zusammenpasst. Was wir hier tun müssen, um es besser zu optimieren. Ich werde es tatsächlich ausschalten, wenn wir auf den Multicast klicken und wenn wir auf das Plus klicken und nach der Waffenbasis suchen Und wir wählen die Waffenbasis aus, wir nennen sie einfach alt, damit ich sie tatsächlich in Waffe umbenennen kann Wir denken daran, zuerst zu kompilieren, bevor Sie das tun können. Jetzt heißt es Weapon, und jetzt können wir es hier verbinden. Jetzt können wir sehen, dass es funktioniert, okay. Jetzt muss das alles wirklich hier sein, weil ich diese Waffenreferenz bereits habe. Jetzt können Sie hier tatsächlich all diese Informationen für diesen V-Effekt abrufen , den Sie hier angeschlossen haben. Denken Sie daran, dass dies das Schießen ist, Sie haben den Soundeffekt beim Schießen und Sie haben den Mündungsblitz Und hier kannst du den Mündungsblitz mit diesem verbinden. Und Sie können den Shooting-Soundeffekt hier mit diesem verbinden Shooting-Soundeffekt hier mit diesem Sie können die Shooting-Animation, die wir gerade erstellt haben, auch hier verbinden . Du brauchst die Waffe auch nicht wirklich , wir können sie von hier bekommen. Wenn du einfach von hier ziehst und nach der Waffenvariablen suchst, ist das das Skelettnetz. Du kannst es auch hier verbinden. Dann kann ich sehen, dass das alles eigentlich nutzlos ist. Also können wir diesen und diesen und diesen entfernen und rausgehen und kompilieren. Wir haben viele Fehler bekommen, weil wir sie jetzt nicht verwenden. Lassen Sie uns weitermachen und das alles löschen. Wir werden das tatsächlich entfernen , indem wir auf die Alt-Taste auf der Tastatur klicken. Und hier klicken, hier klicken, hier klicken. Und ich werde diesen Umleitungsknoten entfernen, diese entfernen, hier klicken, unverbundene Pins ausblenden Jetzt brauchen wir einen Hinweis auf die Waffe. Es ist diese Waffe hier oben. Ich kann vorerst einfach klicken und ziehen. Ich werde es später viel sauberer machen. Also lasst uns vorerst einfach kompilieren. Jetzt ist diese Schusswaffe korrekt. Okay, wir haben jetzt nicht wirklich mehr Referenzen , um sicherzugehen, ob ich mehr Hinweise darauf habe oder nicht. Nur um sicherzugehen, dass ich nicht nervig werde, kann ich schreiben, klicken und Referenzen suchen Und du kannst sehen, dass es entweder hier oder hier ist. Ich habe nicht mehr Referenzen als diese. Okay, jetzt ist also alles gut. Und jetzt haben wir auch die Shooting-Animation angeschlossen. Und ich möchte es nicht abspielen, wenn es fertig ist, wie wir es zuvor gemacht haben. Erinnern Sie sich an die anderen Montagen , die wir zuvor erstellt haben. Zum Beispiel dieser Wir spielen dieses Event hier immer dann ab, wenn wir die Animationsmontage abgeschlossen haben. Nun zur Schießwaffe Ich möchte sie nur spielen und dann meinen Code fortsetzen. Ich möchte nicht warten, bis es fertig ist, bevor ich meinen Effekt hier spiele. Das ist in Ordnung. Lassen Sie uns jetzt alles kompilieren und speichern. Es sollte die Animation abspielen. Wenn wir auf Play klicken, lass mich jetzt einfach auf dem Server spielen und ich wähle Terrorist. Ich gehe hierher und schieße nur eine Kugel ab. Sie können sehen, dass die Animation tatsächlich abgespielt wird. Jetzt haben wir einen Bug. Jetzt, wenn ich nach unten schaue, kannst du sehen, dass die Animation hier in der Mitte des Bildschirms abgespielt wird. Sie können sehen, dass es bei jeder Aufnahme in die Mitte des Bildschirms geht , was sehr seltsam ist und wir müssen das ändern, auch die Animation ist sehr langsam. Ich gehe zu den Assets und suche noch einmal nach Anim One. Ich werde hier die Pistole für die Shooting-Animation für die Preisskala öffnen hier die Pistole für die Shooting-Animation für die Preisskala Also, wie schnell diese Animation laufen wird. Ich werde es auf drei ändern. Ich glaube, ich möchte viel schneller schießen. auch das Gewehr Ich werde auch das Gewehr auf drei Stufen umstellen. Es schießt viel schneller. Okay, jetzt lass es uns reparieren. Eigentlich wirkt sich das auch auf das Reload aus und ich weiß nicht, warum ich es nicht früher bemerkt Ich glaube, ich war damit beschäftigt, nur reden, aufzunehmen und es dir zu zeigen Aber wenn Sie einfach neu laden, sehen Sie, dass dies die Reload-Animation ist, die wir bisher haben Es wird jedoch nicht richtig neu geladen, denn wenn ich nach unten schaue und neu lade, schaut es tatsächlich wieder in die Mitte und lädt neu, genau wie dieses Schießproblem, das wir gerade Schießproblem, das Okay, wir müssen das jetzt beheben. Lass mich einfach weitermachen und den Ton wieder abschalten, nur damit es in diesem Kurs nicht nervt. Lassen Sie mich einfach den Aufnahmeton abschalten und jetzt kompilieren. Lassen Sie uns weitermachen und den Animations-Blueprint öffnen. Weil das Problem gerade da drin ist. Das Problem ist, dass der Animationsplan die Animation des Oberkörpers ist , und zwar geschichtet pro Knochen Wir müssen das eigentlich vor dem Aim Offset abspielen . Denken Sie daran, der Zielversatz ist der Offset, bei dem ich als Spieler mit meiner Waffe und der Bewegung auf und ab schaue . Wir müssen diese Oberkörperanimation vor dem Zielversatz abspielen diese Oberkörperanimation vor dem , damit sie miteinander verschmelzen können. Das ist momentan das Problem, was ich hier tun kann, lass uns hier drüben gehen. Fangen wir gleich hier mit einer Pistole für diese zwischengespeicherte Zustandsmaschine Lassen Sie mich diese Pistolenbewegung vorerst löschen. Lassen Sie mich diese Schicht pro Knochen nehmen und sie hier einfügen. Denken Sie jetzt daran, den Cache der Pistolenzustandsmaschine zu verwenden. Wir haben die State Machine zwischengespeichert. Wenn ich sie finden kann, haben wir diese Zustandsmaschine zwischengespeichert und wir haben auch die Bewegung selbst Wir haben die Zustandsmaschine zwischengespeichert und Bewegung hier zwischengespeichert Wir benutzen gerade die State Machine. Lass es mich auch hier kopieren und einfügen. Das ist nur für die Pistole und das machen wir auch für das Gewehr Lass mich das einfach löschen, zuschneiden und hier einfügen Lassen Sie mich diese Zustandsmaschine für das Gewehr nehmen, denken Sie daran, dass es die Zustandsmaschine Und kopiere es auch hier. Und mach weiter und verbinde es hier. Okay, das war es eigentlich, lass uns das einfach kopieren und einfügen. Lass uns das alles kopieren. Ich werde das hier unten löschen . Ich werde es einfügen. Und ich werde es auch hier verbinden. Lass es uns auch hier oben machen. Lasst uns die Pistole One Pistol State Machine kopieren. Lass es mich hier unten löschen. Lass mich das hier kopieren oder verbinden. Fügen Sie hier auch eine Verbindung ein. Jetzt spielen wir die Layer-Mischung pro Knochen. Bevor wir den Zielversatz spielen, wird das die richtige Lösung sein. Jetzt speichern wir all das in den zwischengespeicherten Pistolenbewegungen und in den Zwischenspeichern der Gewehrbewegung Wir können hier wie zuvor weitermachen, rechten Maustaste klicken und Sie können die Pistolenbewegung verbinden, mit rechten Maustaste klicken und nach dem Cache suchen Nimm die Gewehrbewegung zwischengespeichert und verbinde sie Es ist auch viel sauberer als zuvor und das können sie zusammen machen. Und lassen Sie uns kompilieren und prüfen, ob das funktioniert oder ob wir eine Box haben , um die wir uns kümmern müssen. Lass uns hier als Terrorist spielen klicken. Wenn ich es jetzt zeige, wenn ich nach unten schaue, kannst du sehen, dass es funktioniert. Ich schieße auch hoch. Ich schieße in die Mitte. Es funktioniert auch beim Nachladen. Jetzt können wir tatsächlich nachladen, während wir nach unten schauen. Es muss nicht hier in die Mitte gehen. Wenn ich hochschieße, nachlade, das schaffe ich. Wenn ich nur einen nehme, wenn ich diesen anderen Typen öffne, sehe ich mir den Typen hier an Damit ich die Animation sehen kann. Ich nehme das K, wie Sie hier sehen können, und schieße. Ich kann nachladen, auch wenn ich hier nach oben schaue Oder wenn ich nach unten schaue, kann ich auch nachladen. Ich kann schießen Und du kannst meine Schießanimation sehen. Wenn ich hier in der Nähe bin, können Sie meine Schießanimation sehen. Und das Gleiche hier, wenn ich als Server spiele. Sie schauen hier als Kunde nach. Wenn ich das nur maximiere. Sie können also sehen, dass ich das ein bisschen minimiere. Hier schaue ich mir den Server an und der Server wird gerade gedreht. Das ist es auch, Sie können die Animation der Dreharbeiten sehen. Ich kann auch von hier oben nachladen. Ich kann auch nachladen, während ich nach unten schaue. Jetzt funktioniert es gut und sie verschmelzen miteinander. 154. 10.25 Aus dem Munitions-SFX: In dieser Lektion möchte ich dir zeigen, wie du einen Soundeffekt abspielen kannst , wenn du kein MO mehr hast Immer wenn Sie sich außerhalb von MO befinden, hören Sie dieses Klickgeräusch aus dem Gewehr Sie können versuchen, es selbst umzusetzen, ich glaube, Sie können es, wenn Sie es sich nur genau ansehen Wenn Sie sich jedoch nicht sicher sind, lassen Sie uns weitermachen und es gemeinsam tun. Lass uns weitermachen und den Player öffnen , wann immer er hier speichert. Lass uns die Spielerbasis hier drinnen öffnen. Auch hier müssen wir diesen Multicast verwenden. Wie auch immer, ich werde hier einen Tyrann hinzufügen, der sagt, er hat keine Wann immer wir MO haben, können wir das alles spielen Wenn ich einfach einen Zweig wie diesen hierher ziehe und schreibe, werden wir, wann immer wir MO haben , das alles so abspielen , wie wir es zuvor gemacht haben. Wenn wir jedoch kein Mo haben, möchte ich einen anderen Soundeffekt abspielen. Ich möchte diese Sounddose einfach von hier nehmen und Standort sagen. Welchen Sound möchtest du jetzt spielen? Wir müssen es der Struktur noch einmal hinzufügen. Was den Standort betrifft, so haben wir den Standort bereits. Wir können es einfach hier einstecken und jetzt für die Struktur kompilieren. Lassen Sie uns weitermachen und die Struktur öffnen und eine neue Variable erstellen. Wir können das einfach als M-Sound-Effekt bezeichnen. Lassen Sie uns das in einen Sound ändern, fahren Sie fort und wählen Sie ihn aus. Und mach weiter und speichere. Ich glaube, ich schiebe es einfach an die Stelle, wo es unter dem Schuss-Soundeffekt ist. Alle Soundeffekte sind zusammen. Lass uns alles noch einmal speichern, lass uns die Datentabelle öffnen. Gehen wir hier am Ende nach dem Soundeffekt der Aufnahme nach rechts . Ich klicke mit der rechten Maustaste und füge rechts einen hinzu. Dann können wir sagen, raus aus MSX und hier drinnen, lass uns einfach die Referenz kopieren Im Moment haben wir keine Referenzen , weil wir noch nichts importiert Gehen wir hier zum Audioordner. Öffne die Soundeffekte. Wenn Sie zu den Materialien für die Sache gehen, habe ich für Sie einige Audiodateien beigefügt. Wenn Sie dieses Audio öffnen und ich aus MO aufgenommen habe, wenn ich es nur größer mache aus M K 47, aus MO für eins und aus MO-Pistole Und wähle alle drei aus. Klicken Sie auf sie und ziehen Sie sie in den Inhaltsbrowser. Wählen Sie hier alle drei aus und klicken Sie mit der rechten Maustaste und erstellen Sie mehrere Cues. Ich werde sie noch einmal alle umbenennen, nur um konsistent zu bleiben Wir benennen sie als Präfix für Sound in S C Ich werde das hier auch für die Pistole machen. Das machen wir für den letzten. Der letzte ist der K 47. Nennen wir es am Anfang einfach so Sound . Okay. Ich werde die AK 4071 öffnen . Ich werde auch die Pistole öffnen und ich werde die vier öffnen Ich möchte den Ton reduzieren , weil er für mich wahrscheinlich sehr laut Ich werde es auf 0,2 setzen , auch um es für dich auf diesem Kurs nicht nervig zu machen . Jetzt kann ich es hören. Das sind die Soundeffekte außerhalb von MO. Schließen wir es jetzt und kopieren wir die Referenzen. Klicken wir mit der rechten Maustaste auf die AK-Kopierreferenz. Ich gehe zurück zu meiner Datentabelle für K, das ist die erste. Ich werde es für die vier einfügen, klicken Sie mit der rechten Maustaste auf die Referenz hinter der Pistole, klicken Sie mit der rechten Maustaste auf die P-Referenz und fügen Sie sie auch hier Datei herunterladen, herunterladen, CSV, genau wie zuvor. Öffnen Sie den Download-Ordner. Und hier lösche ich wieder das alte, füge es in das neue ein, benenne es um lösche ich wieder das alte, füge es in das neue ein, benenne es und gehe zu Datentabellen und ziehe es dorthin, wo es aktualisiert ist, und lass uns alles speichern. Okay, gehen wir zurück zum Player und öffnen die Spielerbasis. Nun zu diesem, wir haben das jetzt hier. Was wir tun können, wir können diese Soundeffekte aus M verwenden. Ich ziehe das einfach hierher zurück, weil wir das nicht wirklich kopieren und einfügen müssen. Ich werde mir noch einmal Notizen zu all dem machen. Es ist eigentlich besser, sich hier innerhalb von ein bis zwei Lektionen umzuschauen . Was wir tun können, ist, den MO-Soundeffekt hierher zu ziehen. Jetzt wird der Soundeffekt immer dann abgespielt , wenn wir kein MO haben. Jetzt sind wir noch nicht ganz fertig , weil wir eigentlich auch definieren müssen , wann wir MO haben oder nicht. Hier im MC schieß die Waffe ab. Wir müssen das annehmen und daran denken, es wahr werden zu lassen. Das ist der normale Code, den wir haben. Und wir haben schon MO hier , wann immer wir drehen. Weil wir hier im Grunde schauen, ob wir kein MO mehr haben oder nicht und all das Zeug hier. Und das wird richtig sein. Nun, wann immer wir kein MO haben, wann immer das tatsächlich falsch ist, versuchen wir, hier etwas Code zu schreiben. Lassen Sie mich das nur ein wenig nach oben verschieben . Lass mich das einfach kopieren und einfügen. Lassen Sie mich das auch etwas nach unten verschieben, nur damit wir etwas Platz zum Arbeiten haben. Nun zu diesem, lassen Sie uns hier eine Verbindung herstellen. Wir müssen den Code für die Waffe nochmal eingeben Ich werde dieselbe Waffe von hier oben kaputt machen und sie hierher ziehen. Und was den Standort angeht, ist es derselbe Ort. Und was das Mo angeht, müssen wir jetzt sicherstellen, dass wir Mo haben, weil wir es nicht einfach spielen wollen wann immer wir hier runter gehen. Was du im Grunde überprüfen willst, dass wir diesen Sound abspielen wollen. Immer wenn Sie keine Aufzählungszeichen, keine Kugeln auf dem Mac und keine Kugeln in den zusätzlichen Kugeln haben, können wir die zusätzlichen Aufzählungszeichen tatsächlich verwenden, um das Ich glaube, wir haben hier schon eine Funktion. Dieser hat extra Mo, wir können diesen tatsächlich benutzen. Wir können weitermachen und sagen, wenn du X Ramo hast, spielst du es wie gewohnt Wenn Sie Ramo nicht haben, können Sie weitermachen und den Soundeffekt abspielen, wenn zusätzliche MO-Wert falsch ist. Dann können wir weitermachen und diesen Shooting-Soundeffekt abspielen Wo wir damit fertig sind, sollte alles repariert werden. Lass uns kompilieren und lass uns auf Play klicken. Hier will ich spielen, während die Terroristen einfach weiter mit meinen Waffen abfeuern. Ich werde weiter schießen und das Video überspringen. Okay, jetzt bin ich bei den letzten Kugeln. Und wenn ich weiter schieße und null Kugeln erreiche, spiele ich das ohne Soundeffekt ab Und Sie können hören, dass ich keine Kugeln habe. Wenn ich einfach hier hin wechsle und die anderen Soundeffekte abspiele , sehe ich, dass das normal ist Denn denk dran, ich habe den Soundeffekt für das Shooting gerade abgeschaltet für das Shooting gerade Wenn ich null Kugeln erreiche, kannst du hören, dass ich keine Kugeln habe So können wir es also machen. Lassen Sie uns alles kompilieren und speichern, wie bevor ich fortfahre. Jetzt werde ich das alles aufräumen, bevor wir weitermachen, weil es wie ein Chaos aussieht. Und es geht auch darum, wie man diesem Kurs folgt. Lass mich in meiner Freizeit einfach kompilieren. Ich werde das alles einfach organisieren, damit es viel besser ist, es mir anzusehen. Einfach weitermachen und Notizen erstellen, weiterleiten, Kommentare verfassen und all das Wir sehen uns im nächsten. 155. 10.26 Bullet Impact VFX und SFX: In Ordnung, bis jetzt sieht alles gut aus. Ich glaube, uns fehlen einige visuelle Effekte und Soundeffekte für den Fall, dass die Kugel etwas trifft. Gerade jetzt, wenn wir spielen und ich zum Beispiel die Vier nehme und versuche, hier zu drehen, treffe ich jetzt diesen Teil hier, aber wir sehen nicht wirklich visuellen Effekt auf dem Teil, den wir treffen, und ich denke, er wird viel besser aussehen. Lassen Sie uns weitermachen und das hinzufügen. Sie können versuchen, sich selbst zu bearbeiten, weil ich denke, Sie können, wenn Sie versuchen, genauer darüber nachzudenken , lassen Sie uns das zusammen tun. Lass uns hier in die Spielerbasis gehen. Genau wie zuvor müssen wir einen Multicast erstellen. Jetzt können wir es hier integrieren und weitere Variablen hinzufügen, aber ich denke, es wird ein bisschen chaotisch Also müssen wir eine neue erstellen. Wie Sie sehen können, habe ich das hier organisiert, wie Sie sehen, und ich werde Ihnen das ein bisschen beibringen. Hier haben wir das Ereignisdiagramm. Wir haben die grundlegende Charakterbewegung , die wir gemacht und abgeschlossen haben. Und wir haben sie momentan schon lange nicht mehr wirklich angefasst . Ich habe die Funktionen übrigens zu verschiedenen Graphen hinzugefügt . Das liegt daran, dass wenn Sie viel Code in einem Diagramm erstellen , es tatsächlich anfängt , vielleicht können Sie es schon auf Ihrem Computer spüren. Es fängt an. Wenn Sie sich hier drinnen umschauen, was Sie tun können, sagen wir, ich wollte diese Hocke speziell in einer anderen Grafik Ich kontrolliere x, um es hier umzudrehen, kontrolliere x. Dann erstelle ich ein neues Diagramm, das zum Beispiel Crouch heißt Das liegt daran, dass ein Ereignis Crouch genannt wird. Das kann ich also nicht tun Nennen wir es einfach Crouch Events Graph oder so ähnlich Dann hier drinnen, jetzt bin ich. Innerhalb des hockenden Diagramms kann ich V kontrollieren, und da ist es, ich habe die Nun, aus bestimmten Gründen haben Sie möglicherweise Funktionen, die nicht eingefügt werden Lassen Sie mich hier einfach auf Steuerung Z klicken, Steuerung Z, Steuerung Z, bis es hier ist. Manchmal passiert das, wenn Sie etwas kopieren, sagen wir, ich möchte diesen Teil kopieren, X steuern, ich möchte ein neues Diagramm erstellen, es etwas Zufälliges nennen und dann kopieren/einfügen. Jetzt kann ich sehen, wenn Sie es einfügen, es erscheint und es heißt, dass einige Funktionsreferenzen im neuen Kontext nicht aufgelöst werden konnten . Möchtest du sie hier reparieren? Dann kannst du etwas wählen. Sie möchten hier jedoch nichts tun , klicken Sie einfach auf Bestätigen. Wenn Sie auf Bestätigen klicken, können Sie sehen, dass Sie hier viele Fehler haben , die Sie beheben müssen. Drücken Sie jedoch auf nichts. Sie können einfach auf Datei und dann auf Alle Knoten aktualisieren klicken. Und das wird alles für dich reparieren. So kopieren Sie Code von einem Diagramm in ein anderes. Ich werde auf die Steuerelemente klicken, um zu dem zurückzukehren , was ich vorher hatte. Das habe ich getan. Ich habe gerade von hier kopiert und ein neues Diagramm erstellt. Ich habe einen namens Lot Equip and Drop Weapon gemacht. Hier ist meine Log and Dropping Weapon-Logik. Und meine Equip Weapon Logic. Ich habe auch einige Kommentare für dich hinzugefügt. Wenn ich dir das endgültige Projekt gebe, kannst du versuchen, es dir anzusehen, und es ist viel besser anzusehen, als dass es chaotisch Wie Sie hier sehen können, ist das die Waffe und so weiter. Ja, das ist alles. Das letzte Diagramm ich gemacht habe, ist die Schuss - und Nachladewaffe In diesem Fall haben wir die Logik der Schusswaffen. Und ich versuche es so gut wie möglich zu organisieren. Hier ist der Multicast für Schusswaffen, dann habe ich auch die Nachladewaffe Und hier ist die Logik dafür. Es gibt viele Hindernisse, um organisiert zu bleiben, wenn man mehrere Ereignisdiagramme hat. Wir haben das normale Ereignisdiagramm mit nur der Bewegung. Sie können diesen nicht umbenennen Dies ist der Standard, Sie können ihn nicht umbenennen. Ich habe jedoch die anderen erstellt und sie in Loot, Equip und Drop Up in and Shoot Weapon umbenannt , Equip und Drop Up in and Shoot . Lädt auch Es ist viel besser, organisiert zu bleiben, und wir können sie später viel besser finden Ich werde auch Kategorien für all diese Kategorien erstellen , wie ich es Ihnen in der vorherigen Lektion gezeigt habe. Sie können hier Kategorien erstellen und hinzufügen. Es ist wahrscheinlich gut, das für all diese und auch für all Ihre Funktionen zu tun . Das aus dem Weg, lass uns zum Shooting gehen und nachladen. Beim Shooting und Reload haben wir diesen Multicast, bei dem wir den Sender hier mit dem Mündungsblitz abspielen Lassen Sie uns jedoch einen neuen für den Impact erstellen. Lassen Sie uns mit der rechten Maustaste klicken wie zuvor ein neues benutzerdefiniertes Ereignis erstellen. Nennen wir das MC Bullet Impact. Lassen Sie es uns auch über ein Multicast-System laufen und es ist auch zuverlässig. Was wir jetzt wissen müssen, ist natürlich wir die Waffe brauchen, mit der wir schießen Wir brauchen auch den Ort des Treffers. Wo wollen wir unseren Emitter spawnen? Hier treffen wir den Ort, die Waffe getroffen Das ist die Waffenbasis. Wählen Sie es aus und kompilieren Sie es. Okay, wo willst du das spielen? Wir wollen das spielen, wann immer wir drehen. Das ist die Logik des Schießens. Wir schießen zuerst auf die Waffe, wir spielen den Effekt und dann spielen wir den Linienverlauf. Denken Sie an den Linienverlauf Wenn ich den Debugging-Typ so auswähle dauerhaft ist, sodass Sie die Linie sehen können Das ist die Linie, wenn wir schießen, das ist die Linienverfolgung Es erfasst diese Linie. Jetzt wissen wir, wo wir mit dieser Linienspur treffen , nachdem wir tatsächlich auf etwas gestoßen sind. Das ist es, was es bedeutet: Treffer blockieren, nachdem wir tatsächlich auf etwas gestoßen sind. Wir wollen diesen Effekt abspielen. Also werde ich dieses Hallo vorerst einfach löschen. Lass uns diesen MC Bullet Impact spielen, den wir gerade erstellt haben. Im Moment haben wir ein kleines Problem weil es sich um einen blockierenden Treffer handelt. Und hier heißt es auch, dass der Schauspieler-Hit den Tech-Player hat. Im Moment geht es eigentlich nur darum, das für die Spieler zu spielen , also müssen wir das reparieren. Anstatt sie miteinander zu kombinieren, werde ich das löschen. Nehmen wir den Blockierungstreffer hier und verbinden ihn. Lass uns eine Filiale gründen und das machen. Wenn es der Spieler ist, kannst du etwas tun. Wenn es nicht der Spieler ist, kannst du etwas anderes tun. Anstatt hier nur etwas hinzuzufügen, müssen wir diesen Effekt abspielen. Es ist uns egal, ob der Spieler getroffen wurde oder nicht, wir spielen diesen Effekt einfach trotzdem ab. Denn wenn du gegen eine Wand triffst, spielst du diesen Effekt ab. Wenn du den Spieler triffst, spielst du diesen Effekt ab. Aber wir müssen ihn nicht wirklich nach dem Spieler hier verbinden. Wir können es also vor dem Spieler verbinden. Ich werde ihm hier nur etwas Platz geben . Wir können es vor dem Spieler hinzufügen. Ich denke, wir müssen auch wissen, wen wir getroffen haben. Denn wenn wir den Spieler treffen, wollen wir Blut spielen und nicht nur irgendein Abziehbild oder irgendeinen Stein, den wir hier treffen. Für diesen werde ich einen neuen hinzufügen. Nennen wir es Hit-Schauspieler. Den Erfolgsdarsteller können Sie sich hier ansehen. Wenn Sie sich nicht sicher sind welche Art von Variable Sie hinzufügen müssen, können Sie einfach hier nach oben gehen. Und dieser Erfolgsschauspieler. Wenn Sie die Maus darüber halten, heißt es Actor Object Reference. Gehen wir hier runter, klicken darauf und ändern wir das hier in eine Actor-Objektreferenz. Dieses hier können wir einfach über das hier setzen und kompilieren. Okay, jetzt haben wir auch diese Informationen. Nun zur Waffe, du musst sie anschließen. Die Waffe ist hier oben, also kannst du sie einfach anklicken und hierher ziehen. Und lassen Sie mich einfach ein paar hintere Routennotizen erstellen , um den Überblick zu behalten. Okay, los geht's. Jetzt haben wir das geschaffen. Das ist aus dem Weg. Das nächste ist der Hit. den wir getroffen Wenn du auf den Pfeil klickst, siehst du alle Werte und das ist der Ort, haben, ist der Ort, den wir getroffen haben. Nachdem wir einen blockierenden Treffer erhalten haben, nehmen wir diesen Trefferort und wenden ihn auf diesen Multicast an Lassen Sie uns das noch einmal ein bisschen minimieren, und hier haben wir es Ich werde das noch einmal verbinden . Und nachdem wir den Spieler getroffen haben, können wir etwas Schaden anrichten. Was wir jetzt tun können, ja, wir können hier runter gehen. Jetzt. Wir haben da draußen wirklich nichts zu tun. Lasst uns den Emitter am Standort spawnen. Wir werden den Emitter an einem Ort spawnen. Wir werden auch den Sound vor Ort abspielen. Wenn ihr also Decals haben wollt, wenn ihr schon einmal Counter Strike gespielt habt, wisst ihr, dass Decals an der Wand erscheinen. Wenn du auf die Wand schießt Ich habe in diesem Kurs nicht wirklich Aufkleber. Wenn du möchtest, kannst du aber auch einfach von hier aus ziehen und Spawn-Aufkleber an der Position sagen Dadurch werden Decals erscheinen. Abziehbilder sind im Grunde nur Bilder . Du kannst sie an der Wand spawnen. zum Beispiel eine Kugel auf ein Bild trifft, kannst du es durch ein Spawn-Abziehbild an der jeweiligen Position spawnen Wir haben hier schon den Standort für den Ort, die Größe des Decals, du kannst zum Beispiel 111 machen oder was Hier kannst du das Abziehbild wieder auswählen je nachdem, was es in der Struktur ist Ihr könnt die Decals zur Struktur für die jeweilige Waffe hinzufügen und so weiter, aber ich habe nicht wirklich ein Abziehbild, also lasst es uns einfach löschen Das wird dir leicht fallen , nachdem wir das alles 100 Mal gemacht haben . Lass es uns löschen. Jetzt hier für diesen Spawn-Emitter, jetzt brauchen wir den Emitter, wir brauchen auch den Lass uns weitermachen und das machen. Lass uns alles speichern, lass uns das minimieren. Gehen wir jetzt zur Struktur. Öffne es und hier fügen wir zwei Variablen hinzu. Fügen wir eine hinzu, die als Bullet Impact VFX bezeichnet wird. Ich werde hier etwas Platz schaffen, wir müssen sie nicht wirklich zusammenfügen, Bullet Impact VFX Und ich werde noch einen hinzufügen, Bullet Impact. X, eins für den Soundeffekt und eins für den visuellen Effekt. Für den visuellen Effekt handelt es sich um ein Partikelsystem. Und mach weiter und wähle das aus. Für den nächsten ist der Soundeffekt ein Sound-Cue. Und Gott, und wähle das auch für den Soundeffekt aus. Ich gehe einfach zu ja, gleich nach dem Shooting-Soundeffekt. Also, um organisiert zu bleiben und um den visuellen Effekt zu erzielen, werde ich es einfach nach dem Mündungsblitz verschieben Mach weiter und speichere alles. Und denken Sie daran, dass wir es jetzt zu der sogenannten Datentabelle hinzufügen müssen . Fahren Sie fort und öffnen Sie Ihre Datentabelle. In Ordnung, also hier bin ich , in meiner Datentabelle. Und jetzt zu den Effekten beim Kugeleinschlag, es ist nach dem Mündungsblitz hier. Ich werde eine Spalte auf der rechten Seite hinzufügen. Ich werde es hier denselben Namen nennen. Ich kann das einfach kopieren und einfügen. Lass uns zur Seite gehen und es hier einfügen. Der nächste hat auch die Auswirkungen des Kugeleinschlags nach den Schießeffekten hier. Fügen Sie rechts eine Spalte hinzu und fügen Sie sie hier hinzu. Jetzt brauchen wir Verweise auf. Jetzt, was die angeht, verwende ich nur die vom Marktplatz. Anstatt im Ordner danach zu suchen, weil ich keine Ahnung habe, wo es sich befindet, klicken Sie einfach auf den Marketplace-Ordner und suchen Sie einfach nach Impact. Und dann kannst du sie hier sehen. Was ich verwenden werde, ist vielleicht dieses Modell namens Stone Medium für den Aufprallpartikeleffekt. Klicken Sie mit der rechten Maustaste und kopieren Sie die Referenz. Wenn ich es hier finde, kopiere die Referenz und ich kann es für die Aufzählungseffekte einfügen. Ich werde es einfach für alle einfügen. Ich möchte nur den gleichen visuellen Effekt beim Kugeleinschlag für den Soundeffekt haben den gleichen visuellen Effekt beim Kugeleinschlag . Ich glaube, wir haben es hier mit dem sogenannten Gewehrschlag Ich doppelklicke einfach darauf und reduziere die Lautstärke auf 0,2, weil ich finde, dass es zu laut ist Das ist eigentlich der Körper. Das ist der Moment, in dem wir den Spieler treffen. Lassen Sie uns das tatsächlich auch hinzufügen , während wir hinzugefügt werden. Fügen wir einen für den Spieler hinzu. Lassen Sie uns die Struktur einfach wieder öffnen und eine neue Variable hinzufügen. Nennen wir es Kugeleinschlag, Kugeleinschlag, Spielereffekte für den anderen. Lassen Sie uns diesen für den Soundeffekt hinzufügen. Fügen wir einen neuen hinzu. Nennen wir es Bullet Impact Player-Soundeffekt. Ich denke, es wird viel interessanter sein, beide zu haben. Suchen wir erneut nach dem Partikelsystemsystem. Fahren Sie fort und wählen Sie es für das andere aus. Sound Und bewegen Sie sie einfach wieder nach oben, um den Kugeleinschlag, visuellen Effekt und den Soundeffekt zu erzielen. Okay, jetzt sind sie dabei. Lassen Sie uns weitermachen und sie erneut zur Datentabelle hinzufügen. Öffne es und mache hier eine Spalte nach rechts. Bilden Sie auch hier rechts eine Spalte. Dieser kopiere und füge den Namen ein, der andere ebenfalls, copaame Hier sind wir. Jetzt können wir einen neuen visuellen Effekt und einen neuen Soundeffekt hinzufügen. Gehen wir erneut zum Marketplace-Ordner zurück und suchen nach Heat. Lassen Sie uns diesen Hauptteil kopieren, wir reduzieren nur das Geräusch beim Klicken mit der rechten Maustaste. Kopieren Sie die Referenz und wir können sie für den Soundeffekt des Bullet-Impact-Players hier einfügen . Jetzt brauchen wir den, bei dem wir den Spieler nicht treffen. Ich glaube, dieses eine Gewehr trifft auf eine Fläche. Mach weiter und reduziere das Geräusch auf 0,2. Lass es uns spielen und sehen, was es ist. Okay, klingt gut. Klicken wir mit der rechten Maustaste und kopieren den Verweis und fügen ihn hier ein. Jetzt brauchen wir einen Geschosseinschlag. Der visuelle Effekt des Spielers benötigt tatsächlich etwas Blut. Wo wir den Spieler treffen, bin ich mir nicht sicher, ob sie hier einen haben. Vielleicht kannst du nach Blut suchen. Wir haben hier nicht wirklich einen. Sie können sehen, dass wir nur diese metallischen haben. Wir haben nur die Wirkung auf den Stein und das Holz. Aber lassen Sie uns vorerst einfach das metallische kopieren. Es dauert ein bisschen, sich hier mit dem Partikelsystem vertraut zu machen hier mit dem Partikelsystem und es ist nicht wirklich Teil des Kurses. Das wird ein bisschen zu weit fortgeschritten sein, es wird einige Zeit dauern, bis es fertig ist. Lass uns einfach den Funken hier kopieren. Spark Medium. Lassen Sie uns mit der rechten Maustaste klicken und die Referenz kopieren. Und Sie können sie auch hier in den visuellen Effekt für diesen einfügen . Wenn du wirklich hier reingehen und etwas ändern willst , kannst du es öffnen. Du kannst vielleicht auf Color over Live klicken. Du kannst hier, hier, auf diesen Pfeil und diese Konstante klicken. Und du kannst versuchen, mit den Farben zu spielen. Du kannst immer versuchen, damit herumzuspielen. Mach es roter, damit die Farbe hier, im Laufe des Lebens, du kannst mit der Farbe spielen. Und mit den Pfeilen hier wird es roter, sodass es wie Blut aussieht. kannst du jederzeit tun , oder du kannst auch jederzeit auf den Epic Games-Marktplatz gehen und einige Blutartikelsysteme herunterladen. Es gibt eine Menge von ihnen auf dem Marktplatz. In Ordnung, jetzt haben wir die hinzugefügt. Und gehen wir zurück zur Datentabelle. Und jetzt können wir auf Datei klicken und die CSV-Datei herunterladen und herunterladen, noch einmal hier in meinem Download-Ordner. Lassen Sie mich diese Datentabelle einfach noch einmal umbenennen. Und lassen Sie mich zum Ordner mit den Datentabellen gehen. Lassen Sie mich das vorerst schließen. Lassen Sie mich die Datentabelle hierher ziehen und alles aktualisieren. Okay, jetzt haben wir das abgeschlossen. Gehen wir zum Spieler, zur Spielerbasis. Und jetzt lasst uns das alles einfach kopieren. Füge es ein, damit ich es nicht noch einmal schreiben muss. Das ist genau das, was wir schon einmal gemacht haben. Lass uns die Waffe ziehen, den Waffennamen und die Waffeninformationen von hier abrufen . Ich werde nur die nicht verbundenen Pins verstecken. Was ich von diesem brauche, ist der Geschosseinschlag, der Effektkugeleinschlag, der Effektspieler und der Geschosseinschlagseffekte und Effektspieler Ich brauche die hier und dann kann ich weitermachen und den Partikeleffekt machen, statt nur König, zum Beispiel den Kugeleinschlag, die Effekte hier. Wir können immer fragen, ob es der Spieler ist, den wir getroffen haben oder nicht. Denn wenn es der Spieler ist, den wir getroffen haben, wollen wir diesen spielen. Was wir tun können, ist, von diesem erfolgreichen Schauspieler zu nehmen und zu sagen oder nicht, aber nur Schauspieler hat eben vorher Tag. Genau wie das, was wir hier oben gemacht haben , als wir den Spieler hier getroffen haben. Wir fragen, ob der Schauspieler den Tag Player hat, damit wir wissen, dass es der Spieler ist. Wir können hier dasselbe tun, je nachdem, ob der Schauspieler den Tag-Spieler hat oder nicht, dann wissen wir, ob es der Spieler ist, den wir getroffen haben oder nicht. Dann können wir das nehmen und „Auswählen“ sagen. Und wir können den ausgewählten Knoten nehmen und ihn hier einstecken. Falsch, es ist nicht der Spieler, dann wollen wir diesen Effekt nur abspielen, wenn es der Spieler ist, wenn es wahr ist, hat der Schauspieler das Tag Player. Wir wollen diesen Spielereffekt abspielen. Jetzt wird ein visueller Effekt abgespielt je nachdem, ob wir den Spieler treffen oder nicht. Okay, cool. Für den Ort ist es der Trefferort, für die Rotationsskala ist alles gleich. Nichts muss wirklich geändert werden. Was den Soundeffekt angeht, mache ich von hier aus dasselbe. Und sag Select, je nachdem , ob es der Player ist oder nicht. Hier, dieser. Mach weiter und verbinde es erneut. Wenn es nicht der normale Soundeffekt des Players ist, wenn es der Player ist, der Player-Soundeffekt genau wie für den Ort, an dem es getroffen wurde. Ich werde nur ein paar Hinweise zur Weiterleitung hinzufügen und diesen Code hier organisieren Ich habe einige Hinweise zur Umleitung hinzugefügt und werde jetzt alles speichern Lass mich einfach hierher gehen und überprüfen, ob ich nichts vergessen habe Nun, wir haben das hinzugefügt, wir haben den visuellen Effekt und den Soundeffekt hier oben im Code hinzugefügt den visuellen Effekt und den Soundeffekt hier oben im Code wann immer wir schießen und wir tatsächlich auf etwas treffen, wir werden den Soundeffekt abspielen und wir werden auch den visuellen Effekt abspielen Und der Erfolgsdarsteller ist blockiert. Die Waffe ist ebenfalls geblockt, und der Ort, an dem der Treffer getroffen wurde, ist ebenfalls blockiert. Speichern wir einfach alles hier und probieren es aus. Lasst uns Terroristen auswählen. Ich werde die vier auswählen. Mach weiter und schieß. Ich kann das Geräusch hören, wenn du es hören kannst. Fantastisch. Okay, lassen Sie mich diesen Teil des Codes hier für die Schusswaffe trennen . Ich werde nur den Teil mit der Chote-Waffe vom Code trennen Teil mit der Chote-Waffe vom Code kann nur die Einschläge der Kugel hören damit ich sehen kann, ob sie richtig funktioniert Ich werde hier einfach das AK-Shooting machen. Jetzt kannst du sehen, dass ich tatsächlich schieße. Ich kann die Wirkung sehen. Ich kann den Ton auch hören. Wenn es weit weg ist, kann ich den Ton nicht hören. Wenn es nah ist, kannst du sehen, dass es näher kommt. Es sieht viel besser aus. Wenn Sie die Wirkung vergrößern möchten, können Sie hier jederzeit darauf eingehen und den Maßstab erhöhen. So etwas wie verrückt. Man kann den Unterschied tatsächlich sehen. Die Skala ist jetzt zehn. Ich kann spielen, ich kann etwas drehen. Und jetzt kannst du sehen, wie verrückt es tatsächlich wird. Jetzt können Sie sehen, dass der Effekt schlecht aussieht, weil er so stark skaliert ist Ich denke jedoch, dass eins zu eins in Ordnung ist. Wenn Sie möchten, können Sie es jederzeit 1,5 einstellen, sodass es etwas größer ist, wenn Sie möchten. Aber ich denke, es ist vorerst in Ordnung. So sieht es aus. Lassen Sie uns jetzt einfach diese Zeile entfernen. Wir müssen diese Debug-Zeile nicht wirklich sehen , also kann ich keine drücken Ich möchte es auch auf dem Client ausprobieren , nur um sicherzustellen, dass es auch auf dem Client funktioniert , um es auf dem Client auszuprobieren Okay, nett. Auch hier gilt: Wenn Sie die Farbe des Aufpralls ändern möchten, können Sie jederzeit in das Partikelsystem gehen und auf die Farbe klicken. Und Sie können auch die Farbe dafür ändern . Aber jetzt kannst du sehen, dass es super funktioniert, und es funktioniert auch dort drüben. Wir können es dort jedoch nicht wirklich sehen , weil es sehr klein ist. Hier ist es. Du kannst es versuchen, du kannst hier sehen, dass es hier ist. Fantastisch. Klingt wirklich gut. Nett. Okay, das ist fertig und ich mache einfach weiter und verbinde diesen Teil erneut und kompiliere und speichere alles. Jetzt haben wir auch den Aufnahmeeffekt, visuellen Effekt und den Soundeffekt. Auch hier gilt: Wenn du ein Decal wie Counterstrike hinzufügen möchtest, kannst du auch von hier aus zuschlagen und Cal sagen Und du kannst das Decal genau wie zuvor an einem Ort spawnen. Du kannst jederzeit hier auswählen, einen ausgewählten Knoten erstellen und den Player anschließen Wenn es der Spieler ist, den du triffst, willst du nichts spawnen, du kannst das tun, egal ob es der Spieler ist oder wenn es nicht der Spieler ist, den du triffst. Du kannst jederzeit einen Kugelschreiber an der Wand spawnen. Du kannst das immer tun. Lassen Sie uns alles kompilieren und speichern und mit dem nächsten fortfahren. 156. 10.27 Bullet-Spread: Anstatt alle Kugeln in der Mitte des Cursors treffen zu lassen, können Sie jetzt sehen, ob ich etwas schieße, es trifft immer an derselben Anstatt das zu tun, können Sie tatsächlich eine Kugelstreuung hinzufügen Das können wir genauso machen wie zum Beispiel in Fortnight. Wenn Sie auf den Cursor drücken, trifft er nicht wirklich dieselbe Stelle, 2047 Wenn du weiter schießt. Um das zu tun, ist es wirklich, wirklich einfach in der Position des Bullet-Ends. Sie können hier sehen, dass wir diese Linienverfolgung erstellen. Bevor ich das mache, nehmen wir das alles, kopieren es und fügen es hier ein. Ich denke, ich werde es später beweisen, denn hier möchte ich keine Linienverfolgung machen , wenn ich nicht in MO bin und so weiter. Vielleicht möchte ich das verbessern , indem ich die Sequenz tatsächlich entferne, weil wir dann diesen Code nicht kopieren und einfügen müssen. Wir können diesen Teil einfach gleich danach hinzufügen. Aber lassen Sie uns es vorerst so behalten und sehen, wohin wir damit gehen. Der Endort, was ich damit machen möchte, ich möchte es ein bisschen randomisieren Start- und Endort. Die Startposition ist für die Linienverfolgung in Ordnung. Lassen Sie uns die Endposition jedoch nach dem Zufallsprinzip anordnen. Beim Linienrennen wird nicht jedes Mal am selben Ort geschossen. Der Weg, das zu tun, ist sehr, sehr einfach. Wir können diesen Endpunkt jetzt nehmen und wir können ihn nehmen und Break Vector sagen. Nun, was wir von diesem hier aus tun können, trennen wir es einfach von hier. Löschen Sie vorerst diesen, damit wir nur diesen hier haben. Und Sie können es einfach hier anklicken und ziehen und einfügen. Tatsächlich brechen wir an dieser Endposition den Vektor. Ich kann also X, Y und Z sehen und den Wert hier nach dem Zufallsprinzip Was ich tun möchte, ist diesen Namen namens Random Float in Range zu verwenden Namen namens Random Float in Range Jetzt haben wir nicht wirklich einen zufälligen Vektor im Bereich, sonst hätte ich den benutzt. Aber wir haben eine Funktion namens Random Float in Range. Es wird also eine zufällige Gleitkommazahl wählen , die von einer Zufallszahl abhängt, je nachdem, was Sie ihr als Minimalwert und als Höchstwert geben . Übrigens, so würfelt man auch. Du würfelst, indem du hier schreibst, der Mindestwert der Würfel sollte eins sein, der Höchstwert der Würfel sollte sechs sein. Und dann würfelt es mit einem zufälligen Wert von 1—6, um die Würfel zu würfeln. Und du kriegst hier so etwas wie eine Zahl. Wir werden das hier für den Mindestwert tun. Wir wollen nur dieses X nehmen und sagen, lasst uns zuerst Minus schreiben, sagen wir 200. Versuchen wir es mit 200. Dann der maximale Float hier, sagen wir mal plus 200. Es wird die X-Position nehmen, es wird eine Zufallszahl finden. Wir geben x -200. Nimm das x plus 200. Zwischen diesem Bereich findest du eine Zufallszahl mit dieser Zufallszahl , die wir zu einem Vektor machen wollen Nehmen wir dieses Ende hier und sagen Vektor, damit wir es wieder zusammensetzen und diesen Erstellungsvektor auswählen können . Dann können wir es genau hier wieder in das X stecken. Wir ändern im Grunde nur den X-Wert und fügen ihn so wieder in den Vektor ein Lass uns dasselbe für den anderen machen. Ich werde das kopieren und einfügen. Vielleicht kannst du auch tatsächlich eine Funktion daraus erstellen, aber ich denke, das wird unnötig sein. Lass es uns einfach hier hinzufügen. Und füge auch das X oder das Y und Z hinzu. Lass uns das Y einstecken. Lass uns das Z einfach so einstecken Okay, jetzt haben wir das erledigt und jetzt wird es eine zufällige Ladung und Reichweite finden Und es wird unseren Vektor randomisieren, je nachdem , welchen Wert er hier als Zufallswert findet Und lassen Sie mich einfach weitermachen und einige Hinweise zur Umleitung hinzufügen , damit es besser aussieht Okay, hier ist es also. Das war es eigentlich. Also sind wir fertig. Das war sehr, sehr einfach. Lass uns einfach nochmal debuggen und lass uns spielen, nur um zu sehen, wie es aussieht Jetzt, wo ich der Terrorist bin, kann ich meine Kugel abfeuern und Sie können sehen, wann ich mehrmals geschossen habe Es wird nicht in der Mitte des Cursors schießen, es wird eine zufällige Position finden, manchmal in der Mitte, manchmal außerhalb des Cursors. Was Sie sehen können, ist, dass nicht immer wieder auf dieselbe Stelle geschossen wird. So können Sie die Verteilung der Kugeln nach dem Zufallsprinzip anpassen Sie schießen nicht am selben Ort. Was Sie tun können, wenn Sie eine größere Streuung wollen, Sie können diese Zahlen immer wieder erhöhen, wenn Sie es verbessern wollen, Sie können immer mit Recht das zu einer Variablen heraufstufen und diese Variable mit allen verknüpfen. Und Sie können einfach eine Variable bearbeiten und es werden alle Variablen gleichzeitig bearbeitet. Das wird dir viel Zeit sparen, aber ich denke, ich werde es bei 200 belassen, wenn du willst. Sie können die Streubreite erhöhen und es wird so sein, dass Sie in der Mitte treffen. Aber wie Sie sehen können, wird es viel einfacher sein, es zu treffen, wenn ich nah dran bin. Wenn ich jedoch weit weg treffe, wird es schwieriger sein, das Ziel zu treffen. Ich treffe hier nicht immer in der Mitte. Sehr einfache Methode, das zu tun. Und lass uns einfach alles speichern, lass uns mit dem nächsten weitermachen. 157. 10.28 Richtige Platzierung der Waffen: Ich glaube, wir sind gerade an einem Punkt angelangt , an dem wir die Waffen, die wir hier haben, einfach um uns herum platzieren können hier haben, einfach um uns herum Ich werde sie einfach alle löschen. Du kannst es schnell machen. Du kannst hier klicken, alte Schicht, auf die letzte Schicht klicken, löschen, und ich werde auch diese löschen. Was Sie jetzt tun können, ist, dass wir zu den Bauplänen und Waffen gehen können. Jetzt kannst du sie einfach hineinziehen und sie zum Beispiel im Level platzieren Du kannst hier eine AK platzieren, wenn du willst. Du kannst das Snapping hier einschalten. Ich denke, es wird eine Menge sein, die AK zu platzieren und sie einfach ein bisschen hochzuziehen , damit sie nicht so auf dem Boden liegt Was du tun kannst, ist, ich wollte es nur hinten haben. Ich schaue mir nur an, wie weit wir von dieser Mauer entfernt sind. Vielleicht können wir es hier hinzufügen. Lassen Sie mich es einfach hinter die Titelseite ziehen und die Alt-Taste gedrückt halten und ziehen, um es zu kopieren. Ich denke, ich werde diesen Wert stattdessen auf 500 erhöhen, um die Alt-Taste gedrückt zu halten und so zu ziehen. Ich denke, ich werde es ein paar Mal so kopieren. Hier, hier und hier. Mach es einfach, wie du es für dein Level willst. Du musst hier nicht wirklich folgen. Ich mache es einfach nach dem Zufallsprinzip. Jetzt haben wir es. Vielleicht können wir hier auch einen hinzufügen. Jetzt haben wir es. Und was Sie tun können, ist hier eine Vier in der Mitte hinzuzufügen . Vielleicht muss ich mein Snapping hier einfach noch einmal auf 100 reduzieren , ich denke, ich füge es in der Mitte Ich muss das hier stattdessen auf 50 reduzieren. Und dann erhöhen wir es, nehmen wir es hier auf, erhöhen es wieder auf 100, erhöhen das auf das andere. Setzen Sie es wieder auf 500, genau wie zuvor. Zieh es weiter so. Jetzt ist es zwischen dem K hier, hier und hier. Und mach einfach weiter und mach so weiter. Okay, jetzt haben wir das und wenn du es dir ansiehst, sieht es nett aus, was du tun kannst. Du kannst die Pistole auch so platzieren , dass du sie in das Level ziehen kannst Lass mich das einfach wieder auf 100 reduzieren . Platziere die Pistole, schieb sie hoch wie zuvor, so, wenn du willst, kannst du die Pistole hinzufügen, um den ganzen Platz Wenn ich es einfach auf 50 erhöhe, kannst du die Pistole auf diese Weise zu allen Feldern hinzufügen Lass mich einfach weitermachen und das machen. Okay. Jetzt habe ich die Pistolen platziert Jetzt können Sie die Pistolen ganz hier sehen, die K und die Vier ganz hier, wenn Sie möchten Eigentlich möchte ich hier keine Waffen platzieren, weil der Spieler hier spawnt Ich kann sie sogar etwas weiter nach vorne bewegen. Sie spawnen also nicht auf den Waffen. Ich verschiebe nur etwas hierher. Wir müssen uns auch die Spawnpunkte für dieses Spiel merken Spawnpunkte für dieses Spiel Fahren Sie einfach fort und wählen Sie alle aus. Bewege sie auf diese Weise einen Schritt nach vorne. Auch für diese Waffen möchte ich sie alle auswählen. Klicken Sie auf die erste, scrollen Sie nach oben, halten Sie die Umschalttaste gedrückt und klicken Sie auf die letzte. Außerdem muss ich den Fall Hold Control auswählen. Und ich werde sie hier einfach alle auswählen. Und lassen Sie uns auf das Verschieben-Tool klicken, Alt gedrückt halten und ziehen, um alle zu kopieren. Klicken Sie auf, um es um 180 Grad zu drehen. Lass mich sie einfach hier festhalten und versuchen, sie auf die gleiche Höhe zu bringen. Es ist also fair, dass beide Seiten schauen, ob sie auf derselben Ebene sind und das sind sie jetzt. Was ich jetzt tun möchte, ist sie einfach auf die andere Seite zu ziehen und sie irgendwo wie hier zu platzieren. Ich denke, hier ist es auch auf der anderen Seite. Sie sind sehr nah an der Wand. Sie sind auch sehr nah an der Wand. Vielleicht noch so, wir müssen sie tatsächlich auf die andere Seite ziehen. Es ist etwas hier. Es ist noch einer, glaube ich, hinter so einer Deckung. Jetzt sind beide Seiten gleich. Wenn du auf „Jetzt spielen“ klickst und wir können Counter Terrorist verkaufen. Jetzt können Sie zum Beispiel sehen, dass sie am Boden sind. Wir können eine Pistole in die Hand nehmen und uns auch für eine der anderen Waffen entscheiden Und ja, jetzt funktioniert alles. Was Sie tun können, anstatt zuerst eine Pistole in die Hand zu nehmen , weil es nervig ist, vielleicht auf das Gewehr umzusteigen, Sie können sie austauschen Man hat also zuerst das Gewehr und dann die Pistolen dahinter Okay, jetzt, wo Sie die Waffen platziert haben, können Sie sie auch hier platzieren, wenn Sie möchten Wenn du eine weitere Waffe herstellst, zum Beispiel eine Spezialwaffe, kannst du sie hier platzieren. Du musst also diese Rampe hochgehen, um diese Waffe zu nehmen. Das wird auch cool sein. Okay, wann immer Sie Ihre Waffen platziert haben, lassen Sie uns zur nächsten Lektion übergehen. 158. 11.01 Gestaltung der Benutzeroberfläche für Gesundheit und Rüstung: Ordnung, jetzt sind wir beim Thema Gesundheit, Rüstung und Schaden, und wir sind bereit, die Benutzeroberfläche für Gesundheit und Rüstung zu erstellen Also lasst uns weitermachen und zur Benutzeroberfläche gehen. Und wir haben bereits unsere Haupt-Benutzeroberfläche, also lassen Sie uns sie hier auf der linken Seite öffnen Ich möchte eine Benutzeroberfläche für Rüstung und Gesundheit erstellen. Okay, also was ich entwerfen möchte, möchte ich dir zuerst zeigen, damit du es dir tatsächlich ansehen kannst. Ich möchte eine solche Benutzeroberfläche entwerfen . Ich zeige es dir gerne. können Sie also tatsächlich, wir sind hier auf derselben Wellenlänge und Sie wissen, was Sie tun. Wir machen diesen. Und so wollte ich aussehen. Nochmals, was ich dir schon einmal gesagt habe, versuche es dir anzusehen, versuche es aufzuschlüsseln. Also, weißt du, wenn du horizontale Boxen, vertikale Boxen, Überlagerungen erstellen willst horizontale Boxen, vertikale Boxen, , genau wie wir es zuvor gemacht haben, dann werden wir das hier erstellen Okay, zuerst brauchen wir ein Overlay, weil wir einen Hintergrund haben und wir haben etwas darüber Ziehen wir das hier in das Canvas-Panel. Und jetzt ist es hinzugefügt. Klicken Sie jetzt darauf. Und für den Ankerpunkt ändere ich ihn nach unten links und schreibe 00 in die Position, um ihn hier oben in der Leinwand für die Ausrichtung für das Y zu platzieren, schreibe eins, jetzt ist er hier oben an der Position von 00. Okay, für dieses Bild wollen wir ein Bild haben, wir wollen einen Ort im Hintergrund haben, das Bild hier. Ich möchte es genauso machen wie hier. Anstatt einfach dasselbe zu tun. Was ich hier tun kann, ist einfach die Umschalttaste gedrückt zu halten und mit der rechten Maustaste zu klicken, um das zu kopieren. Oder Sie können einfach mit der rechten Maustaste klicken und kopieren. Sie können zu diesem Bild gehen und Umschalttaste gedrückt halten und mit der linken Maustaste klicken, um es einzufügen. Einfach so für die Ausrichtung Füllen Sie einfach das Ganze für das Overlay Jetzt möchte ich, dass es an Inhalte wie diesen angepasst ist. Welche Bildgröße wir auch immer hier haben, sie wird tatsächlich automatisch an diese angepasst. Für den Platz auf dem Bildschirm. Ich möchte es etwas wegschieben, 30 im X und -30 im Y. Wir haben hier ein bisschen Platz Es ist nicht hier oben am Rand. Okay, lass uns jetzt kompilieren. So sieht es aus. Jetzt fügen wir den Gesundheitsbalken hinzu. Fügen wir ein horizontales Feld hinzu, weil wir ein Symbol und einen Fortschrittsbalken daneben haben möchten . Fügen wir diesem Overlay also ein horizontales Feld hinzu. Für dieses horizontale Feld. Lassen Sie uns zuerst ein Bild hinzufügen, weil wir ein Symbol wollen. Und dann fügen wir den Fortschrittsbalken hinzu. Denken Sie jedoch daran, dass auf der Fortschrittsleiste Text steht. Wir brauchen tatsächlich ein Overlay. Lassen Sie uns zunächst nach einem Overlay suchen und es hier für dieses Overlay platzieren Suchen wir den Fortschrittsbalken. Für den Gesundheitsbalken verwenden wir einen Fortschrittsbalken und darüber befindet sich ein Text, der anzeigt, wie viel Gesundheit der Spieler hat. Okay, jetzt sieht es für dieses Overlay etwas verwirrend aus. Mal sehen, hier haben wir dieses horizontale Feld für diesen Fortschrittsbalken Ich möchte im Grunde das Ganze in dieses Overlay füllen. Platzieren wir das einfach in der Mitte. auf das horizontale Feld klicke, richte ich es für das Bild in der Mitte aus. Wählen wir das Symbol aus. Jetzt haben wir momentan kein Symbol. Gehen wir zu den Symbolen. Ich möchte, dass du zu den Kursmaterialien gehst. Wenn du hier einfach zu den Kursmaterialien gehst, gehe ich zur Benutzeroberfläche zu den Symbolen und importiere die Gesundheit auf das Herz- und das Schildsymbol. Klicke sie an und ziehe sie hierher. Jetzt werden sie importiert. Denken Sie daran, darauf zu klicken und die Texturgruppe wie zuvor auf UI zu ändern . Und die Komprimierungseinstellungen die Benutzeroberfläche hatten dasselbe Herzensanliegen. Ändern Sie es auf UI und ändern Sie es. Sehen wir uns hier die Benutzeroberfläche von T an . Jetzt können wir in die Benutzeroberfläche gehen. Wir können auf das Bild klicken, nach CO oder Icon suchen. Lass uns einfach eins auf Herz nach dem Herzen suchen. Wähle es aus. Jetzt können Sie Exponate sehen. Und das liegt an der Ausrichtung. Ich wollte es einfach so in der Mitte haben. Und ich werde die Größe auf 45, 45 vielleicht ändern. Lass es uns einfach auf 40 mal 40 ändern. Lassen Sie uns nun für diesen Fortschrittsbalken darauf klicken. Für den Fortschrittsbalken, den Sie hier sehen können, kann ich den Prozentsatz erhöhen und verringern. Und es wird den Fortschrittsbalken erhöhen und verringern. Was den Stil angeht, brauchen wir ein Hintergrundbild und wir brauchen ein Füllbild und ein Marquee-Bild Nun zum Hintergrund, ich möchte nur hier klicken. Und ich denke, wir können nach dem Eingabefeld suchen. Ich habe hier wie Eingabefelder, die wir als Hintergrund verwenden können. Und wir können einfach dieses eine Bild verwenden, die Eingabeleiste ist dunkel. Mach weiter und wähle es aus. Erinnerst du dich, was ich vorhin gesagt habe? Ändern Sie es in ein Feld und wählen Sie auch 0,5 als Rand. Es dehnt sich also korrekt für das Phil-Bild aus. Wenn du nur nach Phil suchst, habe ich den Fortschrittsbalken, Phil, für dich. Lass mich einfach den anderen importieren , weil ich ihn noch nicht importiert habe. Sie haben es wahrscheinlich schon hierher importiert. Lassen Sie mich einfach zu meinen älteren Kostenmaterialien, meinen Bildern übergehen. Lass mich diesen roten importieren, rot, Phil. Lass mich es hier importieren. Klicken Sie darauf, ändern I und ändern Sie diese eine Benutzeroberfläche, um zu speichern. Und lass mich hierher zurückkehren. Wählen wir die rote Füllung aus. Fahren Sie fort und wählen Sie dieses aus, auch für das Markierungsbild. Du kannst das einfach kopieren. Füge es hier ein. Denken Sie für den Rand daran, was ich zuvor gesagt habe, 0,5 für den Rand. Dieser Wert ändert sich wieder zu einem Kästchen und zu 0,5 für den Rand. Jetzt ist das behoben und Sie können sehen, dass die Farbe nicht korrekt ist. Es zeigt diese seltsame bläuliche Farbe, blaugrüne Farbe. Das wollen wir nicht. Dies liegt daran, dass die Füllung und die Farbopazität hellblau Sie haben Änderungen zu Weiß vorgenommen. Sie können das Richtige für alles sehen was Sie hier ausgewählt haben. Lassen Sie uns jetzt kompilieren. Machen wir es etwas größer damit es für das Marquee-Bild besser sichtbar Hier steuern Sie die Größe. Wenn Sie versuchen, die Bildgröße auf diesen zu ändern , wird das nicht funktionieren. Lassen Sie mich hier einfach zur Bildgröße des Marquee-Bildes übergehen und Sie können sie hier ändern Lass es uns einfach breiter machen. Zum Beispiel 350 Lee, 60 hier in der Höhe. So sieht es jetzt aus, 350,60 Sie können die Bildgröße erneut kopieren und über die anderen einfügen Sie können hier auf den Text klicken und ihn in der Mitte dieses Fortschrittsbalkens ausrichten in der Mitte dieses Fortschrittsbalkens Lassen Sie uns den Text in „Rubic Semi Bold“ ändern, was wir bisher verwendet haben Lassen Sie uns diese Größe auch auf 20 ändern. Ich mache es kleiner, lass uns vorerst einfach eine Zufallszahl schreiben. Schreiben wir 76. Ich möchte nur eine Zahl schreiben damit wir sehen können, was wir tun. Wir werden das später dynamisch innerhalb des Spiels ändern, aber so sieht es im Moment aus. Lassen Sie uns eine Gliederung hinzufügen. Ich füge der Konturgröße zwei hinzu und ändere dann die Farbe für den Umriss. Sie wählen beispielsweise diesen Farbwähler. Von hier aus können Sie eine Farbe auswählen. Ich denke, ich wähle einfach die Hintergrundfarbe dieses Fortschrittsbalkens . Okay. Klicken Sie erneut darauf und ich füge auch etwas Schatten hinzu, wenn Sie hier zum Beispiel 66 für den Schatten schreiben. So kannst du ihn deutlich sehen und du kannst auf diese Schattenfarbe klicken und du kannst den Alphawert auf eins ändern. Das ist der Schatten für den Text. Nun zum Schatten, ich nehme den Offset von drei mal drei. Und ich ändere die Deckkraft auf 0,5. Es ist nicht allzu sichtbar, wenn man es von hier aus betrachtet, es sieht viel besser Okay, das sieht nett aus. Jetzt können wir den gestrichelten Umriss deaktivieren damit wir sehen können, wie er jetzt aussieht Ich denke, was wir jetzt tun können, können wir auf das horizontale Feld klicken , sehen wir uns das Und wir können ihm etwas Platz geben. Was wir hier für die Polsterung links und rechts tun können , gebe ich zum Beispiel 30,30. So sieht es aus Jetzt schieben wir es von den Seiten weg. Ich möchte ihm eigentlich mehr geben. Klicken Sie erneut auf die Horizontale, 35 mal 35, und von oben und unten. Ich denke, ich werde es bis 30 Uhr geben. Nun, so sieht es aus. Okay, lassen wir etwas Abstand zwischen dem Symbol. Und das ist erledigt, wenn wir nach einem Abstandshalter suchen und ihn zwischen dem Symbol und dem horizontalen Feld platzieren ihn zwischen dem Symbol und dem horizontalen Feld Eigentlich nicht hier. Ziehen wir es hierher runter. Zwischen dem Bild für das Herz und dem Fortschrittsbalken. Der Spacer ist da. wir das X ein, geben wir ihm vielleicht ein Leerzeichen von 15. Geben wir ihm tatsächlich mehr Platz. Ich denke, wir können ihm mehr Platz für den Spacer geben, vielleicht stattdessen 20. Ich denke auch, dass ich ihm mehr Platz für die horizontale Box hier oben Statt 35 gebe ich es 40. Links und rechts werden 40 sein, und oben und unten werden 30 sein. So sieht es jetzt aus, sieht gut aus, wir können jetzt kompilieren. Lass uns das kopieren, einfügen und als Rüstung für das horizontale Feld bearbeiten . Lass uns einfach hier klicken und auf Steuerung klicken. Sie können jetzt sehen, dass sie übereinander liegen, weil wir eigentlich eine vertikale Box benötigen , um sie übereinander zu haben. haben wir vergessen. Lass uns nach einer senkrechten Box suchen. Lass uns einfach hier unter dem Hintergrundbild nachschauen. Denken Sie daran, dass dies das Overlay ist, das ist das Hintergrundbild Und dann können wir die vertikale Kiste haben , in der wir die Gesundheit und die Rüstung haben Schlagen wir sie in diese vertikale Kiste. Nun zu der horizontalen Box Anstatt die Polsterung hier drinnen zu haben, können Sie sehen, dass sie doppelt hinzugefügt wurde, weil sie für beide eine Polsterung hinzufügt. Lass uns das einfach kopieren Ich werde auf diesen Pfeil klicken, um ihn zu entfernen. Klicken Sie auch hier auf das horizontale Feld. Entfernen Sie es, fügen Sie es stattdessen für das vertikale Feld hinzu, das übergeordnete Feld dieser beiden. Klicken Sie hier, fügen Sie den Abstand Sie zuvor hatten, und jetzt haben Sie ihn hier. Fügen wir einfach wieder einen Abstandhalter zwischen diesen beiden da sie hier für den Abstand zu nahe beieinander liegen Das ist das Y. Ich füge 15 für das Symbol hinzu. Lass es uns in Icon Shield ändern. Ändern wir es für die Farbe der Füllung in dieses. Ändern wir es in das lila. Lass es mich einfach auch hier kopieren und einfügen. Ich denke, ja, vorerst sollte alles in Ordnung sein. Wenn Sie möchten, können Sie sie jetzt auch anklicken. Zum Beispiel dieses Bild. Dieses Bild. Ändern wir es auf die Sichtbarkeit von Hit Testable. Wir können nicht damit interagieren, mit der Maus, ich glaube an diesen und diesen Und wir können die Sichtbarkeit auch so ändern, dass sie auf Testbar steht. Ja, das sollte alles sein, nur damit die Maus nicht mit ihnen interagiert Wenn Sie in Zukunft interagieren müssen, werden wir ihre Namen später ändern , wenn wir sie als Variablen benötigen. Also können wir die Namen hier oben ändern, aber im Moment ist das erledigt. So sieht unser Gesundheitsteil aus. Wenn Sie auf Plate klicken, um sich anzusehen, wie es aussieht, vergrößern Sie den Bildschirm. So sieht es aus. Sieht nett aus. Jetzt haben wir die Gesundheit und die Rüstung und können sie um Funktionen erweitern. 159. 11.02 Anwenden von Schäden: Jetzt, wo wir das Gesunde haben, wollen wir weitermachen und etwas Schaden anrichten Wenn wir jetzt zur Spielerbasis gehen, haben wir dieses Projektil, diese Linienspur, die wir hier abschießen. Wir wollen damit sagen, wenn der Schauspieler den Tech-Spieler hat, wollen wir ihm Schaden zufügen. Um Schaden anzurichten, ziehst du einfach von hier weg und sagst Schaden anrichten. Du hast diese Funktion und sie ist sehr einfach zu bedienen, sie wird das wegnehmen. Wir haben etwas mehr Platz zum Arbeiten. Hier richten wir etwas Schaden an. Jetzt müssen Sie angeben, wie viel Schaden Sie anrichten möchten? Nehmen wir zum Beispiel an, wir haben eine statische Zahl. Sagen wir 20. Jetzt müssen wir auch angeben, wer der beschädigte Schauspieler ist . Es ist der Spieler. Wir treffen hier den Erfolgsdarsteller. Vom Hauptdarsteller aus können Sie ihn anklicken, ziehen und einstecken. Okay, jetzt haben wir den beschädigten Schauspieler. Lass es uns einfach ausprobieren und schauen, ob es funktioniert, um zu testen, ob es tatsächlich funktioniert. Lassen Sie uns hier weitermachen und jedes Schadensfall verursachen. Bevor ich das Schadenereignis mache, möchte ich eigentlich ein neues Diagramm erstellen, damit wir hier nicht zu viele Dinge hineinpacken. Das alles ist in Ordnung. Aber wenn wir Schaden anrichten, möchte ich hier zu einem anderen Ereignis oder einer anderen Grafik gehen. Nennen wir es Gesundheit und Gesundheit, Rüstung und Schaden. Nennen wir es so. Drinnen, wenn du mit der rechten Maustaste klickst und „Irgendwelcher Schaden“ sagst. Jetzt wird dieses Event immer dann gespielt , wenn ein Spieler Schaden erleidet. Wir können einfach versuchen, eine Zeichenfolge auf den Bildschirm zu drucken , um zu sehen, ob sie funktioniert. Und ziehen Sie diesen Schaden in diese Zeichenfolge, es druckt aus, wie viel Schaden wir dem Spieler zufügen. Wenn wir nun auf Play klicken und hier Terrorist auswählen und hier Terris auswählen. Wenn ich einfach eine Waffe in die Hand nehme und versuche, auf den Spieler zu schießen, siehst du, dass 20 auf dem Bildschirm angezeigt werden, weil ich diesem Spieler jetzt 20 Schaden zufüge Okay, dieser Code funktioniert. Wenn ich jetzt zurückgehe, anstatt 20 Schaden wie eine statische Zahl zuzufügen, lassen Sie uns noch einmal innerhalb einer Struktur weitermachen, lassen Sie uns die Struktur darin öffnen. Fügen wir zwei Variablen hinzu. Sie sind sowohl ein Float als auch ein Float. Nun zum ersten, wie wir es nennen wollen, nennen wir es Kopfschaden. Nun, was du tun kannst, du kannst es sehr spezifisch machen, zum Beispiel, wie viel Schaden du anrichten solltest, wenn du die Beine triffst? Wie viel Schaden solltest du anrichten , wenn du die Arme triffst und so weiter? Aber um diesen Kurs einfach kürzer, komplex oder kürzer und einfach zu halten , eher wird er für diesen Kurs sehr lang, halten Sie ihn einfach ein bisschen einfacher. Ich werde einen Schaden für den Kopf und einen Schaden für den Körper anrichten. Körperschaden, zwei Arten von Schäden. Ich werde Ihnen jedoch zeigen, wie Sie den Rest erledigen können. Es dauert etwas länger, aber der gleiche Vorgang. Okay, jetzt haben wir es in unserer Struktur. Jetzt müssen wir es auch zur Datentabelle hinzufügen. Also mach weiter und öffne die Datentabelle hier drin. Also, bevor ich das mache, werde ich den Schaden hierher verlagern , nur um ein bisschen besser organisiert zu bleiben. Nach der OP werde ich hier den Kopf- und den Körperschaden anrichten. Maximieren wir es nach dem maximalen MO. Lassen Sie mich einfach zwei Spalten nach rechts hinzufügen. Der erste wird als Kopfschaden bezeichnet, der nächste als Körperschaden. Dann musst du angeben, wie viel Schaden du anrichtest. Lassen Sie mich zum Beispiel sagen, für den Kopfschaden füge ich 20 Schaden zu, ich ziehe 20 Lebenspunkte ab ich 20 Schaden zu, ich ziehe 20 Lebenspunkte Was den Körperschaden angeht, so füge ich nur zehn Schaden zu. Ich werde das Gleiche tun. Eigentlich sollten wir es einfach ändern, um zu sehen, ob es für die vier einen Unterschied gibt. Nehmen wir an, wir verursachen 15 Schaden und fünf Schaden, vielleicht sind das bis zu acht Schaden Für die Pistole ist das viel weniger Zehn Schaden zum Beispiel. Und sagen wir hier fünf Schäden. Okay, also du kannst das einfach so einstellen , wie du willst. Laden wir es jetzt als CSV-Datei herunter und lassen Sie mich hier zu meinem Download-Ordner gehen. Ich werde es erneut in T Weapon Info umbenennen. wir jetzt wieder hier Gehen wir jetzt wieder hier zu den Datentabellen. Und lassen Sie mich das einfach schließen und die Datentabelle hier importieren. Okay, jetzt haben wir diese Informationen, lassen Sie uns einfach alles speichern. Jetzt stürzt es manchmal ab, wenn Sie versuchen, etwas innerhalb einer Struktur zu speichern und zu bearbeiten. Das ist normal, wie so oft. Wenn Sie diese Struktur bearbeiten und neue Werte und ähnliches hinzufügen, stürzt sie normalerweise einfach ab. Denken Sie nur daran, Ihre Arbeit zu speichern. Stellen Sie sicher, dass ich einfach die Datentabelle öffne, um sicherzugehen , dass alle meine Werte eingegeben sind, genau wie zuvor, und das ist nicht Sie können sehen, dass es hier unten ist. Es stürzt manchmal ab und du musst es hier wiederholen. Aber zum Glück haben wir nicht viel zu tun, wir müssen das nur hierher ziehen und dann kann ich die Datentabelle einfach wieder hierher ziehen. Okay, lass uns jetzt alles speichern und hoffentlich nicht abstürzen. Jetzt hat es geklappt. Lass uns jetzt die Spielerbasis öffnen. Öffne im Player die Spielerbasis. Lassen Sie uns nun versuchen, den Kopf - und den Körperschaden zu verursachen. Nun suchen Sie normalerweise danach ob Sie zu den Assets gehen, die Sie den Player importiert haben. Hier haben wir das Spielerskelett, das Skelettnetz des Spielers. Aber wir haben auch ein sogenanntes Physik-Asset. Das ist tatsächlich der Punkt , an dem du zuschlägst. Bei dieser physikalischen Anlage triffst du den Spieler. Sie können versuchen, dieses Physik-Asset anzupassen. Sie können diese Formen vergrößern und verkleinern. Das ist eigentlich deine Hitbox. Du kannst den Spieler so aufbauen, wie du Formen erschaffen kannst, sie im Grunde einfach töten , sie herunterspielen und so weiter. Aber was den Kopfschaden angeht, treffen wir gerade diesen. Lass mich einfach die Kamerageschwindigkeit minimieren. Du triffst hier auf diese Form und diese wird als Treffer bezeichnet. Sie werden im Grunde Körperform genannt. Wenn ich zurück zur Spielerbasis gehe. Jetzt hier drüben zu den Treffergebnissen, wenn du nochmal auf den Pfeil klickst. Lass uns nach dem angerichteten Schaden hier drüben. Ich möchte das nur ausdrucken, damit du es sehen kannst. Ich möchte den Hit Bone-Namen ausdrucken, Hit Bone Name, und ihn hierher ziehen. Und ich werde das einfach noch einmal minimieren. Jetzt drucken wir den Namen Hit Bone aus. Wir können sehen, was passiert, wenn ich auf „ Terrorist spielen“ und ich auch als Terrorist für den Himmel anklicke . Lass uns diesen Spieler einfach erschießen. Wenn ich auf den Kopf schieße, steht es drin. Wenn ich auf das Bein schieße, heißt es Oberschenkel. Das ist, das ist der Fuß, richtig? Das ist der Oberschenkel Und das ist die Hand, Hand, rechts, Hand links und so weiter Sie können sehen, dass wir auf verschiedene Körperteile schießen. Um es für uns etwas interessanter zu machen, nehmen wir einfach den Namen Hit Bone. Was wir tun können, ist genau wie bei Aufzählungen, wo Sie die Aufzählung einschalten können, Sie können hier den Namen einschalten, den Namen einschalten, denn denken Sie daran, dass dies eine Namensvariable ist den Namen einschalten, können Sie ihn einfach einstecken, bevor Sie den Schaden anrichten, und auf das Plus für den Spin klicken Jetzt musst du angeben, wie der Name lautet. Ich heiße Head. Wenn du einfach hierher zurückgehst, kannst du sehen, dass es Head heißt. Du kannst weitermachen und Kopf schreiben und es dann standardmäßig mit hier verbinden Ich werde standardmäßig Körperschaden anwenden, aber wenn es Kopf ist, werden wir den Kopfschaden anwenden. Ich werde das einfach kopieren und einfügen. Und standardmäßig werde ich den Körperschaden anwenden. Lassen Sie uns jetzt die Informationen hier abrufen. Wenn ich einfach das alles kopiere, unsere Waffeninformationen hier unten und unsere Waffenvariable, glaube ich, dass es auf dieser langen Seite hier ist. Eigentlich ist das der Erfolgsdarsteller. Das ist die Waffe. Ich stecke es einfach hier ein. Verstecke nicht verbundene Pins. Ich will nur den Körperschaden sehen, den Kopfschaden hier, und den Kopfschaden in Verbindung bringen, den Körperschaden in Verbindung bringen, und auch für den geschädigten Schauspieler Denk daran, das wieder so anzuschließen, okay? Immer wenn wir den Kopf treffen, fügen wir dem Kopf Schaden zu. Immer wenn wir den Körper treffen, fügen wir dem Körper Schaden zu. Lass uns einfach auf Play klicken und sehen, was passiert. Wenn ich jetzt wieder als Terrorist spiele und den Kopf schieße, kannst du sehen, dass er 20 Schaden anrichtet. Wenn ich auf die Leiche schieße, fügt sie zehn Schaden zu. Okay, jetzt haben wir also quasi einen Kopfschussschaden. Okay, großartig. Also das funktioniert. Ich werde das nur minimieren. Und ich werde hier auch den Debug für die Zeilenleiste entfernen , damit ich die roten Linien nicht sehe Und das war's dafür. Auch hier können Sie ein komplexeres System erstellen, aber nur um diesen Kurs nicht zu komplex zu machen , können wir ihn so machen. Wir fügen Kopf - und Körperschäden zu. Denken Sie daran, die Werte aus der Datentabelle einzugeben. Sie können diese Zahlen anpassen. Ja, lassen Sie uns weitermachen und mit dem nächsten weitermachen. 160. 11.03 Struktur der Spielerinformationen: Ordnung, jetzt werden wir die Lebenspunkte für den Spieler und die Rüstung und die Menge und so weiter hinzufügen für den Spieler und die Rüstung und die Menge und so weiter Aber bevor wir das tun, lassen Sie uns tatsächlich eine Spielerstruktur erstellen. Gehen wir jetzt zu den Bauplänen und dann zu Strukturen. Und jetzt klicken wir statt der Waffeninformationen mit der rechten Maustaste auf Blueprint und fügen dann eine neue Und lassen Sie mich das One Layer Info nennen. Lass es uns öffnen. Nun zu den Spielerinformationen. Was ich hinzufügen möchte, ist die maximale Gesundheit, die der Spieler haben kann? Das ist eine Gleitkommazahl, keine Ganzzahl, weil sie manchmal wie eine Dezimalstelle berechnet Und dann steigerst du die Gesundheit. Dann hast du die Max Armor. Denken Sie daran, dass wir auch die Rüstung im Spiel haben. Ich kann dem noch mehr hinzufügen. Denken Sie daran, wenn Sie zur Spieler- und Spielerbasis gehen, wir haben auch einige Laufeigenschaften. Wir haben die Gehgeschwindigkeit, die Laufgeschwindigkeit und die Duckgeschwindigkeit. Sie können es auch hier drinnen haben. Wir brauchen hier draußen keine separaten Variablen. Füge einfach die Laufgeschwindigkeit hinzu. Ich füge die Gehgeschwindigkeit hinzu, ich kann auch die Gehgeschwindigkeit hinzufügen So wie das. Okay, jetzt haben wir das. Was wir tun können, wir können sie später löschen. Also müssen wir das zuerst beenden , bevor wir es löschen. Was auch immer Sie haben, wie einen statischen Wert, der sich nicht ändern wird. Was ist zum Beispiel die Laufgeschwindigkeit, die Gehgeschwindigkeit, die Geschwindigkeit und die Duckgeschwindigkeit Und sie werden sich während des Spiels nicht ändern. Wenn du statische Zahlen hast, ist es wirklich nett, sie innerhalb einer Struktur hinzuzufügen. Ich glaube, das war es hier drinnen. Was wir tun können, einfach weitermachen und es speichern. Rette alles. Lassen Sie uns mit dem nächsten fortfahren und die Datentabelle erstellen. 161. 11.04 Tabelle für Spielerinformationsdaten: In Ordnung, also hier bin ich wieder bei den Datentabellen. Nun zu diesem, dem alten, werde ich hier die DT-Waffeninformationen abrufen. Lassen Sie uns tatsächlich eine neue erstellen. Ich werde das eigentlich nur duplizieren, damit ich das ganze Zeug nicht neu organisieren muss Und ich nenne es einfach DT Player Info. Lass uns einfach auf Steuerung A klicken und dann einfach alles löschen. Okay, Sache hier. Gehen wir einfach zurück zu, gehen wir zurück zur Struktur und schauen, was wir haben. Nicht die Waffeninformationen, die Spielerinformationen hier drin. Was wir zuerst haben. Nun, bevor Sie etwas hinzufügen, benötigen Sie eine ID-Spalte. Das haben wir in der Waffeninformation. Denkt dran, wir haben dieses Ding namens ID. Wir brauchen eine ID für diese, wir brauchen sie nicht wirklich für die ID. Du kannst einfach den Namen nennen, du kannst ihn zum Beispiel einen nennen. Nennen wir es einfach eins , weil wir nur eine Zeile für den Spieler mit allen Informationen haben werden. Wir brauchen hier nicht mehrere Zeilen. Okay, für den ersten haben wir die maximale Gesundheit. Dann haben wir die Panzerung und dann haben wir die Laufgeschwindigkeit. Dann haben wir die Gehgeschwindigkeit und dann haben wir die Duckgeschwindigkeit Okay, wir haben diese Werte. Und lass mich das einfach etwas kleiner machen . Was Sie jetzt tun können, ist für die ID, wir haben sie für die maximale Gesundheit auf eins gesetzt. Ich werde es sowohl für die maximale Panzerung als auch für die Laufgeschwindigkeit auf 100 setzen . Jetzt haben wir diese beiden bereits auf den Standardwert gesetzt. Wenn ich zum Player gehe, klicke ich auf die Laufgeschwindigkeit, sie ist auf 750 eingestellt. Im Moment werde ich es auf 750 einstellen. Für die Gehgeschwindigkeit habe ich sie auf 400 eingestellt, und für die Gehgeschwindigkeit habe ich sie auf 200 gesetzt Also lass uns das schreiben. Jetzt sind wir bereit. Lass uns wie zuvor auf Datei herunterladen TSV klicken. Öffnen wir es hier und nennen wir es One Player Info Lass uns das schließen. Jetzt drüben in den Datentabellen. Jetzt, bevor wir es importieren, werde ich ein neues erstellen. Gehen Sie zu Verschiedenes und wählen Sie Datentabelle aus. Wählen wir nun die Spielerinformationen aus. Klicken Sie auf. Okay. Nennen wir es T Layer Info. Es ist hier. Jetzt können wir es importieren , wenn Sie jetzt darauf klicken und es hineinziehen. Jetzt hat es alle Werte hochgeladen. Auch jetzt funktioniert es und wir können alles speichern. Denken Sie jetzt daran, dass wir, wenn wir diese Datentabelle verwenden müssen, wie zuvor eine Funktion innerhalb der Bibliothek erstellen müssen. Lassen Sie uns eine neue Funktion in der Bibliothek erstellen. Neue Funktion, nennen wir sie, holen wir uns Spielerinformationen, denn das müssen wir tun. Lass uns das Ding einfach hier kopieren und einfügen . Lass uns das alles kopieren und einfügen. Fügen Sie es hier ein. Verbinde das wie hier. Und lass es uns hier verbinden. Anstelle der DT-Waffeninformationen benötigen wir die DT-Spielerinformationen und kehren zurück. Ziehe es hierher und nenne es Info. Lassen Sie uns alles kompilieren und speichern. Denken Sie auch daran, es in eine reine Funktion wie diese umzuwandeln . Weil wir nur Informationen erhalten, wir legen keine Informationen fest. Lassen Sie uns versuchen, es nur zu verwenden, um zu sehen, ob etwas nicht stimmt. Gehen wir zum Beispiel zu dem Spieler, seiner Basis. Nehmen wir an, ich wollte es benutzen. Hier kann ich mit Recht sagen, Spielerinformationen abrufen, und hier sind sie. Jetzt kannst du die Spielerinformationen von diesem abrufen. Okay, im Moment haben wir nicht wirklich einen Ausweis. Genau wie damals, als wir es mit den Waffen getan haben. Als hätten wir einen Waffennamen. Aus dem Waffennamen extrahieren wir Werte für die Spielerbasis Wir haben eigentlich nur eine Codezeile oder eine Zeile in der Datentabelle, wir haben hier nur diese Zeile. Es macht nicht wirklich Sinn , jedes Mal eine zu schreiben , um aus dieser Zeile aus dieser ID zu extrahieren, weil sie die ganze Zeit gleich bleiben wird. Um es besser zu machen, was wir tun können, können wir einfach zurück zu den Spielerinformationen hier gehen , dann können wir das Ganze einfach unterbrechen. Wir können das alles auch einfach hier löschen und diese Variable von hier entfernen. Jetzt können Sie nur noch den Zeilennamen angeben, es ist immer einer. Setzen Sie einfach den Zeilennamen auf eins. Das ist es, wenn ich jetzt in der Spielerbasis kompiliere, wenn ich Spielerinformationen sage, bekommt es jetzt immer diese Spielerinformationen. Wir müssen hier also nicht wirklich etwas schreiben und es macht auch keinen Sinn , wenn wir nur eine Zeile haben. Wir bekommen sowieso nur die Datentabelleninformationen aus dieser ersten Zeile. Okay? Jetzt haben wir diese Informationen und können sie verwenden. Speichern wir einfach alles und fahren mit dem nächsten fort. 162. 11.05 Festlegen der Grundgesundheit und -rüstung: In Ordnung, jetzt sind wir bereit, die Basisgesundheit einzustellen. Im Moment, wenn wir in das Level spawnen, zeigt unsere Gesundheit im Grunde 76 an, weil wir das in der Benutzeroberfläche festgelegt haben Das ist nur eine statische Zahl , die wir hier durch diesen Prozentsatz festgelegt haben Das ergibt nicht wirklich Sinn. Machen wir weiter und legen die Grundgesundheit und Rüstung fest, wann immer wir spawnen Lassen Sie uns dafür die Spielerbasis öffnen, sie ist weg . Lass mich zur Grafik Gesundheit, Rüstung und Schaden gehen. Ich möchte zwei Events veranstalten. Ich möchte das erste mit dem Namen Set Layer Health erstellen. Ich möchte den anderen namens Set Layer Armor machen. Wir haben diese beiden. Wir wollen es auch über den Server laufen lassen. Lass es uns über den Server laufen lassen. Legen Sie die Ebene fest und führen Sie diese auch auf dem Server aus. Lege die Panzerung der Schicht fest. Lassen Sie uns sie sowohl auf dem Server als auch zuverlässig ausführen. Lassen Sie uns den ersten Server hier oben laufen lassen, indem wir per Drag-and-Drag die Option „ Ebene festlegen“ für die Panzerung angeben Lassen Sie uns von hier aus zuschlagen und sagen, Serverschicht, Spielerpanzerung einfach so einstellen Okay, jetzt verschiebe ich das einfach nach unten, damit wir mehr Platz haben, mit dem wir arbeiten können. Was wir tun wollen, ist einfach die Gesundheitsvariable festzulegen. Jetzt brauchen wir hier zwei Variablen. Wir brauchen eine namens Current Health, weil wir in der Struktur eine namens Max Health erstellt haben. Das ist die maximale Gesundheit, die ein Spieler haben kann. Aber wir brauchen auch eine für die aktuelle Gesundheit. Im Moment haben wir die aktuelle Gesundheit und die aktuelle Rüstung, beide für die Gesundheit hier. Nehmen wir es hier auf. Lassen Sie uns den Zustand auf dem Server einstellen. Ziehen Sie diesen Pin in das Ereignis, in dem er einen erstellt. Und ziehe diesen Pin auch weiter in dieses Event hinein. Dieser. Denken Sie daran, dass Sie die Variable auf dem Server setzen. Sie müssen dies replizieren lassen. Der Client kann auch sehen, wie es um die Gesundheit der anderen Spieler steht. Du musst es auch für hier tun. Lasst uns nach der Rüstung suchen. Stecken Sie es ein und schließen Sie es hier an. Stecken Sie es hier ein. Stellen wir diesen so ein, dass er auch repliziert wird. Jetzt haben wir das. Jetzt können wir sie einfach zusammenbringen lassen. Jetzt kann ich zum Startspiel zurückkehren. Hier möchte ich die Basisgesundheit der Spieler einstellen. Immer wenn der Spieler sofort erscheint, stellst du die Gesundheit hier Ich möchte von hier aus Regie führen und „Gesundheit einstellen“ sagen. Unsere Set-Spieler-Gesundheit nennen wir „Set-Spieler-Gesundheit“. Wir wollen auch die andere Variante namens Set Player Armor verwenden . Dann müssen wir angeben, was die aktuelle Gesundheit und die aktuelle Rüstung sind. Es ist voll, wenn du spawnst. Wenn du spawnst, möchte ich sagen, hol dir Spielerinformationen. Wir können es hier kaputt machen. Dann können wir hier die maximale Gesundheit für die Rüstung festlegen. Wir können es so machen. Aber ich glaube tatsächlich, dass ich zwei verschiedene Funktionen machen werde. Aber bei dieser werde ich mit der rechten Maustaste klicken und sagen, eine Funktion hochstufen oder zu einer Funktion zusammenklappen. Nennen wir das, dem Spieler die maximale Gesundheit und machen daraus eine reine Funktion. Anstatt dieses verrückten, verrückten Namens werde ich einfach Max Health sagen. Lass uns hier reingehen. Lass uns das einfach ein bisschen organisieren. Lass es uns auch für den anderen machen. Lass mich das einfach kopieren und einfügen. Hervorragend. Kopiere das und füge es ein. Lass mich das hier einfach duplizieren . Duplizieren. Nennen wir das Get Armor statt Ich werde diesen entfernen. Nenn es Max Armor. Für die maximale Gesundheit trennen wir es, schalten es auf Max Armor um und schließen es hier an. Jetzt können wir das nehmen, Spieler Max Armor holen und es auch hier einstecken. Okay, wir haben das nur ein bisschen sauberer aussehen lassen. Und jetzt setzen wir den Spielern maximale Gesundheit und maximale Rüstung. Wenn wir jetzt auf Play klicken, wird im Moment nichts angezeigt. Und vielleicht hast du es schon erraten. Das liegt daran, dass wir die Benutzeroberfläche gerade nicht aktualisieren Wir setzen nur diese Variablen und jetzt sind sie korrekt Wir werden jetzt jedoch nie zur Benutzeroberfläche gehen und diese Werte hier tatsächlich aktualisieren. Das werden wir in der nächsten Version tun. 163. 11.06 UI-Funktionalität für Gesundheit und Rüstung: Hier befinde ich mich also im Hauptentwurf von Uji. Und jetzt lasst uns weitermachen und die Gesundheit und die Rüstung aktualisieren Als Erstes müssen wir sie also innerhalb des Event-Graphen verwenden. Um dies zu tun, denken Sie daran, dass wir sie als Variablen benötigen. Klicken Sie auf den ersten. Dies ist der Fortschrittsteil für die Gesundheit. Ich nenne es Gesundheit, nur wegen des Fortschrittsbalkens. Das nächste Mal nenne ich es Armor. Denken Sie auch daran, dass dies variabel ist. Wir können sie also hier im Diagramm als Variablen sehen. Und ich kann sie verwenden und wir können sie modifizieren. Lass uns auch auf den Text klicken. Den Text müssen wir ebenfalls ändern. Der erste heißt Text Health und ist ebenfalls variabel. Der nächste heißt Arm Fixed Armor und ist ebenfalls variabel. Jetzt brauchen wir eigentlich nichts anderes als Variable. Das ist das einzige, was wir bearbeiten müssen. Lassen Sie uns kompilieren und zum Diagramm übergehen. Ich werde zwei neue Funktionen machen, die erste heißt Update, Update, Health I. Ich werde auch die andere mit dem Namen Update machen, oder sie sind fast fertig, oder sie werden tatsächlich dieselbe Logik verwenden. Aber diese ist für die Gesundheit, diese ist für die Ama. Okay. Was müssen wir wirklich tun? Das müssen Sie sich bei Ihrer Codierung immer fragen. Was versuchen wir gerade zu tun? Wir haben diesen Prozentsatz hier für den Fortschrittsbalken festgelegt. Okay, lass uns zur Grafik gehen. Nehmen wir diesen Fortschritt, bringen wir ihn hierher. Lassen Sie uns jetzt zuschlagen und Prozent sagen, denn das ist es , was wir hier bearbeiten wollen. Es ist ein festgelegter Prozentsatz, machen wir das. Das ist einfach. Lass es uns verbinden. Es gibt etwas, das Sie über den Prozentsatz eines Fortschrittsbalkens wissen müssen. Sie können hier sehen, es geht 0-1 Es geht nicht 0-100%, es geht 0-11 ist Was wir jetzt tun müssen, die aktuelle Gesundheit anhand eines variablen Zustands zu ermitteln. Lassen Sie uns das variabel machen, diesen aktuellen Zustand. Nehmen wir zum Beispiel an, ich habe 100 Lebenspunkte und habe ungefähr zehn Schaden erlitten, und jetzt habe ich 90 Lebenspunkte. Wenn Sie das jetzt einstecken, wird der Wert 90 sein. Das macht keinen Sinn, weil der Maximalwert eins ist. Auch wenn du noch etwa eine Gesundheit von 100 übrig hast, wird dir trotzdem die volle Leiste angezeigt weil eins hier tatsächlich die volle Leiste ist. Wir müssen es irgendwie teilen. Wir brauchen auch die maximale Gesundheit , aktuelle Gesundheit, Gesundheit. Wenn wir diese teilen, wenn Sie zum Beispiel von der aktuellen Gesundheit ziehen und die maximale Gesundheit teilen die maximale Gesundheit teilen, nehmen wir an, Sie haben 90 Lebenspunkte. Wir können 90/100 sagen, weil das deine maximale Gesundheit ist. Das wird 0,9 sein, dann die 0,9, die wir hier eintippen, das wird korrekt sein, denn jetzt wird der Prozentbalken ungefähr so sein, wann immer du zehn verlierst, okay? Nehmen wir zum Beispiel an, ich habe noch 40 Lebenspunkte übrig, 40/100 ist 0,4 und das passt hier rein. Und der Fortschrittsbalken wird bei 0,4 stehen. So wird er jetzt korrekt sein Okay, das ist aus dem Weg geräumt. Lass uns das Gleiche hier machen. Wir haben die aktuelle Panzerung und wir haben die maximale Panzerung. Dann teilen wir diese beiden hier zusammen auf. Nehmen wir den Fortschrittsbalken für die Rüstung und sagen wir festgelegte Prozentwerte. Mach weiter und verbinde sie miteinander. Lassen Sie uns das jetzt hier verbinden. Jetzt stellen wir auch die Rüstung richtig ein. Als Nächstes müssen wir auch den Text hier einstellen. Lass uns auf den Text klicken. Das ist dieser Text Gesundheit. Nehmen wir es hier und sagen Text festlegen. Lass uns das hier sehen. Text einstellen, es ist dieser. Und lassen Sie uns es jetzt verbinden. Text festlegen. Machen wir dasselbe mit dem Rüstungsset. Wir müssen beide aktualisieren. Was muss im Text stehen? Was müssen Sie hier anzeigen? Das ist sehr einfach. Nur diese Variable, der aktuelle Gesundheitszustand. Wenn mein aktueller Gesundheitszustand 40 ist, möchte ich hier die Zahl 40 anzeigen. Sehr einfach. Lassen Sie uns einfach von der aktuellen Gesundheit streichen und sie hier einloggen. Und so wie Unreal Engine die Float-Variable automatisch in eine Textvariable konvertiert die Float-Variable automatisch in und sie einfach hier einfügt. Okay, sehr nett, sehr einfach. Lass uns das Gleiche hier machen. Lasst uns diese aktuelle Rüstung durchbrechen. Stecken Sie es ein. Und einfach so, das ist jetzt fertig. Okay, das war es also. Das aktualisiert jetzt die Rüstung und das aktualisiert die Gesundheit. Lass uns mit dem nächsten weitermachen. 164. 11.07 Aktualisierung der Benutzeroberfläche für Gesundheit und Rüstung: Okay, was wir jetzt tun müssen, ist Gesundheit des Spielers zu aktualisieren Jetzt kommen wir gleich zur Gesundheit. Denken Sie daran, dass wir in der Spielerbasis im Van-Diagramm die Gesundheit und Rüstung des Spielers beim Spawnen eingestellt die Gesundheit und Rüstung des Spielers haben. Das sollte aktualisiert werden Jetzt können wir es bei einem anderen Event aktualisieren. Aber ich denke, es ist besser, es einfach so zu machen, als würde man den Code hier fortsetzen. Und der Zustand, wenn wir den Zustand festlegen, setzen wir die Variable und replizieren sie Lassen Sie uns den Code hier einfach fortsetzen. Lassen Sie mich das einfach runterziehen. Ich habe mehr Platz. Lassen Sie mich ein neues Ereignis erstellen. Denken Sie daran, wenn Sie die Benutzeroberfläche aktualisieren, läuft sie über den Client. Die Benutzeroberfläche läuft über den Client. Du katalierst es, mach es hier oben. Wir müssen ein Kundenevent namens Set Player Health erstellen namens Set Player Health Dann musst du das auf einem eigenen Client zuverlässig ausführen. Nun, was Sie mit diesem machen müssen, ist, lassen Sie mich das alles hier wegnehmen Wir haben bereits die WB-Hauptreferenz. Denken Sie daran, dass wir den Player-Controller hier haben. Und das können wir so sagen. Dann können wir von hier wegziehen und Update sagen, ich glaube, wir haben es Update Health genannt, dieses hier. Jetzt können wir es wie folgt mit dem Event verbinden. Wir können den Zustand jetzt hier angeben, nennen wir das Client-Event CL-Update oder CL-Set-Spielergesundheit. Dieser für den aktuellen Gesundheitszustand. Wir werden diesen hier einfach einstecken, um die maximale Gesundheit zu erreichen. Wir haben bereits eine Funktion entwickelt, die maximale Spielergesundheit festlegt. So wie hier. Okay, das ist voll funktionsfähig. Lassen Sie uns jetzt dasselbe für die Rüstung tun. Wir haben die Set-Player-Rüstung. Lass mich das einfach ein bisschen nach unten verschieben. Lasst uns ein neues Event namens L, Set Armor veranstalten. Lass es über den Client laufen, zuverlässig. Dann lass den Client hier oben laufen, Set Player Armor. Dieser hier für diesen, kurz bevor du die Player-Controller-Referenz brauchst, brauchst du B main. Dann müssen wir das Update Armor y Connect aufrufen und die Variablen wie zuvor mit dem Event verbinden. Lassen Sie uns hier die aktuelle Rüstung verbinden. Für die maximale Panzerung werde ich die Funktion einschalten und dem Spieler die maximale Rüstung geben. Denken Sie daran, dass die Funktion im Grunde nur darin besteht die Spielerinformationen abzurufen und diese Informationen von hier aus zu übernehmen. Okay, lasst uns hier zum Event-Diagramm, Gesundheit und Rüstung, zurückkehren . Und jetzt sollte es funktionieren. Wir nennen das Event, es wird die Benutzeroberfläche aktualisieren, was auch immer wir Set Player Armor oder Set Player Health nennen . Lass uns auf Play klicken. Wenn ich jetzt Terris auswähle, kannst du sehen, dass der Wert korrekt auf 100.100 gesetzt ist. Was gerade passiert, ist, dass wir beim Start des Spiels die Gesundheit der Spieler einstellen Merken Sie sich die Spielergesundheit, die Sie in Ihrer Datentabelle definiert haben , diese maximale Es bestimmt die Gesundheit des Spielers. Es wird hier zu diesem Event gehen , das über den Server läuft. Der Server wird diese Variable auf das setzen , was Sie hier eingegeben haben Dann wird er die Benutzeroberfläche aktualisieren, diese Werte, weil es den Client durchläuft und die Benutzeroberfläche aktualisiert Es geht hier durch, um die Health-Benutzeroberfläche zu aktualisieren. Es werden die Nummern verwendet, mit denen Sie sich angemeldet haben. Es gibt dir den Prozentsatz , weil du diese geteilt hast. Und dann zeigen Sie über diesen auch den Text korrekt auf dem Bildschirm an. Das war es für die Aktualisierung der Gesundheit und der Benutzeroberfläche, genauer gesagt für unsere Gesundheit und Rüstung. Und jetzt können wir dieses Set für Spielergesundheit und Rüstung auch verwenden dieses Set für Spielergesundheit und , wenn wir dem Spieler Schaden zufügen. 165. 11.08 Umgang mit Gesundheitsschäden: Nun, da wir mit dem Set Gesundheit und dem Set Rüstung fertig sind , wollen wir weitermachen und dem Spieler den Schaden zufügen Hier haben wir alle Damage-Events, die wir zuvor verwendet haben, und wir haben es nur verwendet, um zu sehen, ob wir dem Spieler tatsächlich Schaden zufügen. Wir haben in den vorherigen Lektionen überprüft, dass man, wenn man den Kopf trifft, Schaden anrichtet. Wenn du den Körper triffst, fügst du weiteren Schaden zu. Und wir können sehen, dass es gedruckt wird, also funktioniert es tatsächlich. Jeder Schaden funktioniert hier. Okay, gut. Also, jetzt wollen wir hier den echten Schaden verursachen, wann immer du Schaden verursachst, und der kommt vom angerichteten Schaden. Wenn du also zur Schusslogik zurückkehrst was die Spurlinie angeht, Trace, wenn du den Spieler triffst, fügst du diesen Schaden zu. Wenn du einem Schauspieler Schaden zufügst, wird er automatisch dieses Ereignis auslösen, jedes Schadenereignis, wenn du den Schaden erleidest. Welchen Schaden ihr auch erleidet, das ist der Schaden, den ihr hier angerichtet habt , und zwar innerhalb des angerichteten Schadens. Und wir haben in unserer Datentabelle gesagt, dass wir dem Spieler hier mit jedem Schaden Schaden zufügen. Was wir jetzt tun können, die aktuelle Gesundheit des Spielers zu ermitteln. Wir können zum Beispiel sagen, dass meine Gesundheit momentan 100 ist. Dann können wir 100 minus sagen. Wir subtrahieren 100 von minus, sagen wir, der Schaden war zehn, das ergibt 90. Wir müssen die Gesundheit erneut einstellen. Bevor ich das mache, hätte ich gerne diesen Klemmenknoten. Ich stelle nur sicher, dass wir nicht unter Null fallen. Wir wollen zum Beispiel keine Gesundheit von minus zehn haben. Wir klammern diesen Wert so fest, dass das Minimum Null ist, sodass er nicht mehr unter Null fallen kann. Und das Maximum, ich ziehe es einfach, Spieler die maximale Gesundheit und stecke es hier ein. Jetzt ist es festgeklemmt. Und dann können wir die Gesundheit wieder einstellen Lassen Sie uns den Zustand auf diesen Wert setzen, den wir haben. Okay? Was passiert ist, dass du im Grunde zehn Schaden zufügst. Zum Beispiel wird die aktuelle Gesundheit angezeigt, die 100 minus zehn ist, also 90. Wir werden das hier durchgehen, um sicherzugehen , dass wir nicht unter Null fallen. Und der Wert von 90 wird hier eingegeben. Jetzt ist die neue Gesundheit, die wir haben, tatsächlich 90. Anstatt diesen Zustand so einzustellen, würde das funktionieren, denn wenn Sie dieses Symbol haben, bedeutet das, dass es auf dem Server läuft. Wenn Sie die Maus darüber halten und unten steht nur Autorität. Dieses Ereignis wird nur auf dem Server ausgelöst. Auch hier ist es in Ordnung, Variablen festzulegen, oder es ist richtig , Variablen auf dem Server festzulegen und sie dann zu replizieren. Das wird perfekt funktionieren. jedoch daran, dass wir dieses festgelegte Event zur Spielergesundheit bereits gemacht Dadurch wird auch die Benutzeroberfläche für uns aktualisiert, anstatt einfach diese Benutzeroberfläche erneut aufzurufen und wir müssen die Benutzeroberfläche aktualisieren. Wenn wir es auf diese Weise machen müssten, müssten wir das kopieren, hier einfügen und es so machen. Anstatt das zu tun, haben wir hier bereits eine Funktion oder ein Ereignis durchgeführt. Sagen wir, stellen Sie die Gesundheit der Spieler ein. Und wir können das einfach das nennen, was wir gerade gemacht haben. Und wir können es hier anschließen. Es wird das automatisch einfach durchgehen und auch die Benutzeroberfläche aktualisieren, weil wir es hier aufgerufen haben, okay. Ordnung, großartig. Nun auch hier zum Tod, wenn die aktuelle Gesundheit gleich Null ist und wir eine Verzweigung machen können, wenn das stimmt, wollen wir ein Todesereignis nennen. Das ist der Zeitpunkt, an dem der Spieler stirbt, wenn die aktuelle Gesundheit Null ist. Das machen wir später. Aber im Moment haben wir das miteinander verbunden. Okay, lass uns auf Play klicken und sehen ob es hier tatsächlich funktioniert. Wenn ich einfach eine Waffe nehme und auf den Spieler schieße, siehst du jetzt, dass der Spieler 90 tolle hat. Wenn ich in den Kopf schieße, hat er -20 geschossen. Jetzt habe ich 70 Lebenspunkte, die korrekt funktionieren. Lass es uns auf dem Server versuchen. Wenn der Server auf den Client schießt, lassen Sie mich das hier einfach minimieren. Wenn der Server auf den Client schießt , funktioniert das auch, super. Wenn ich hier wie eine andere Waffe plündere , funktioniert das auch In Ordnung, diese Logik funktioniert. Jetzt machen wir weiter und machen die Rüstung in der nächsten Lektion. 166. 11.09 Schaden an Rüstungen verursachen: Okay, was das Austeilen der Rüstung angeht, werden wir im Grunde dieselbe Methode anwenden die Rüstung angeht, möchte ich dem Spieler allerdings weniger Lebenspunkte geben, wenn du bereits Rüstung besitzt. Ich werde also nicht den gleichen Schaden an der Gesundheit anrichten, sondern das alles einfach so wegbewegen. Und ich will zuerst die Rüstung machen, sie einfach wegbewegen. Okay, lassen Sie uns jetzt die aktuelle Rüstung nehmen, am Anfang sind es 100. Was ich sagen will ist, nehmen wir diese Rüstung und ziehen sie vom Schaden ab Ich will es nicht eins nach dem anderen abziehen . Ich möchte diesen Wert, den Schaden, abziehen , wenn ich ihn einfach mit, sagen wir, 1,5 multipliziere und dann den Schaden auf die Rüstung anwenden möchte Die Rüstung wird viel schneller beschädigt als die aktuelle Gesundheit Sie wird nicht beschädigt werden wie die aktuelle Gesundheit. Es wird viel schneller beschädigt werden , weil wir es mit 1,5 multipliziert haben . Ich kann es auch einfach aus diesem ziehen, es bleibt hier so organisiert Fantastisch. Nun, mit dieser Subtraktion können wir wieder, genau wie zuvor, den Float klammern Wir sorgen dafür, dass es nicht unter Null fällt. Das Maximum ist, lasst uns diesem Spieler die maximale Rüstung geben und sie anschließen. Und jetzt stellen wir die aktuelle Panzerung ein. Auch hier haben wir die Funktion Set, Set Player Armor. Und wir werden die Rüstung einfach so einstellen. Und jetzt ist es implementiert, okay. Wenn du einfach hier spielst und wir es einfach ausprobieren können. Sie können hier sehen, dass ich der Kunde bin, der auf den Server schießt. Wir verlieren die Rüstung. Nun, es hat keinen Sinn, eine Rüstung zu haben, wenn du die Gesundheit verlierst , für die du sowieso beschädigt wirst. Im Moment macht das nicht wirklich Sinn, weil du immer noch Gesundheit verlierst und stirbst. Was ich sagen will ist, wenn du Rüstung hast, verlierst du langsamer Lebenspunkte, weniger Lebenspunkte. Was ich hier tun kann, anstatt den Schaden von der Gesundheit abzuziehen, diesen hier, anstatt den Schaden zu subtrahieren, den ich von hier ziehen und sagen möchte, dass du hier schweben wählst Jetzt wollen wir fragen, ist die Panzerung gleich Null? Nehmen wir die Rüstung und sagen wir, ist sie gleich Null? Wenn es heißt, wähle A, wenn das Mobbing wahr ist, dann wähle A. Wenn die Panzerung Null ist, bedeutet das, dass wir den Schaden, den wir vorher hatten, einfach so anrichten wollen Schaden, den wir vorher hatten, einfach so Allerdings ist die Panzerung momentan nicht Null. Das bedeutet, dass es hier der B-Wert ist. Das heißt, wir haben Panzerung und ich möchte dem Spieler langsamer Schaden zufügen. Wenn ich das einfach hierher ziehe, möchte ich von hier aus weiterleiten und dann sagen, dividiere diesen Schaden durch, sagen wir zum Beispiel, 2,2 0,5 Lass uns dann den Schaden zufügen. Wir reduzieren den Schaden tatsächlich bevor wir ihn dem Spieler zufügen. Okay, jetzt macht es Sinn , dass wir Rüstung haben, denn wenn wir Rüstung haben, werden wir tatsächlich weniger Schaden erleiden. Und lass uns auf Play klicken. Und lassen Sie uns diese Mechanik hier ausprobieren. Wenn ich zum Server gehe und einfach den Spieler hier erschieße, kannst du sehen, dass wir jetzt Schaden nehmen Bei diesem Wert müssen wir die Dezimalstellen entfernen. Das ist vorerst in Ordnung. Aber du kannst sehen, dass die Rüstung funktioniert. Immer wenn wir die Rüstung verlieren, werden wir eine Menge Schaden erleiden. Wir werden den Schaden hinnehmen, der ohne die Rüstung da ist. Okay, diese Funktionalität funktioniert. Du kannst diese Werte immer kontrollieren, wie viel Rüstung du hier verlierst und auch, wie viel er du verlierst. Aber jetzt funktioniert es für die Benutzeroberfläche. Wir müssen tatsächlich die Dezimalstellen entfernen. Gehen wir hier zurück in der B-Linie. Was ich tun möchte, ist, dass ich den Wert im Grunde runden möchte. Wenn ich diesen Float nehme, kann ich diesen verwenden, der Round heißt , und wir runden den Wert Wenn der Schaden gerade ist, sind wir nicht wirklich im Minus, sondern sagen wir mal im Plus Wenn wir 1,6 Lebenspunkte haben, werden es zwei. Wir können diesen Wert verwenden und den Wert runden. Und jetzt können wir das in den Text ziehen und einfügen. Lass uns hier einfach den alten löschen. Lassen Sie uns stattdessen das einrichten und hier dasselbe tun. Lass uns Round verwenden und diesen alten löschen. Steck es hier rein. Lassen Sie uns das organisieren. Lassen Sie uns das jetzt testen und sehen, ob es funktioniert. Ich erstelle einfach ein paar Routenknoten, damit es besser aussieht. Lassen Sie uns nun kompilieren, klicken Sie auf Play und lassen Sie uns sehen, ob es tatsächlich funktioniert. Wenn ich den Player zeige, können Sie sehen, dass er den Wert rundet , jetzt funktioniert alles so, wie es soll 167. 11.10 Verhinderung der Plünderung mehrerer Gewehre: Das Problem, mit dem wir gerade konfrontiert sind, ist, wenn ich einfach hier auf Play klicke und mein Fenster maximiere Sie können hier sehen, dass ich vier geplündert habe. Wenn ich jedoch hier klicke, um eine Waffe zu erbeuten, kann ich diese AK tatsächlich plündern Und ich kann diese vier sogar plündern. Ich kann sogar diese plündern und sie sind alle auf meinem Rücken Das sollte nicht passieren. Und da ist ein Puck im Code hier in der Spielerbasis Ich glaube, es ist eine einfache Lösung. Gehen wir rüber zum Grundstück. Hier die Logik ausrüsten und fallen lassen. Hier in der Waffe läuft etwas schief, weil wir ihm gesagt haben, dass er die Waffe nicht plündern soll , wenn es dieselbe Waffe ist wie die, die wir ausgerüstet haben Es ist diese Waffe mit einer Bitte um Beute, weil wir hier versuchen, die Waffe im Inventar zu finden Wir versuchen, die Waffe mit dem Inventar zu vergleichen, mit dem, das wir gerade plündern . Wir machen das gerade durch Wir nehmen die Waffe aus dem Inventar. Wir versuchen zu überprüfen, ob wir diese Waffe schon haben. Wenn wir sie schon haben, lassen wir die Waffe fallen. Ist falsch. Wenn wir sie nicht haben, laden wir die Waffe. Aus irgendeinem Grund glaube ich, dass es hier durchgeht statt hier oben. Es geht nicht darum, die Waffe fallen zu lassen. Es ist, als könnte es die Waffe nicht finden. Wenn ich hier nur eine Zeichenfolge ausdrucke und hier oben zwei sage, drucke ich eine weitere Zeichenfolge und schreibe eine. Übrigens, so debuggt man. Jetzt werde ich sehen, wo der Code läuft. Läuft es hier oben oder hier unten? Lass uns kompilieren und auf Play klicken. Lasst uns jetzt einfach diese Waffe laden. Wenn ich jetzt draufklicke, heißt es, wenn ich auf diesen anspiele, heißt es zwei, der Code ist tatsächlich hier unten. Es geht hier falsch runter. Es ist, als würde es sagen, nein, ich habe diesen Gegenstand nicht in meinem Inventar und das ist falsch. Ich habe diesen Artikel tatsächlich in meinem Inventar. Sehen wir uns den Code hier an. Lass uns hier rüber gehen. Es versucht zu finden, es versucht, den Gegenstand im Inventar mit dem zu vergleichen , den wir verkaufen wollen. Was hier passiert, ist , dass es zuerst hier im Index Null sucht. Es sucht im ersten Index der Waffe. Wenn ich einfach wieder hierher gehe, mach das einfach zu. Wenn ich hier zur Logik zurückkehre, wenn sie die erste Waffe nicht findet, zum Beispiel, wenn die erste Waffe eine Pistole ist, dann wird diese tatsächlich falsch sein, weil Sie die Pistole mit der vergleichen die wir gerade plündern wollen Und es ist kein Gewehr, was bedeutet, dass es einfach falsch wird Und dann fügt es diese Waffe hier drüben hinzu. Wir müssen den Code hier unten anpassen. Was wir tun müssen, ist sicherzustellen, dass es das gesamte Inventar durchsucht hat , bevor es den Code weitergibt Wenn es nur den ersten Inventargegenstand bekommt, nämlich die Pistole, dann macht das keinen Sinn, weil es uns genau wie jetzt einen Dollar einbringen wird Ich möchte sichergehen, dass dieser Index hier ist , diesen Index können Sie hier sehen Wenn ich nur mit der rechten Maustaste klicke und eine Zeichenfolge ausdrucke und ich kann sie dir einfach zeigen. Und Sie können den Index eingeben damit Sie sehen können, was er ausgibt. Und ich kann Com-Play kompilieren, wenn ich diesen plündere. Jetzt heißt es Null. Es sagt immer Null, weil es nur den ersten Index betrachtet. Jetzt ist das Gewehr, wenn ich hier einfach auf Plus klicke, könnte das erste die Pistole sein, das Indexgewehr könnte das Gewehr sein Und es überprüft ständig nur den Index Null. Lassen Sie mich jetzt einfach all das löschen und das löschen. Lass mich den Rayindex hier drüben einbauen. Lass mich es einfach nach oben verschieben. Lass es uns einfach hierher verschieben und es Ray Index nennen. Lassen Sie uns kompilieren, lassen Sie uns zurückgehen. Jetzt möchte ich überprüfen, ob dies der letzte Index ist , bevor ich fortfahre. Wenn ich einfach das Inventar nehme und uns die Variable hier finden lasse , das Waffeninventar. Holen wir uns das. Nehmen wir letzte Index für dieses Waffeninventar , den wir gerade haben, entspricht diese Zahl diesem Gebietsindex? Lass es uns hier einfach hübscher machen. Lass uns jetzt einen Ast machen. Und wir fragen, haben wir den letzten Index des Inventars erreicht? Lassen Sie uns das einfach löschen. Lass mich das einstecken. Wenn das stimmt, wollen wir den Code fortsetzen. Wenn wir jedoch nicht beim letzten Index sind, wenn wir noch einige Dinge im Inventar überprüfen müssen, müssen wir einen Rückschritt machen. Und eigentlich müssen wir nichts tun, denn wenn es nicht der letzte Index ist, wir ihn einfach in einer Schleife durchgehen. Eigentlich durchbrechen wir die Schleife nicht, wir durchbrechen hier nur die Schleife. Wenn wir einen Gegenstand finden, muss ich eigentlich nichts tun. Lassen Sie mich das nur ein bisschen organisieren, lassen Sie mich das wegnehmen, und das sollte unser Problem lösen. Okay, hier habe ich einige Routenknoten erstellt und es sieht hübscher Lass uns jetzt auf Play klicken und sehen, ob es funktioniert. Wenn ich zum Beispiel diese Waffe einfach plündere und auf sie klicke, kannst du sehen, dass sie sie tatsächlich in vier Schritten fallen lässt Und wenn ich hier draufklicke, wird auch diese gelöscht Sie können hier sehen, dass es funktioniert. Ich kann nicht zwei Gewehre gleichzeitig plündern und es funktioniert auch mit einer Pistole, wahrscheinlich Jetzt kann ich sehen, dass ich nicht zwei Waffen gleichzeitig plündern kann. 168. 12.01 Tod: In Ordnung, lassen Sie uns jetzt den Tod des Spielers erstellen. Denken Sie daran, dass wir das Ereignis „ Jeder Schaden“ gemacht haben und die Gesundheit und Rüstung berechnet haben und wie viel Schaden Sie erlitten haben. Jetzt haben wir das hier am Ende gesagt Wenn die aktuelle Gesundheit gleich Null ist, wollen wir das Death-Event spielen. Okay, sehr einfach. Lass uns wieder ein neues schnelles Event namens Death machen, lass es uns auf dem Server laufen lassen, weil wir im Mehrspielermodus sind Lassen Sie es uns über diesen Server laufen lassen, ein zuverlässiges Death-Event. Und lassen Sie uns den Serverausfall hier oben im normalen Fall ausführen . Also läuft es so durch. Für den Tod können Sie sich vorstellen dass wir tatsächlich einen Tod wie eine Stoffpuppe machen werden, bei dem der Spieler einfach auf den Boden fällt. Jetzt können wir sagen, Animationsmontage abspielen. Ich möchte es jedoch nur ein bisschen lustiger machen und statt einer Animation tatsächlich einen Stoffpuppen-Tod erstellen. Weil wir das schon einmal gemacht haben. Wir wissen, wie man das anstelle eines Multicasts macht. Ich will dir zeigen, wie man Rag Doll Death macht. Um das zu tun, brauchen wir jetzt einen Mitarbeiter, der benachrichtigt weil du die Grafik des Spiels ändern wirst Denkt daran: Wenn ihr die Grafik eines Vertriebsmitarbeiters ändern wollt , gebt uns das bitte hier Lassen Sie uns ein neues Ereignis oder eine neue Variable erstellen. Und dieser wird Dead Bullion heißen. Lassen Sie uns annehmen, dass es etwas ist, das tot ist. Lassen Sie uns das einfach mit in die Veranstaltung ziehen. Und dieser zieht es auch in die Veranstaltung. Wir können das tatsächlich so nennen. Lass uns jetzt hier rüber gehen. Wenn die aktuelle Gesundheit gleich Null ist, nennen wir das Todesfall. Lassen Sie uns den Spieler auf tot setzen. Vergiss nicht, das wahr zu machen. Jetzt müssen wir das reproduzieren, benachrichtigen. Rep Notify, es erstellt eine Funktion. Doppelklicken wir also darauf. Was wir hier drinnen tun wollen, ist einfach, zuerst einfach zu fragen, ob der Spieler tot ist oder nicht. Ist dieser Goldbarren wahr oder falsch? Okay, was wollen wir tun, um Reg Dole Death zu machen, wenn die Todesvariable wahr ist? Reg Dole Death zu machen, wenn die Todesvariable wahr ist Wir wollen Physik mit diesem Netz simulieren. Denn wenn ich einfach auf den Markt gehe und die Ära eröffne, ist nur eine davon nicht wirklich wichtig. Und du öffnest einfach das Physik-Asset. Sie öffnen das Physik-Asset, wie Sie hier sehen können. Wenn Sie auf Simulieren klicken, können Sie sehen, wie der Spieler auf diese Weise stirbt. Das ist eigentlich Reg Death , wenn du es nur simulierst. Und du kannst es sehen, das ist es, was ich tun möchte. Um das zu tun, müssen wir Physik simulieren. Nehmen wir dieses Netz und sagen wir simuliert. Stellen Sie „Physik simulieren“ so ein, dass sie wahr ist. Ich möchte auch die Bewegung für den Spieler deaktivieren. Du kannst also nicht auf deine Tastatur drücken und dich bewegen. Der Spieler nimmt die Bewegung des Charakters und sagt Bewegung deaktivieren. Jetzt kann der Spieler nicht mehr auf die Tastatur drücken , um sich zu bewegen. Lassen Sie uns einfach kompilieren und sehen , was passiert, wenn ich einfach auf Play klicke. Jetzt spawne ich auch den anderen Spieler. Lass mich diesen Spieler einfach erschießen und sehen, was passiert. Ich werde diesen Spieler erschießen. Der Spieler stirbt, fällt aber durch den Boden. Lassen Sie uns das auch beheben. Wir müssen mit einigen Kollisionen Mist bauen. Und das liegt daran, dass das Netz jetzt Physik simuliert. Wenn wir uns das Netz hier ansehen, wenn wir zu den Kollisionseinstellungen gehen, können wir sehen, dass es tatsächlich keine physikalische Kollision gibt, was bedeutet, dass es durch den Boden fallen wird Es gibt nur Überschneidungen. Physik überschneidet sich, wenn ich mit meinen Linienträgern treffe, um Schaden anzurichten, aber es gibt keine physikalische Kollision, müssen wir aktivieren Nehmen wir jetzt dieses Netz. Lass mich einfach von hier wegziehen und Kollision einstellen sagen. Lass uns einfach hier runter gehen. Stellen Sie die Kollision ein. Ich werde die Kollision aktivieren. Ich werde hier kollidieren. Kollision aktiviert. Ich habe sowohl eine Anfrage auch Physik. Mach weiter und wähle das aus. Ich mache es tatsächlich vor der Physik sonst fällt der Spieler durch den Boden. Ich werde zuerst die Physik aktivieren. Lass uns das versuchen. Jetzt haben wir Physik. Okay, der Bug ist behoben. Du musst versuchen zu sehen, welche andere Box wir haben. Jetzt werde ich wieder gehen und diesen Spieler hier töten. Okay, jetzt ist der Spieler tot. Der Spieler ist hier. Fantastisch. Ein Problem mit diesem Player ist momentan tatsächlich, dass die Leerlaufanimation aktiviert ist. Weil ich den Spieler gerade atmen sehen kann. Sie können sehen, wie sich die Schultern bewegen und wir haben eine Animation abgespielt. Wir müssen diese Animation beenden , weil sie albern aussieht. Lassen Sie uns das tun. Lass uns hier bleiben. Man kann sogar sagen, Animation abspielen. Sie können diese Animation abspielen auswählen. Sie stellen hier einfach nichts ein, das tatsächlich alle Animationen löscht und auf den Player werden keine Animationen angewendet. Jetzt nochmal: Doppelklicken Sie einfach hier, um eine Notiz zur Weiterleitung zu machen , damit Sie sehen können, was ich gerade mache, und Ihnen folgen Es ist also nicht einfach so schwierig. Okay, lass uns jetzt kompilieren. Ich glaube, ich habe auch einen Bug mit dem Schatten bemerkt. Wenn ich den Spieler einfach noch einmal spawnen würde . Und ich habe es dem Spieler gezeigt Okay. Fantastisch. Jetzt gibt es hier einen Bug mit dem Schatten, denn hier als Spieler kannst du sehen, dass ich mich bewegen kann. Das liegt daran, dass wir ein Third-Person-Mesh haben . Mesh für die dritte Person. Was wir vorher gemacht haben, ist, wenn du nach Schatten suchst, haben wir dafür gesorgt, dass dieser versteckte Schatten zeigt. Wir haben das vor langer Zeit in diesem Kurs gemacht, langer Zeit in diesem Kurs weil wir den Kopf des Spielers zeigen wollten. Wir verwenden dieses Netz aus der dritten Person , um Schatten korrekt darzustellen. Lassen Sie uns Mesh aus der dritten Person machen, lassen Sie uns das einfach hier machen. Sagen wir zum Beispiel Set Hidden, ich glaube, es heißt Set , versteckt im Spiel, Set wirft versteckten Schatten. Lassen Sie uns dazu einfach nichts sagen , weil ich meinen Schatten nicht mehr zeigen möchte. Es gibt noch eine letzte Sache, die ich vergessen habe. Und das ist die Kapselkomponente. Diese Kapselkomponente, ich möchte nicht, dass sie mit Waffen und ähnlichem kollidiert Ich werde die Kollision tatsächlich auch für diesen deaktivieren Kollision tatsächlich auch für diesen Ich werde das tun, bevor ich die Kollision für das Netz aktiviere, denn vielleicht kollidiert diese Kapsel manchmal mit diesem Netz und es entsteht Chaos Lassen Sie uns das wegnehmen und sagen, Kollision aktiviert setzen. Lassen Sie uns einfach sagen, keine Kollision einfach so. Und das sollte es hoffentlich sein. Lass uns das wegziehen. Oder schieb es einfach hierher. Und wir müssen es nicht ganz da drüben wegbringen. Jetzt sollte es funktionieren. Lass uns jetzt kompilieren. Klicken Sie auf Abspielen. Wenn ich einfach hier rübergehe, lass mich diesen Spieler einfach spawnen Jetzt kann ich den Spieler erschießen. Jetzt haben wir den ganzen Tod vernichtet, großartig. Ich kollidiere nicht mit dem Spieler. Der Spieler bewegt sich immer noch nicht. Und wenn ich mit dem anderen Kunden hierher gehe, können Sie sehen, dass ich meine Kamera bewegen kann, wie ich es tue, als ob der Schatten weg ist, ich hier tot bin. Natürlich können Sie es komplexer machen. Du könntest zum Beispiel eine Zuschauerkamera erstellen. Anstatt dies zu tun, können Sie die Kamera sogar deaktivieren kannst du nicht, du bist so und du kannst die Kamera nicht bewegen. Aber ich denke, es ist vorerst in Ordnung. Ich liebe das. Ja, alles funktioniert einwandfrei. Das Problem, das wir momentan haben, ist, dass der Spieler die Waffen nicht fallen lässt , sobald Sie die Waffe haben. Du kannst hier sehen, wenn du Waffen hast und ich dich erschieße, hältst du die Waffe immer noch in der Hand. Ich möchte, dass der Spieler die Waffe fallen lässt, denn stellen Sie sich vor, wenn alle Spieler die Waffen in der Hand halten, wenn sie sterben, sind all diese Waffen all diese Waffen etwa 2 Minuten nach Beginn des Spiels weg. Ich möchte , dass der Spieler die Waffe fallen lässt, und das können wir auch tun. Lassen Sie uns weitermachen und mit der nächsten Lektion fortfahren. 169. 12.02 Drop-Waffe, wenn sie tot sind: Ordnung, also lass uns weitermachen und den Spieler alle Waffen fallen lassen , wenn der Spieler hier drüben stirbt Wann immer wir das auf wahr setzen. Lassen Sie mich einfach davon wegziehen und einen Zweig erstellen und fragen, ob der Wert tot auf wahr gesetzt ist. Denn später werden wir es auf Falsch setzen, wenn der Spieler reagiert. Aber vorerst ist der Spieler tot und wir wollen die Waffe fallen lassen. Okay, lassen Sie uns zur Erinnerung zurückgehen und sehen, was wir mit der Waffe gemacht haben. Wenn ich zum Ereignis „ Lutqudrop Weapon“ oder einer Grafik zurückkehre und die Waffe fallen lassen will, ist sie tatsächlich hier drüben Und wir haben den Knopf gedrückt und dann haben wir die Waffe fallen lassen. Wir müssen diese Veranstaltung eigentlich nur hier einberufen. Wir drücken nicht wirklich einen Knopf, wir zwingen den Spieler nur, alle Waffen fallen zu lassen. Also werden wir das tatsächlich tun. Bei dieser Veranstaltung wurde nach dem Waffentyp gesucht, mit dem sie ausgerüstet waren. Und ich denke, wir müssen das ändern, weil wir nicht nur die ausgerüstete Waffe fallen lassen müssen, sondern auch die andere Waffe, die sich auf unserem Rücken oder auf unserem Oberschenkel befindet Wir müssen diesen Code tatsächlich leicht modifizieren. Gehen wir zurück, um es aufzuschreiben und zu sehen, was hier passiert. Rufen wir den Server an. Ich glaube, es heißt Request Request Drop Weapon. Waffe fallen lassen. Dieser. Und mach weiter und ruf es sofort an. Wenn wir das wieder anrufen, wird es die ausgerüstete Waffe fallen lassen, aber wir wollen eigentlich alle Waffen im Inventar fallen lassen . Lassen Sie mich das nur für diese Veranstaltung modifizieren. Ich werde eine neue Variable hinzufügen. Fügen wir die Waffenbasis hinzu. Weil wir ihr einfach den Input geben, den wir hier wollen, Waffenbasis. Und nennen wir es stattdessen wir. Hier müssen wir angeben, welche Waffe wir fallen lassen wollen, wenn wir auf die Schaltfläche klicken, um die Waffe fallen zu lassen Wenn wir auf das K klicken, möchte ich meine Waffe fallen lassen. Diese hier, ausgerüstete Waffe. Das ist jetzt richtig für diesen. Jetzt lasst uns von hier aus zuschlagen und einen Namen sagen. Holen Sie sich die Namensvariable wie zuvor. Holen Sie sich die Waffeninformationen und machen Sie das kaputt und dann können wir den Typ herausfinden. Anstatt das zu tun, können wir es löschen und wir können es einstecken, lassen Sie mich einfach den ganzen Code wegschieben. Das, und wir können sehen , was wir jetzt tun. Wir haben alles organisiert. Alles sieht gut aus. Ich erweitere das nur hier. Ich erweitere das auch hier. Fantastisch, wir haben das eingerichtet. Wenn du dir nun die Gesundheits- und Rüstungsgrafik ansiehst, können wir angeben, von welcher Waffe du sprichst. Wir wollen einfach alle Waffen im Inventar löschen . Anstatt eine Vierer-Schleife zu machen, könnte ich eine Vierer-Schleife machen, wieder mit dem Inventar hier. Und wir könnten das Inventar für jeden von ihnen einstecken, wir könnten die Waffe fallen lassen. Denken Sie jedoch daran, dass bei jeder Schleife eine Vier nicht darauf wartet, dass dieser Code abgespielt wird. Dieser Drop-Weapon-Code wird zweimal abgespielt. Es wird tatsächlich deinen Code hier debuggen , weil es die Waffe hier ändern wird. Es wird diesen Wert hier ändern, bevor Sie Möglichkeit haben, diesen Codezyklus zu beenden. Anstatt das zu tun, werde ich eine manuelle Schleife machen. Was wir hier tun können, ist, eine Bestandsaufnahme vorzunehmen. Achte nur darauf, dass dieser nicht leer ist, denn wir wollen keine Waffen fallen lassen. Wenn das nichts enthält, nehmen wir die Länge dieses Inventars und stellen sicher , dass es größer als Null ist , weil wir nichts tun wollen , wenn es größer als Null ist. Einfach so. Wenn es größer als Null ist, mach auch weiter und lass die Waffe fallen. Wenn es größer als Null ist, bedeutet das, dass wir etwas im Inventar haben. Lass mich einfach den ersten Gegenstand nehmen, den wir im Inventar haben. Das wird bei Index Null sein. Ich möchte weitermachen und das fallen lassen. Lasst uns von hier aus zuschlagen. Ich glaube, einfach so. Mehr müssen wir hier nicht tun. Denn wenn du zur Waffe zurückkehrst, denk daran, dass du innerhalb dieser Waffenabwurf-Funktion diesen Gegenstand bereits aus dem Inventar entfernt hast. Weil es sehr wichtig ist ihn aus dem Inventar zu entfernen. Sonst wirst du hier quasi in eine Endlosschleife geraten. Lassen Sie uns diesen Code verzögern. Lassen Sie uns um etwa 0,1 verzögern . Dann können wir zurückgehen und diesen Code erneut abspielen. Dann werden wir noch einmal sagen, ich mache mir einfach ein paar Spiegelnotizen , damit wir sehen können, was ich für diesen hier mache, einfach so, und es auch auf der anderen Seite machen. Was wir hier im Grunde sehen, ist diese Waffe fallen zu lassen und dann den Code zu verzögern und dann erneut zu versuchen, ihn auszuführen. Versuchen Sie zu überprüfen, ob diese Länge immer noch über Null liegt. Denken Sie daran, wir entfernen es hier in der Drop Weapon. Technisch gesehen sollte es Null sein , wenn wir nur eine Waffe hätten. Wenn wir jedoch zwei Waffen haben, wird die Länge dieser Waffe immer noch eine sein. Weil es vorher zwei lang war. Weil wir zwei Waffen hatten. Jetzt ist es eine Waffe. Ich werde nochmal nachschauen. Ist die Länge über Null Wenn ja. Und nimm es nochmal. Nimm diese Waffe. Lass es fallen. Es fällt also so lange, bis du nichts mehr hast , was du von hier wegziehen und sagen kannst , keine Waffen mehr oder keine Waffen mehr fallen zu lassen. Es wird die Zeichenfolge drucken, wenn du von Anfang an keine Waffen fallen gelassen hast oder wenn du all deine Waffen aus dem Inventar Jetzt kannst du die kleineren machen, ich glaube, 0,05 vielleicht sogar Aber lass mich einfach mit 0,1 weitermachen. Es ist nicht wirklich wichtig, dass der Spieler das nicht bemerkt Wie dem auch sei, lass mich einfach auf Play klicken. Und lass es uns ausprobieren und sehen, ob wir aussteigen. Wenn ich diese Waffe hier habe, erbeutet dieser Spieler all diese Waffen Lassen Sie mich diesen Spieler eigentlich hierher bringen. Damit wir sehen können, wie die Waffen abgeworfen werden. Lass mich diesen Spieler erschießen. Jetzt können wir sehen, wie der Spieler die Waffen hier tatsächlich fallen lässt. Diese Pistole und das K. Wenn ich fallen lasse und zur Pistole übergehe, habe ich selbst eine Pistole , also lass mich das fallen lassen Ich kann diese Pistole plündern. Ich kann sogar das K plündern, das dieser Spieler fallen gelassen hat. Ich kann es genauso wie zuvor verlieren. nichts wirklich falsch . Fantastisch. Lass es uns auch auf dem Client versuchen. Das war der Server. Lassen Sie mich das minimieren und zum Client gehen. Das Spiel für den Server. Ich werde wollen, dass der Server viele Waffen hat. Jetzt, wo die Ionen auf die Spieler schießen werden , hier sind sie. Ich lasse das in vier Minuten fallen. Ich will das K, ich kann es nehmen. Fantastisch. Im Moment funktioniert alles . Im Moment haben wir ein Problem damit momentan nicht zwei Waffen plündern können Manchmal haben wir ein Problem, bei dem wir die Waffe fallen gelassen haben und wir nicht wirklich plündern können, weil versucht wird , sie mit der abgeworfenen Waffe zu vergleichen Lassen Sie uns tatsächlich weitermachen und das auch beheben. Das ist wie das, was wir mit der Waffenreparatur gemacht haben. Wenn wir einfach zurückgehen, wenn ich zurück in meiner Grafik gehe, Laute und Ausrüstung und das ist der Waffencode, den wir gemacht haben Denken Sie daran, dass wir die Variable „ Lose Waffe“ mit der Variablen verglichen haben, die wir jetzt losen wollen. Wenn sie identisch ist, haben wir die Benachrichtigung gelöscht und führen sie dann hier Denken Sie daran, wenn Sie denselben Wert zweimal ausführen, wird er nicht ausgeführt. So einfach ist das. Gehen wir zurück. Lass mich einfach die Dropbox hier aufmachen. Lassen Sie uns hier zur Waffe übergehen. Ich möchte das so machen, weil man innerhalb einer Funktion eigentlich keine Verzögerung machen kann , wie wir es hier bei der Los-Waffe getan haben , wo wir hier eine Verzögerung gemacht haben, bevor wir den Code ausführen. Bei Funktionen kann man keine Verzögerung vornehmen. Das ist etwas anderes. Das ist nicht die normale Verzögerung, die wir normalerweise machen. Wir müssen es tatsächlich außerhalb der Funktion tun. Wir müssen es stattdessen hier draußen machen, hier drüben, wenn wir die Waffe fallen lassen wollen. Lassen Sie uns den Code hier erstellen. Ich möchte die Waffe so einrichten, dass sie hier herunterfällt und sie auf Null stellen. Dann will ich von hier wegziehen und Verzögerung sagen, genau wie zuvor. Stellen Sie 20.05 ein und dann möchte ich weitermachen und die Waffe fallen lassen Bevor ich das mache, will ich das nicht die ganze Zeit machen. Ich möchte überprüfen, ob das genauso ist wie zuvor. Ich nehme diese Waffe zum Ablegen und frage: Entspricht sie der Waffe hier im Inventar, die ich gerade gefunden habe? Lass mich einen Ast bauen. Wenn das stimmt, möchte ich das hier machen, lass es mich zurückstellen. Wenn das stimmt, möchte ich das hier machen. Wenn es falsch ist, möchte ich den Code einfach wie zuvor ausführen. Lassen Sie mich das einfach neu organisieren, damit Sie tatsächlich sehen können, was vor sich geht Okay, einfach so, wir versuchen, die Waffe, die wir fallen lassen müssen, mit der zu vergleichen , die wir hier fallen lassen wollen Und wenn es dasselbe ist, werden wir das ausräumen und das alles machen. Okay, toll hier drüben, das brauchen wir eigentlich nicht. Wir können diesen einfach von hier löschen. Und die andere Sache, manchmal wieder, die Waffe wird unsichtbar weil dieser Schauspieler diesen Schauspieler nicht erkennen kann, obwohl sie derselbe sind. Anstatt das zu tun, lassen Sie uns das einfach löschen. Lösche das und lass es uns einfach hier abschreiben. Stattdessen löschen wir ständig diese Waffe, um sie fallen zu lassen, bevor wir sie wieder einsetzen. Und das ist in Ordnung. Damit gibt es eigentlich kein Problem. Lassen Sie uns das auch für die Plünderung tun. Anstatt zu überprüfen, ob es dasselbe ist , löschen wir das Lass uns das einfach tun, weil es nicht wirklich zu weh tut oder es nicht wirklich weh tut. Eigentlich ist es nicht wirklich wichtig. Mach einfach weiter und verbinde es so. Mach weiter und kompiliere. Ich klicke auf Jetzt abspielen, überprüfe es noch einmal. Es ist hauptsächlich für den Client bestimmt, da hier die Replikationsprobleme auftreten werden. Hier. Als Client, als Server. Ich werde ein paar Waffen plündern und mich hier abheben und diesen Spieler töten Jetzt ist der Spieler tot. Jetzt lasse ich meine Waffe fallen , um diese zu plündern Ich lasse jetzt die Pistole fallen und lade die Pistole. Funktioniert, damit wir beide Pistolen plündern können. Laden wir diese Waffe. Plündere einfach weiter die Waffe und schau, ob du ausfliegst, ob du irgendwelche Probleme hast oder ob alles in Ordnung ist Wir können sehen, dass nichts unsichtbar wird, alles sieht gut aus Ich versuche nur zu sehen, ob es gerade einen Bug gibt. Ich glaube, ich habe einen Bug gesehen, bei dem ich die vier fallen gelassen habe. Sie können jetzt sehen, dass ich das Feld eingegeben habe, wenn ich stattdessen drücke. Im Moment ist der Bug, wenn wir hier einen Spieler auswählen und zwei Waffen ausrüsten, und wenn ich auf G klicke, um die Waffe fallen zu lassen, kannst du sehen, dass die Waffe auf meinem Rücken fallen gelassen wird. Und das ist nach den neuen Änderungen, die wir gerade vorgenommen haben. Lassen Sie uns überprüfen, was passiert. Das Problem liegt vielleicht darin, sich der Waffe zu entziehen oder die Waffe hier fallen die Waffe fallen lassen, wir die ausgerüstete Waffe fallen Lassen Sie uns zuerst überprüfen , ob das stimmt. Was ist die ausgerüstete Waffe? Lass es uns tatsächlich hier unten machen. Machen wir es hier unten, damit wir den Waffennamen ausdrucken können . Einfach hier einstecken und kompilieren und speichern. Jetzt sollte es Pistole heißen. Wenn ich versuche, meine Waffe fallen zu lassen und da steht Pistole, die ausgerüstete Waffe korrekt Es ist nichts falsch , wenn wir die Waffe plündern. Jetzt kennen wir die Beutewaffe. Die Logik ist korrekt Wir versuchen, die Pistole fallen zu lassen, aber aus irgendeinem Grund wird das Gewehr Lassen Sie uns das jetzt ausdrucken. Lassen Sie mich auch versuchen zu sehen, ob ich unbewaffnet bin oder nicht. Eigentlich macht es keinen Sinn weil wir die Waffe fallen lassen Wir wissen also, dass wir nicht unbewaffnet sind, wir lassen die Pistole fallen Etwas läuft hier schief. Und ich glaube an diese Schleife, ich habe es dir schon einmal gesagt, Loops warten nicht auf das, was du zu tun versuchst. Das ist ein Problem mit Loops. Manchmal führen sie einfach den Code aus. Wenn ich einfach zurückgehe, glaube ich, dass es versucht, die zweite Waffe fallen zu lassen, die du plünderst Weil es nicht auf deine Verspätung warten wird. Es wird tatsächlich den letzten Index durchgehen und löschen. Ich glaube, das ist es , was passiert. Lassen Sie uns stattdessen die Verbindung trennen. Lass mich das löschen. Lass mich das wegschieben. Wenn wir jetzt eine Waffe finden, machen wir eine neue Variable. Lass uns eine neue namens Found Weapon to Drop erstellen. Es ist diese, gefundene Waffe zum Abwerfen. Lassen Sie uns diese gefundene Waffe auf Drop setzen, um wahr zu werden. Dann lassen Sie uns den Kreislauf durchbrechen. Jetzt haben wir eine Waffe gefunden und machen uns einfach Notizen, genau wie zuvor. Was wir jetzt damit machen können, ist, dass ich einfach unterbreche und das wegschiebe. Jetzt nehmen wir das und machen einen Zweig und fragen, ob wir eine Waffe haben? Er hat eine Waffe zum Abwerfen gefunden. Wenn das wahr ist, wollen wir es zuerst auf False setzen. Denn wenn wir das nächste Mal das tun, wollen wir sichergehen, dass es nicht abstürzt Als Nächstes wollen wir die Waffe fallen lassen. Einfach das hier wegbringen und das ist okay. Wir werden die Waffe fallen lassen, genau wie zuvor. Aber wir werden es hier unten machen, wenn der Loop hier tatsächlich abgeschlossen ist. Und die Waffe, die du fallen lassen musst, kann einfach die Waffe sein, die du gerade hast. Denn denken Sie daran, dass Sie die Schleife durchbrochen haben, also ist sie immer noch bei der Waffe, die Sie gefunden haben. Wir müssen hier drinnen nichts tun. Dann werden wir es hinauszögern. Und dann stellen wir das so ein, dass wieder damit interagieren können. Okay, lass uns kompilieren. Das nächste, was wir tun wollen, ist, dass das alles korrekt ist. Hier ist nichts falsch. Als Nächstes möchte ich zu meiner Logik für Gesundheit, Rüstung und Schaden zurückkehren . Achte nur darauf, dass du diese Verzögerung hast, vielleicht auf 0,2. Ich glaube, ich musste 0,1. Falls es ausfällt, liegt das manchmal daran dass du die Waffen zu schnell fallen lässt. Ich glaube, ich schaffe es auf 0,2 und lasse uns alles kompilieren und speichern. Das ist die Logik, die wir bisher haben. Falls ihr etwas verpasst habt, stellt einfach sicher, dass es so aussieht, ebenso wie die Logik für das Ablegen der Waffe. Wenn ich einfach zu meiner Grafik hier, Plünderung, zurückkehre , stelle sicher, dass das Plündern so aussieht Wir haben den Vergleich entfernt. Ich kann diesen Umleitungsknoten auch entfernen. Das haben wir bisher. Wir löschen einfach diese Variable, legen sofort ein bisschen nach und dann plündern wir die Waffe Okay, das sieht gut aus. Und was die Wurfwaffe angeht, haben wir diese ausgerüstete Waffe so gebaut, dass sie an diesen Server angeschlossen werden kann. Und dann verwenden wir hier den Waffentyp und stellen sicher, dass wir die Schleife so unterbrechen, damit sie nicht ausfällt. Okay, das ist bis jetzt unsere Logik. Wenn wir müssen, können wir versuchen, die Dinge wieder in Ordnung zu bringen, aber ich denke, das sollte das Problem lösen. Lassen Sie uns das testen und sicherstellen, dass nichts schief geht Ich werde den Server minimieren. Ich werde auf dem Client spielen, weil hier die Replikation meistens schief läuft. Nehmen wir hier als Server eine Waffe mit. Jetzt, wenn ich zum Kunden gehe. Hier mit dem Client und ich schieße auf den Server, hier lasse ich die Waffe fallen. Ich versuche zu plündern. Ich kann es plündern. Ich versuche die Pistole zu plündern. Ich kann nicht, weil ich einen habe. Wenn ich sie fallen lasse, gehe ich rüber und versuche, die Pistole hier zu plündern Im Moment habe ich ein Replikationsproblem mit der Pistole. Wenn ich es einfach schließe und hier nochmal nach den Verzögerungen schaue, habe ich 0,05 nach dem Waffenabwurf und dann haben wir um 0,1 verzögert, um sicherzustellen , dass wir diese Interaktion mögen können , nachdem wir diese Funktion ausgeführt haben Und wenn du zur Gesundheit zurückkehrst, ist dieser Wert 0,3. Jetzt können wir versuchen, ihn wieder auf 0,2 zu setzen, aber lass uns ihn einfach bei 0,34 belassen Also, bevor wir Dinge testen, lass uns in den Tod gehen, den wir hier gemacht haben Anstatt das Netz so einzustellen, dass Kollisionen aktiviert sind. Denn beim Mesh kann man, wenn man sich die Kollision genauer anschaut, sehen, dass es auch mit den Waffen interagiert. Es interagiert mit der Welt, statisch und weltdynamisch. Lassen Sie uns versuchen, nur die Kollisionsphysik zu aktivieren, keine Abfragen. Wir überschneiden uns nicht mit den Waffen und verursachen keine Probleme Anstatt Kollisionen zu aktivieren, werde ich nur Physik einstellen , weil uns nur Physik interessiert So können wir Effekt einer Stoffpuppe erzeugen und auf den Boden fallen. Nur Physik sollte hier gut sein. Lass es uns jetzt ausprobieren und sehen, ob es funktioniert. Ich glaube, ich hatte schon einmal einen Fehler mit dem interagierenden Spieler. Ich möchte dieses Feld zurückrufen, damit ich es hier als Spieler oder Kunde beheben kann es hier als Spieler . Lass uns den Server erschießen. Jetzt kann ich das fallen lassen, versuchen zu loten, die K, die Pistole zu plündern Jetzt kann ich auch die Pistole plündern . Ich habe keine Probleme, wenn ich aussteige. Sie können hier sehen, dass ich eine Fehlermeldung bekommen habe, die besagt, dass Axis nicht versucht, die Eigenschaftsinteraktion des Spielers zu lesen. Wenn du einfach auf den Fehler klickst, bist du hier genau richtig. Hier wird nur ein Fehler angezeigt. Ich glaube, es ist der Spieler, der stirbt. Es setzt den Spieler tatsächlich darauf, wenn es Axis Non sagt. Sie können das einfach beheben, indem Sie sicherstellen, dass es gültig ist. Wenn ich das einfach wegziehe, kann ich es nehmen und mit der rechten Maustaste klicken und es in ein validiertes Get umwandeln. Und lassen Sie uns sicherstellen, dass es gültig ist, bevor wir fortfahren. Als Nächstes kommt der Bug hinzu, denn er zeigt mir, dass die Ära auch da ist. Jetzt habe ich gemacht, dass das gültig ist , weil es auch von hier oben kommt. Sie können sehen, dass es direkt zu dieser Schleife kommt. Selbst wenn wir das reparieren, wird es wegen diesem Fehler schief gehen Stellen Sie sicher, dass dies gültig ist. Es hat uns wegen dieser eine Ära beschert. Wir versuchen, Dinge zu überprüfen , wenn das nicht gültig ist. Vergewissern wir uns hier nach dem Spieler, und ich glaube, wir interagieren mit dem Spieler , der die Waffe fallen lässt. Lassen Sie uns das hier oben, hier unten kopieren. Stellen Sie sicher, dass dieser Spieler nicht derjenige ist, der auch die Waffe fallen gelassen hat. Weil wir die Waffe nicht plündern wollen, haben wir uns einfach selbst fallen lassen. Das ergibt keinen Sinn. Lassen Sie uns das alles wegziehen. , wir können diesen einfach Ich denke, wir können diesen einfach löschen, weil wir schon danach fragen. Lass uns einen Zweig machen und ihn miteinander verbinden, verbunden mit hier. Wenn das stimmt, werden wir den interagierenden Spieler festlegen und ihn weiterentwickeln. Ich glaube, wir können das löschen, weil wir das nur überprüfen. Lass uns löschen. Lösche das. Das sollte gut funktionieren. Dieses stellen wir ein und dann prüfen wir, ob es gültig ist. Das ist auch in Ordnung. Okay, lassen Sie uns jetzt ein paar Notizen machen. Der Grund, warum ich das nicht lösche und es hier einfach so verbinde, weil ich sichergehen möchte gültig ist, bevor wir fortfahren. Weil wir auch von hier oben kommen und uns direkt damit verbinden. Obwohl wir hier oben sind, müssen wir sicherstellen, dass das gültig ist, bevor wir hier weitermachen. Ich werde auch sicherstellen , dass der Spieler gültig ist. Hierher ziehen und sagen ist gültig, mach weiter und so, also stelle sicher, dass der Spieler gültig ist und stelle auch sicher, dass der Spieler nicht derjenige ist , der diese Waffe fallen gelassen hat Lass uns jetzt nochmal auf den Server schießen. Jetzt lass uns die Waffe fallen lassen, die Waffe laden. Lass es mich einfach vergrößern, damit wir sehen können , was jetzt vor sich geht. Alles funktioniert. Ich kann die Pistole fallen lassen. Wenn ich zwei Dinge lade und wir die Pistole fallen lassen, haben wir diesen Bug nicht mehr Okay. Ich kann alles laden und bekomme keine Kiste, wenn ich das beende. Okay, jetzt funktioniert alles. Ich weiß, es war verwirrend, weil wir eine Menge Boxen hatten, um die wir uns kümmern mussten. Vergewissere dich, dass du die Waffe fallen lässt, wenn der Spieler tot ist . Wir haben diese erste Waffe im Inventar. Wenn die Länge des Inventars über Null liegt, was bedeutet, dass wir eine Waffe im Inventar haben, lassen wir die Waffe fallen und verzögern es auch einen Betrag, der nicht dazu führen würde, dass die Waffe zu diesem Zeitpunkt um 0,3 Buck fallen lässt Im Moment können wir es vielleicht auf 0,2 reduzieren, aber ich bin im Moment damit zufrieden, das wird sowieso niemand wissen Im Inneren des Waffenabwurfs haben wir diese Schleife hier gemacht. Wir haben den Bullen rein gemacht, damit wir nicht rauskommen. Und wir müssen diese Variable nicht replizieren , weil wir nur Dinge innerhalb des Servers überprüfen Wir verwenden diese Variable außerhalb des Servers, also verwenden wir sie nie auf dem Client Wir müssen sie nicht wirklich replizieren. Wir gehen das durch, wir löschen zuerst diese Variable Bevor wir die Waffe fallen lassen. Wir lassen die Waffe fallen, wir verzögern sie, um sicherzustellen, dass sie ausgeführt wird und die Spieler dann damit interagieren können. Auch hier beträgt die Verzögerung 0,1. Schließlich entfernen wir für die Los-Waffe einfach direkt die Los-Waffenvariable. Notify hat sie gelöscht und dann führen wir sie hier herunter. Okay, das war alles, was ich weiß, es ist ein bisschen verwirrend, aber wir mussten all diese Probleme loswerden. Auch hier gilt: Wenn du irgendwelche Probleme hast, kannst du gerne meine Website, Pixel Helmet.com, besuchen oder du kannst jederzeit auch auf Discord mit mir sprechen Du kannst meinen Discord auf meinem Profil sehen und es ist auch nur der Pixel-Helm Ordnung, danke fürs Zuschauen und lass uns mit der nächsten Lektion weitermachen 170. 12.03 Respawn: Jetzt, wo wir mit dem Tod fertig sind, wollen wir sicherstellen, dass auch der Spieler reagiert Innerhalb der Spielerbasis. Auch hier geht es um Gesundheit, Rüstung und Schaden. Lass es mich einfach hier drüben auf und mit der rechten Maustaste klicken. Und dann schließe die Tabs auf der rechten Seite. Okay, lassen Sie uns jetzt mit der rechten Maustaste klicken und ein neues benutzerdefiniertes Ereignis erstellen. Nenn das hier. Lassen Sie uns erneut mit der rechten Maustaste klicken und es zu einem benutzerdefinierten Ereignis machen und es Re nennen. Dann wird dieser wie zuvor auf dem Server ausgeführt . Lassen Sie uns das, den Server zuverlässig laufen lassen. Dieser hier oben, nennen wir den Server Respawn. Jetzt sind wir bereit, zu antworten. nun den Respawn angeht, Was nun den Respawn angeht, wollen wir einfach nur den Standort des Spielers ändern Denn stell dir vor, der Spieler ist hier am Boden gestorben. Wir werden diesen Spieler im Grunde zurück zum Spawnpunkt bringen Das versuchen wir jetzt zu tun. Wir haben die Spawnpunkte bereits im Spielmodus. Wenn du dich erinnerst, wenn du zu den Bauplänen zurückkehrst, den Spielmodus öffnest und innerhalb des Spielmodus, haben wir diese eine Anfrage: Spawn-Spieler Jetzt wollen wir den Spieler nicht spawnen. Denken Sie daran, dass wir den Spieler nur tot gemacht haben, weil wir uns Technisch gesehen seid ihr bereits gespawnt. Wir haben dich nie aus dem Spiel entfernt. Wir wollen das nicht nochmal nennen. Was wir tun wollen, ist, dass wir diese Logik einfach noch einmal anwenden wollen. Was wir tun können, ist, dass wir den Spielmodus brauchen , um die Terrorismusbekämpfung und die Spawnpunkte für Terroristen Gehen wir zurück zur Spielerbasis und sagen wir „Spielmodus holen“. Das ist nur die Referenz, sagen wir mal Spielmodus wie dieser. Dann verbinden Sie sich damit und holen Sie sich Referenz zum Spielmodus von unserer Blueprint-Oberfläche Holen wir uns jetzt die Spawnpunkte der Daroristen, wir uns die Terroristenpunkte, dieser bekommt dieser Nun, was wir tun wollen, genau wie zuvor, lassen Sie uns zum Spielmodus zurückkehren Wir können tatsächlich einfach einen zufälligen Spa-Punkt nehmen und diese Transformation dann wie zuvor kopieren. Wir können das auch hier kopieren, Steuerung C. Gehen wir zurück zur Spielerbasis Steuerung V. Lassen Sie uns den Terroristen in der Wohnung und den Terroristen damit verbinden und lassen Sie uns jetzt auch eine Benachrichtigung für den Mitarbeiter machen. Denken Sie daran, diesen zu verbinden Wir benötigen das Team, das Sie ausgewählt haben. Wir müssen wissen, ob der Spieler ein Anti-Terrorist oder ein Terrorist ist. Denken Sie daran, wir haben das in der Benutzeroberfläche gemacht. Wir kehren zur Benutzeroberfläche zurück, wo Sie das Team auswählen. Sie gehen hier zur Grafik und haben ausgewählt, in welchem Team Sie sind. Dadurch gelangst du in den Spielmodus. Der Spielmodus hier, Team auswählen. Lassen Sie uns es tatsächlich als Variable erstellen, damit wir es verwenden können, denn im Moment gibt es keine Möglichkeit, es zu verwenden. Lass uns ein neues Variablenteam bilden. Wenn ich einfach mit der Maus drüber halte, kannst du sehen, dass es eine Referenz zur Schauspielerklasse ist, wenn du Schauspieler bist und es diese ist. Und du kannst Klassenreferenz wählen. Lassen Sie uns jetzt kompilieren. Denken Sie daran, dass wir solche Dinge nur innerhalb des Servers einstellen müssen , nicht auf dem Client. Hier auf dem Server stelle ich ein Team zusammen und verbinde es dann hier unten, um es sauberer zu machen. Jetzt müssen wir das nicht replizieren, weil wir es niemals auf dem Client verwenden werden Wir müssen das nur auf dem Server verwenden , damit wir den richtigen Spawnpunkt finden können Diese Variable selbst wird nicht benötigt, wir müssen sie nicht wirklich replizieren. Jetzt setzen wir diese Variable hier drüben. Wir müssen dem Spieler die Kontrolle geben. Lassen Sie uns mit der rechten Maustaste klicken und sagen Get Controller und finden Sie die Funktion hier. Und dann schlagen wir zu und sagen Player-Controller-Referenz. Lassen Sie uns es jetzt als Player-Controller verbinden. Holen wir uns die Teamvariable , die wir gerade erstellt haben. Und lassen Sie uns das jetzt hier unten verbinden. Okay, jetzt fragen wir, ist der Spieler ein Terrorist oder ein Anti-Terrorist? Wenn der Spieler ein Anti-Terrorist ist, was bedeutet, dass dies der Fall ist, werden wir die Anti-Terror-Standorte finden. Wenn der Spieler jedoch ein Terrorist ist, das falsch, also wählt er B, das sind die Terrorpunkte. Okay, lass uns mit der rechten Maustaste klicken und das zu unseren variablen Spielerantwortpunkten hochstufen. Oder lass es mich einfach Respond Transform nennen . Das ist richtiger. Auch hier müssen wir einen Vertreter daraus machen, benachrichtigen, weil wir den Standort des Spielers ändern Das ist eine visuelle Änderung, wenn Sie darauf klicken. Lassen Sie uns kompilieren, lassen Sie uns hier reingehen. Was wir hier drinnen tun müssen, ist einfach die Transformation zu ändern. Klicken wir mit der rechten Maustaste und sagen „Set and selected“. Es ist einfach ich selbst. Es ist der Spieler, der gerade gestorben ist. Das ist in Ordnung. Nun zur neuen Transformation, nehmen wir die, die wir gerade gesagt haben. Nun das Problem mit diesem, richtig? Nun, der Spieler, wenn du auf das Netz klickst, erinnert er sich daran, dass wir vorher gesagt haben, dass die Skala 1,6 in der Skala ist. Wenn ich das einfach direkt hier anschließe, wird es auf 11,1 zurückgesetzt. Das liegt daran, dass dieser spanische Punkt hier tatsächlich 111 ist Was Sie tun können, ist, dass wir diese Transformation tatsächlich von den Spanien-Punkten übernehmen diese Transformation tatsächlich von den Spanien-Punkten Wenn Sie diesen Punkt auf 1.6 setzen, lassen Sie mich einfach hier zur Basisebene zurückkehren. Du steckst das direkt ein und hast es auf 1,61 0,61 0,6 dann wird es tatsächlich 1,6 sein , obwohl du das auf eins gesetzt hast Es nimmt tatsächlich die Transformation dieses Spawn-Punkts vor. Aber für mein Beispiel hier für dein Spiel, wenn du 111 hast, musst du das hier nicht wirklich machen, aber für mich werde ich das hier einfach kaputt machen Ich werde transformieren, Transformation hier unterbrechen, die Transformation hier vornehmen. Denn der Standort ist in Ordnung, die Rotation ist in Ordnung. Für die Skala möchte ich sie jedoch auf 1,6 belassen . Lassen Sie uns sie einfach so verbinden. Lassen Sie uns jetzt kompilieren und gehen wir zurück. Und wir wollen auch sichergehen, dass is dead auf false gesetzt ist, weil wir jetzt nicht mehr tot sind. Wir antworten einfach, ziehen weg von hier und sagen Tod und setzen das Ganze auf falsch. Daran müssen wir in der nächsten Lektion arbeiten, denn wir haben immer noch simulierte Physik und es gibt immer noch keine Kollision und all das Und daran werden wir hier in der nächsten Lektion arbeiten. Aber lassen Sie uns vorerst auf Play klicken. Bevor wir auf Play klicken, müssen wir hier eigentlich antworten. Wir haben diese Veranstaltung nie einberufen. Es wird nichts passieren. Lass es uns hier nennen, wenn der Spieler nicht mehr tot ist. Wann immer wir das auf False setzen. Und lassen Sie uns das tatsächlich hier tun. Sie mich den Code einfach um 3 Sekunden verzögern, wenn Sie damit fertig sind, all Ihre Waffen fallen Lassen Sie mich den Code einfach um 3 Sekunden verzögern, wenn Sie damit fertig sind, all Ihre Waffen fallen zu lassen. Wir werden das später verbessern, aber lassen Sie uns vorerst einfach antworten und schauen, ob es funktioniert. Wir werden es um 3 Sekunden verzögern und dann werden wir antworten. Lass mich einfach auf Play klicken. Wählen Sie hier Terrorist, wählen Sie zum Beispiel Terrorist aus. Jetzt werde ich einfach ein paar Waffen auf diesen Spieler legen. Geh hier raus mit dem Client. Lassen Sie mich jetzt einfach beide auf dem Client öffnen. Ich bin hier der Spieler. Der Spieler sollte nach 3 Sekunden an einem der Spawnpunkte antworten , wie du hier sehen kannst Im Moment passiert nichts. Das liegt daran, dass wir immer noch Physik simuliert haben. Und das ist das Problem. Wenn wir nur versuchen, auf das Kapselnetz zu klicken. Lassen Sie mich hier sagen, versteckt im Spiel, ich werde es ausschalten, damit ich die Kapseln sehen und tatsächlich sehen kann , was vor sich geht. Und wenn ich die Waffe wieder laut laut mache, gehe ich als Terrorist hier raus. Ich werde hier raus gehen. Jetzt. Lass es uns nochmal versuchen. Lasst uns den Spieler erschießen und sehen. Denn wenn sich die Kapsel bewegt , haben wir keinen Bug. Wenn Sie jetzt, nach 3 Sekunden, einen Blick darauf werfen, können Sie sehen, dass die Kapsel aus dem Player verschwunden ist. Und das liegt daran, dass die Kapsel jetzt hier ist. Jetzt ist der Spieler tatsächlich hier. Der Spieler liegt jedoch immer noch wieder herum. Das liegt daran, dass wir Physik simuliert haben. Und all das müssen wir in der nächsten Lektion hier an diesem Teil arbeiten und dafür sorgen, dass er funktioniert 171. 12.04 Nicht tote RepNotify: Ordnung, jetzt sind wir zurück und werden daran arbeiten Ist das, wenn es falsch ist. Also dieser Mitarbeiter, benachrichtigen, damit wir dem Spieler richtig antworten können Was Sie zuerst tun möchten, lassen Sie uns die Physik entfernen. Das ist der erste Schritt. Nehmen wir das Mesh und ich sage, simuliere Physik aus. Als Nächstes wollen wir wieder Schatten von diesem Netz aus der dritten Person werfen. Also mach weiter und mach das. Also werde ich das Netz wieder einsetzen. Ich werde es runterziehen. Stellen Sie die Kollision ein. Wenn Sie einfach auf das Mesh klicken, ist es auf Nur Abfragen eingestellt. Ich werde hier klicken und es auf „Nur Abfragen“ einstellen. Ich kann es auf den vorherigen Stand zurücksetzen. Lassen Sie uns hier einfach einen Umleitungsknoten erstellen und ihn nach unten verschieben. Das nächste, was wir tun wollen, ist einfach hier oben nachzuschauen und zu sehen, was wir tun müssen Jetzt. Wir müssen diese Kapselkomponente nehmen und darauf klicken. Und wir müssen es auf Kollision Enabled setzen , von hier ziehen. Und sagen wir Kollision aktiviert setzen und wählen Sie es aus. Stellen Sie dann hier die Kollision aktiviert ein. Aber für diesen ist dieser jetzt richtig. Denken Sie auch daran, dass wir die Animation deaktiviert Wir müssen sie erneut ausführen. Die Animation für den Spieler ist dieser Animationsentwurf. Dieser hier oben, Animationsmodus ist auf Animations-Blueprint eingestellt Wir müssen das von hier aus tatsächlich noch einmal machen . Aus dem Netz. Und denk dran, das ist das Netz, das daraus entstanden ist. Und sag Animationsmodus einstellen. Und fahren Sie fort und wählen Sie diesen eingestellten Animationsmodus. Und Sie müssen es erneut einstellen, um den Animations-Blueprint zu verwenden. Wenn wir es jetzt auf Animations-Blueprint setzen, müssen wir eigentlich auch definieren, welcher Animations-Blueprint Da wir die Einstellungen hier oben zurücksetzen, können wir wieder aus diesem Mesh ziehen und sagen es sich um diese eine festgelegte Animationsinstanz handelt und sie verbinden Es ist der, den wir hier MBP-Player genannt haben, der Animations-Blueprint, den wir Was wir jetzt tun müssen, wir werden immer noch buchen weil ich es dir einfach zeige und du kannst sehen, was vor sich geht Wenn wir das einfach wieder öffnen, spielt hier der Terrorist. Lasst uns jetzt diesen Spieler erschießen. Jetzt ist dieser Spieler angeschossen. Und du kannst hier sehen, dass der Player immer noch portiert, aber hier ist nichts. Und ich liege auch auf diesem Bildschirm auf dem Boden, da ist immer noch ein Bug. Das liegt daran, dass wir bei der Simulation von Physik dieses Problem zu Beginn des Kurses hatten. Wenn Sie die Maus darüber halten, wird angezeigt, ob diese Komponente derzeit mit etwas verbunden ist, es ist, dass das Netz mit der Kapselkomponente verbunden ist. Wenn Sie mit der Simulation beginnen, wird es gelöst Es ist tatsächlich von der Kapselkomponente getrennt. Wir müssen es wieder anbringen. Wir nehmen das Netz hier. Hoppla, nicht beide. Nehmen wir das Netz und sagen wir , fügen Sie Komponente an Komponente an Wenn Sie sich nicht erinnern, was wir getan haben, können Sie jederzeit auf die geplünderte Waffe klicken Benachrichtige, wenn du die geplünderte Waffe auspackst. Das haben wir getan Wir haben die Physik deaktiviert und die Waffe wieder an der Rootszene befestigt Hier ist das Gleiche , was wir tun. Gehen wir zurück hierher. Jetzt stellen wir wieder eine Verbindung her oder befestigen das Netz an der Kapselkomponente. Denken Sie daran, es ist verbunden mit, lassen Sie uns eigentlich nichts tun. Die Steckdose ist keins. Für die Standortregel. Sagen wir Snap to Target. Schnappen Sie sich das Ziel. Schnappen Sie sich das Ziel. Okay, lass uns sehen was passiert, wenn du einfach noch einmal auf Play klickst. Und teste es hier als Spieler. Ich werde den Spieler wieder erschießen. Schauen wir uns jetzt an, was passiert. Der Spieler wird hier drüben gespawnt. Es gibt jedoch immer noch ein Problem. Der Player ist hier unten, auch auf meinem Bildschirm, der Player hat eine seltsame Kamera. Der Grund dafür ist dass, wenn du erneut auf das Mesh klickst, wenn du Physik simulierst, du alle deine Einstellungen zurücksetzt. Für mich ist der Ort das und die Rotation ist das. Für den Spieler ist dies zunächst auch ein Reset. Ich muss es tatsächlich wieder zurückstellen. Wenn ich das Mesh nehme und sage Set Set Relative Location and Rotation, muss ich das einstecken. Ich klicke einfach auf mein Mesh und kopiere meinen Standort. Füge es ein. Dies ist der Z-Wert und die Drehung ist -90 Lassen Sie uns jetzt kompilieren, alles speichern Mal sehen, ob alles funktioniert. Lass uns auf Play klicken. Schon wieder wie Terrorist, wie dieser Typ. Lass mich jetzt auf den Spieler schießen und sehen, was passiert. Jetzt spawnt der Spieler auf dem Boden. Aus irgendeinem Grund wurde die Umfrage überdacht. Jetzt sehen wir normal aus. Das einzige Problem, das wir momentan haben , ist, dass der Spieler im Boden spawnt Um das Problem zu beheben, bei dem sich der Spieler unter der Erde befindet. Was wir jetzt tun können, wenn wir auf Play klicken und der Spieler tatsächlich korrekt spawnt, ist den St. Points selbst nichts auszusetzen Damit müssen wir eigentlich nichts anfangen. Das Problem ist momentan hier drinnen, wann immer wir diesen Spieler anhängen, sollten wir es tatsächlich tun, um relativ zu bleiben. Lassen Sie uns den Spieler relativ halten. Skalierung. Relativ bedeutet genau das, was wir hier geschrieben haben. Da es tatsächlich unsere Waage behalten wird. Gehen wir zurück zum Spielervertreter hier für die Transformation, die wir vorgenommen haben Anstatt 1.6 zu machen, werde ich es tatsächlich löschen und hier ablegen. Denn auch hier gilt: Wenn ich es so einstelle, dass es relativ bleibt , wird es meine Skala beibehalten. Ich kompiliere und lass uns auf Play klicken und schauen, was passiert, wenn ich hier Terrorist auswähle. Lass uns einfach den Spieler erschießen. Ich schieße mehr. Mal sehen , wo der Spieler reagiert. Jetzt reagiert der Spieler dort drüben. Wenn ich meinen Standpunkt hier maximiere , siehst du, dass der Spieler eine Spielfigur hat Der Spieler schwebt jedoch. Das liegt daran, dass ich vergessen habe , das Gehen zu aktivieren. Wenn ich stattdessen einfach hierher zurückkehre. Denken Sie daran, dass wir hier die Animation so eingestellt haben und die Bewegung deaktivieren. Wenn Sie die Bewegung deaktivieren, müssen Sie sie erneut aktivieren. Sie tun das so, dass wir es direkt vor dem Animationsentwurf machen Lassen Sie uns das überholen. Nehmen wir die Bewegungskomponente des Charakters und sagen wir „ Bewegungsmodus einstellen“ wie diesen. Stellen Sie den Bewegungsmodus verbunden ein. Jetzt können Sie diesen auf Gehen einstellen, das Gehen auf dem Standardmodus, den Sie standardmäßig haben, lassen Sie mich das einfach nach unten verschieben. Und jetzt sollte es funktionieren. Wenn du kompilierst und alles speicherst, möchte ich diese Spawnpunkte vielleicht weiter nach unten verschieben Sie erreichen also tatsächlich den Boden. Der Spieler fällt nicht auf den Boden. Wenn ich sie einfach nach unten bewege oder sie tatsächlich hier auf dem Boden sind, sollte das funktionieren, wenn ich sie auch bewege. Dieser. Dieser. Dieser und dieser. Und ich schiebe sie runter , damit sie auf dem Boden liegen. Okay, lass uns jetzt Select Terrist spielen, hier bin ich. Lass uns als der andere Spieler spawnen. Jetzt werde ich den Spieler erschießen. Mal sehen, was die Spieler, der Spieler da drüben spawnt Und ich kann normal herumlaufen wie früher, wenn ich als Kunde schieße Wenn ich es nur maximiere, um zu sehen, ob es funktioniert, ist der Server jetzt tot. Der Spieler reagiert da drüben, das funktioniert in beide Richtungen. Wenn ich es einfach noch einmal versuche, stirbt der Spieler jetzt schnell, weil wir die maximale Gesundheit nicht festgelegt haben. Und das können wir in der nächsten Lektion tun. Aber du kannst sehen, dass der Spieler richtig stirbt und nichts ausrutscht Fantastisch, lass uns mit der nächsten Lektion weitermachen. 172. 12.05 Zurücksetzen der Gesundheit auf Respawn: Lasst uns jetzt die Gesundheit des Spielers zurücksetzen, wenn der Spieler reagiert . Und das ist sehr einfach, weil wir die ganze Arbeit bereits erledigt haben , wenn Sie hier einfach zur Gesundheit zurückkehren. Und was wir hier tun können, ist, wann immer der Spieler reagiert, wann immer wir den Spieler so einstellen, dass er nicht mehr tot ist, wird das hier von hier aus abgefeuert. Was wir tun können, ist, per Drag&Drop den Spieler zu setzen, ich glaube, wir haben es dieses eine Set Spieler-Gesundheit genannt. Im Grunde ist das das, was wir zuvor gemacht haben. Stellen Sie also die Gesundheit der Spieler ein. Und wir haben auch einen namens Set Player Armor. Nennen wir die, die wir bereits gemacht haben, Funktionen. Den, den wir uns hier ansehen wollen. Holen Sie sich die maximale Gesundheit des Spielers. Und wir haben auch die maximale Panzerung für Spieler. Wir werden den Spieler mit Gesundheit und Rüstung auffüllen. Jetzt können wir spielen und es sollte funktionieren. Das war alles, was wir tun mussten. Okay, lass mich einfach hier schießen und sichergehen , dass es korrekt ist. Wenn ich das so minimiere, dass ich sowohl die Gesundheit als auch den Klienten sehen kann , dass ich sowohl die Gesundheit als auch den Klienten sehen . Lass uns einfach wie der Kleine schießen, um zu sehen, ob es funktioniert, der Spieler sollte repo Hier. Hier kannst du sehen, dass der Spieler wieder gesund ist. Wir können sehen, dass der Spieler auf 100 Lebenspunkte und Rüstung zurückgesetzt wird auf 100 Lebenspunkte und Rüstung zurückgesetzt Und ich muss den Spieler erneut erschießen , bevor der Spieler stirbt Super, ich werde es hier auf dem Server versuchen und schauen, ob es funktioniert. Und der Client sollte mit maximaler Gesundheit antworten , das ist auch korrekt und alles funktioniert wie es soll. 173. 12.06 Verhinderung von Teamschäden: Jetzt können wir den Teamkollegen erschießen. Wenn Sie ein Terrorist sind, sollten Sie nicht in der Lage sein , Ihren Teamkollegen als Terrorist zu erschießen In einigen Spielmodi kannst du das auch haben, aber wenn du keinen Teamschaden haben möchtest, lass uns zur Spielerbasis übergehen Der Schaden ist hier auf dem Grundstück angerichtet. Rüste hier den Schuss aus und lade nach. Hier schießen wir. Das ist die Linienspur, die wir erstellen. Wir wollen einfach keinen Schaden anrichten. Wenn es dein Teamkollege ist, auf den du schießt. Wir wollen überprüfen, ob der Erfolgsdarsteller im selben Team ist wie Sie. Sie können diesen Erfolgsdarsteller nehmen und sagen, Referenz einholen Lassen Sie uns danach eine Verbindung herstellen. Wenn ich das einfach ein bisschen wegziehe, lassen Sie uns das einfach erweitern, damit wir Platz haben, mit dem wir arbeiten können. Und ich werde hier auch Platz schaffen. Fügen wir den Code dazwischen hinzu. Holen wir uns die Spielerreferenz. Sagen wir Get Controller, weil wir diese Teamvariable innerhalb des Controllers haben. Holen Sie sich hier die Player-Controller-Referenz , wir können auf die Teamvariable zugreifen, die wir gerade erstellt haben. Das haben wir in den vorherigen Lektionen gemacht. können wir nutzen, um zu sehen, ob das Team hier dasselbe ist wie das , das wir gegen uns haben. Wenn wir einfach den Spielercontroller nehmen und diese Teamvariable nehmen, vergleichen wir sie. Wir nehmen diese Teamvariable von dem Spieler, den wir gerade getroffen haben. Wir nehmen unsere eigene Teamvariable. Wenn das nicht gleichwertig ist, können wir Schaden anrichten, wenn Sie einfach eine Abzweigung machen. Und wir können den Schaden anrichten Wenn wir nicht im selben Team sind, möchte ich Schaden anrichten. Wenn wir jedoch im selben Team sind, werden wir eigentlich nichts tun. Lassen Sie mich das hier ein wenig neu organisieren . Okay, jetzt ist das neu organisiert, wenn wir nicht im selben Team sind wie der andere Typ, werden wir Schaden anrichten. Und das war eigentlich das Einzige, was wir tun mussten, wenn ich jetzt Terroristen auswähle Und wenn ich hier Terroristen auswähle, sollte ich diesem Teamkollegen keinen Schaden zufügen können Wenn ich auf diesen Teamkollegen schieße, siehst du, dass nichts passiert Wir verlieren keine Gesundheit. Ich versuche es mit diesem. Wenn wir auch hier als Server versuchen, auf den Client zu schießen, wird nichts passieren. Okay, so verhindert man also Teamschaden. 174. 13.01 Gestaltung der Benutzeroberfläche für den Score: Nun, da wir das Basisspiel fertig haben, wollen wir weitermachen und einige Teamergebnisse hinzufügen Ergebnis für Terrorismusbekämpfung und Terroristen. So können Sie sehen, wie viel Sie in Runden gewonnen haben. Lass uns weitermachen und zur Benutzeroberfläche gehen. Gehen Sie zur Benutzeroberfläche in der Haupt-UI, wir werden die Runden hier oben machen. Ich möchte Ihnen im Grunde zeigen, was wir versuchen zu tun damit es leichter zu verstehen ist, was wir versuchen zu tun. Eine Punktzahl für Terrorismusbekämpfung haben und eine Punktzahl für Terrorist haben. Nochmals, schlage das auf. Finden Sie heraus, welche Elemente Sie verwenden müssen, und versuchen Sie, es selbst zu tun, wenn Sie möchten, ohne meine Hilfe, denn Sie sollten in der Lage sein, es zu kaufen. Wenn Sie jetzt noch Hilfe benötigen, wenn Sie sich nicht sicher sind, wenn Sie sich nicht sicher sind, lassen Sie uns weitermachen und es gemeinsam tun. Zuerst benötigen wir ein horizontales Feld , weil es zwei Elemente nebeneinander gibt. Lass uns weitermachen und nach einer horizontalen Box suchen. Lass mich sichergehen, dass ich sie nicht hier reinlege. Schlagen Sie einfach das horizontale Feld in das Leinwandpaneel. Es ist hier drinnen. Stellen Sie sicher, dass sich der Ankerpunkt in der Mitte des Bildschirms befindet. Wenn Sie in die Exposition Null schreiben, sollte sich diese in der Mitte befinden. Wir müssen die X-Ausrichtung an der X-Position auf 0,5 einstellen. Ich sage nur 30, genommen XY-30, also nicht am Bildschirmrand Auch hier gilt: Größe an Inhalt anpassen. Okay, jetzt passt es sich dem Inhalt an, den ich hier drin habe. Lassen Sie mich zunächst ein Overlay hinzufügen. Innerhalb dieses Overlays benötigen wir ein Bild, weil wir einen Hintergrund benötigen Ich füge dieses Bild dem Overlay für dieses Bild hinzu. Suchen wir einfach nach Panel, dem gleichen Panel, das wir bisher verwendet haben Also nochmal dieses eine Panel-Dokument, ändere die Zeichnung am Rand der Box auf 0,50 0,5 und jetzt können wir es dehnen Jetzt, bei 11 im Zoom, kann ich sehen, wie groß es ist Ich glaube nicht, dass ich die Größe hier angeben werde . Ich glaube, ich werde das später tatsächlich kontrollieren. Also lass mich einfach 32 mal 32 schreiben. Nochmals, ich werde es hier unten kontrollieren. Lassen Sie uns zunächst eine vertikale Box haben. Da wir zwei Texte übereinander brauchen, brauchen wir den ersten. Lass uns einfach nach Text suchen. Lege es in das vertikale Feld. Dupliziere diesen. Ich werde auf beide klicken. Lassen Sie uns eigentlich den Stil von diesem kopieren. Lass mich darauf klicken, Shift gedrückt halten und mit der rechten Maustaste klicken. Klicken Sie auf beide. Halten Sie die Umschalttaste gedrückt und klicken Sie mit der linken Maustaste Wir fügen den Stil ein. Ich werde es auch tun, schauen wir uns das mal an. Für den Schatten haben wir keinen Schatten aufgetragen und das sollte in Ordnung sein. Wir haben auch keine Gliederung. Okay, dieser ist in Ordnung. Lassen Sie uns jetzt beide auswählen wir tun müssen. Lassen Sie uns eigentlich den ersten bearbeiten. Sagen wir Terrorismusbekämpfung. Lass uns hier einfach einen schreiben. Lass mich vielleicht einen hier für diesen schreiben. Ich werde es hier in die Mitte stellen. Eigentlich auch dieser. Stell das in die Mitte. Leg das auch in die Mitte. Auch hier in der Begründung werde ich es in die Mitte setzen. Klicken Sie nun auf die Linien , um die Striche zu entfernen. Jetzt brauchen wir etwas Abstand zwischen ihnen. Bevor ich das mache, werde ich auch die Frontgröße ändern. Ich denke, es ist ein bisschen zu groß. Ich werde es auf 20 setzen. Wenn Sie auf dieses Overlay klicken, haben Sie das Bild, dann haben wir das vertikale Feld Ich werde tatsächlich etwas Rand in dieses vertikale Feld legen etwas Rand in dieses vertikale Feld Lass mich einfach schreiben oder auffüllen. Lass mich einfach 30 schreiben und so sieht es jetzt Ich denke, das ist in Ordnung. 30 ist in Ordnung für diese vertikale Box. Wir haben das vertikale Feld von den Rändern dieses Bildes weggeschoben . Ich werde die Farbe dieses Bildes ändern. Versuche einfach, hier die Farbe zu finden, die du magst. Für die Terrorismusbekämpfung werde ich die Sättigung etwas reduzieren. Vielleicht ist so etwas in Ordnung. Okay, ich habe die Terrorismusbekämpfung, lassen Sie mich einfach ein Leerzeichen zwischen diesen beiden hinzufügen . Suchen Sie einfach nach Leerzeichen und fügen Sie sie zwischen diesen beiden Texten ein. Schreiben wir für das Y zehn. Vielleicht ist das ein bisschen zu viel. Schreiben wir fünf und schauen wir uns das noch einmal an, ich denke, wir brauchen mehr. Sagen wir 88 für den Abstand. Lassen Sie uns das einfach duplizieren. Ich werde das Overlay duplizieren , weil wir uns in der horizontalen Box befinden Es wird ein weiteres daneben hinzugefügt. Lassen Sie mich das in Terrorist ändern. Lass mich hier die Farbe ändern, den Farbton in etwas Rotes. Nur Null hier. Es ist rot. Ich werde die Sättigung etwas reduzieren , weil ich denke, dass sie zu hoch ist. Die Sättigung ist 0,8 und ich werde das auch für die andere tun. Wenn ich sie auf 0,8 ändere, bleibt sie gleich. Fügen wir einen Abstandshalter zwischen diesen beiden hinzu. Wenn ich den Abstandhalter noch einmal nehme, füge ich ihn zwischen den beiden Überlagerungen hinzu Dann schreiben wir für die Größe und das X so etwas wie 50, vielleicht etwas weniger, vielleicht nicht 50. Schreiben wir 30. Ich denke, das ist in Ordnung. Okay, wenn Sie jetzt kompilieren, lassen Sie uns diese Variablen einfach ändern, weil wir sie später verwenden werden. Das ist die Nummer, nenne es T Terrorist Score. Ich werde das kopieren und sicherstellen variabel ist, weil wir es später ändern müssen. Klicken Sie auf den anderen und nennen Sie ihn Text Terrorist Score. Machen Sie auch diese Variable. Ich werde auf alle klicken und sicherstellen, dass die Sichtbarkeit hier nicht als testbar gilt, weil ich nicht möchte die Maus mit ihnen interagiert Okay, wenn du einfach auf Play klickst, um dir anzusehen , wie es aussieht, dann sieht es so Ich finde, alles sieht gut aus. Lassen Sie uns also zum nächsten übergehen. 175. 13.02 Gestaltung der Team-Gewinn-Benutzeroberfläche: Bevor wir fortfahren, entwerfen wir das Team Win I innerhalb der Benutzeroberfläche Gehen wir zurück zum Hauptteil. Ich möchte, dass es so steht , dass ein Terrorist gewinnt oder ein Terrorist gewinnt, wenn ein Team gewinnt. Lassen Sie uns das tatsächlich darunter hinzufügen. Was wir brauchen, ist das Innere einer vertikalen Box. Da wir das und den Text darunter haben, suchen wir nach einem vertikalen Feld. Lassen Sie mich das alles minimieren, damit ich sehen kann , wo ich es ablegen kann. Es muss in diese vertikale Kiste passen. Ich werde es einfach zwischendurch hier fallen lassen. Und dann ziehe ich dieses horizontale Feld in das vertikale Feld Und jetzt klicke auf das vertikale Feld. Setze den Anker in die Mitte. Setze diese Position auf Null. Ich werde die Ausrichtung festlegen. Klicken Sie zuerst auf Größe auf Inhalt und setzen Sie die Ausrichtung auf 0,5. Und für die Position im Y werde ich sie wie zuvor auf 30 setzen. Jetzt haben wir es in einer vertikalen Box. Und was wir tun können, ist nach einem Text zu suchen und diesen Text in das vertikale Feld einzufügen. Dieser Text kann sich in der Mitte befinden, und die Begründung kann sich auch in der Mitte befinden. Geben wir ihm einfach etwas Platz, suchen nach einem Abstandhalter, fügen ihn dazwischen , klicken wir darauf, sagen zum Beispiel 15 oder 20 oder vielleicht 25. Sagen wir einfach 25, und so sieht es aus Lassen Sie uns nun auf diesen Text klicken. Lassen Sie uns mit der rechten Maustaste klicken, um diesen Frontstil zu kopieren . Klicken Sie auf diesen einen Linksklick, um ihn einzufügen. Für den Schattenversatz gebe ich ihm einfach einen Schatten von zwei mal zwei. Im Moment kannst du nichts sehen , weil du innerhalb der Schattenfarbe den Alphawert auf Null erhöhen musst , sie ist transparent. Aber wenn du zum Beispiel 0,3 schreibst, lass uns sehen, es einen leichten Schatteneffekt gibt, 0,4 vielleicht wird es klarer und das ist es, was wir haben Wir können zum Beispiel schreiben, dass der Terrorist gewonnen hat. So wird es aussehen. Okay, der spaßigen Größe halber, machen wir es einfach ein bisschen größer, weil es wichtig ist. Jetzt sieht es gut aus. Lassen Sie uns alles kompilieren und fahren wir mit dem nächsten fort. 176. 13.03 Score und Team Win UI-Funktionalität: Lassen Sie uns nun weitermachen und die Funktionalität für die Benutzeroberfläche programmieren. Lassen Sie uns es erneut öffnen und auf Counter Terrorist klicken. Ich werde es zunächst so einstellen, dass es versteckt ist, es auf versteckt stellen. Wir wollen es standardmäßig nicht sehen. Wenn du gerade hier oben bist, ändere auch den Namen. Ändern wir es zum Beispiel in den Text „Ankündigung des Teamgewinns“. Sie können es nennen, wie Sie wollen, und es auf eine Variable setzen , damit wir es im Blueprint ändern können Und das ist der Anti-Terror-Wert, den wir bereits haben, genauso wie der Terrorismus-Wert Und beide sind variabel. Okay, das ist also erledigt. Gehen wir rüber zu der Grafik hier drinnen. Was wir bisher gemacht haben, ist die Rüstung, wie wir hier sehen können, und das MO. Lass uns jetzt hier runter gehen, lass uns ein neues benutzerdefiniertes Event erstellen. Nennen wir dieses eine Update Terrorist Score UI. Ich werde diesen Namen kopieren, weil ich ihn hier noch einmal aufschreiben werde. Sagen wir jetzt Codterrorist Score. Was wir für den Terroristen tun müssen, ist, den Punktestand für Terroristen zu nehmen und den Text festzulegen und ihn miteinander zu verknüpfen Und das Gleiche werden wir hier unten für die Terrorismusbekämpfung tun. Text einstellen und wir werden den Text festlegen. Für den Text benötigen wir im Grunde die Partitur. Lassen Sie uns auf dieses Ereignis klicken und eine neue Variable sowie einen ganzzahligen und numerischen Wert erstellen. Nennen wir das eine Punktzahl. Das Gleiche gilt für diesen. Lassen Sie uns eine neue variable Ganzzahl erstellen. Nenn es Punktestand. Jetzt können wir diese Punktezahl einfach hier eintragen. neuronale Engine wandelt Ihre Integer-Variable automatisch in eine Textvariable um, sodass sie auf dem Bildschirm gedruckt werden kann. Lassen Sie uns hier dasselbe tun. Lassen Sie uns das weglegen, nur um das zu organisieren. Jetzt sind wir mit denen fertig. Lassen Sie uns eigentlich alles kompilieren und speichern. Die letzte Sache ist diese, und diese ist etwas größer. Lassen Sie uns mit der rechten Maustaste klicken und ein neues benutzerdefiniertes Ereignis erstellen. Nennen wir dieses eine Update Team Win Announcement I. Okay, für dieses müssen wir einfach auch diesen Text angeben. Nehmen wir diesen. Denken Sie daran, dass dieser standardmäßig ausgeblendet ist. Auch wenn wir den Text ändern, müssen wir zuerst die Sichtbarkeit einblenden, bevor ich etwas mache Lassen Sie uns hier zuschlagen und sagen, Sichtbarkeit für die Sichtbarkeit einstellen . Wir werden es so einstellen, dass es nicht testbar ist, sodass wir es nicht mit der Maus bedienen können Dann wollen wir diesen Text setzen. Lassen Sie mich das einfach nach unten bewegen und von hier ziehen und sagen, Text wie diesen einstellen. Stellen Sie den Text ein, machen Sie weiter und verbinden Sie ihn. Jetzt legen wir den Text fest, je nachdem, ob der Terrorist oder der Anti-Terrorist gewinnt. Wir müssen wirklich wissen, was das Team ist. Denken Sie daran, dass wir innerhalb der Spielersteuerung , wenn ich zu den Entwürfen zur Spielerkontrolle zurückkehre dieses variable Team definiert haben Und wir können das tatsächlich nutzen, um zu wissen, ob wir über den Terroristen oder den Anti-Terroristen sprechen Terroristen oder den Anti-Terroristen sprechen Lassen Sie mich hier einfach eine neue Variable hinzufügen. Denken Sie daran, dass es sich bei dieser Teamvariablen um eine Schauspielerklasse handelt. Wenn ich das hier einfach in Schauspieler, Schauspieler ändere und es eine Klassenreferenz ist, nennen wir das ein Team und buchstabieren es einfach. Im Moment haben wir dieses Team hier. Ich kann sagen dieses Team ist der Terrorismusbekämpfung ebenbürtig . Wenn ja, können wir von hier aus ziehen und „Auswählen“ sagen. Wir können auswählen, welchen Text wir wählen möchten. Wir können es hier anschließen. Wir fragen dieses Team jetzt und später werden wir Informationen hier eingeben, aber im Moment haben wir nichts. Aber wenn dieser Wert Terrorismusbekämpfung ist, wenn das falsch ist, dann wollen wir zum Beispiel den Sieg der Terroristen anzeigen . Wenn er wahr ist, wenn er Terrorismusbekämpfung heißt, dann wollen wir „Sieg des Terroristen“ buchstabieren. Es wird den Text danach auswählen, welches Team gewonnen hat, und wir werden ihm diese Information später geben. Lassen Sie uns nun hier doppelklicken und einen Knoten für die Umleitung erstellen. Ordnung, im Moment zeigen wir das auf dem Bildschirm an, aber nach ein paar Sekunden möchte ich es wieder ausblenden. Wenn ich zurückgehe und die Anzahl der Sekunden tatsächlich die Zeit ist, die die Leute brauchen, um zu antworten. Stellen Sie sich vor, wenn alle sterben, kommt dieser Service nach, sagen wir zum Beispiel nach 5 Sekunden, auf den Bildschirm . Es bewegt sich weg, weil es eine neue Runde beginnt und alle reagieren werden. Ich nenne das zum Beispiel einfach Display Time. Und wir können den Antwort-Timer später während der Anzeigezeit einschalten. Ich werde das um den Betrag dieser Verzögerungszeit verzögern, was in Zukunft der Antwort-Timer ist. Und wir können hier doppelklicken und das Ganze organisieren. Wir werden das hinauszögern. Nach dieser Verzögerung wollen wir das wieder ausblenden, einfach das kopieren, einfügen, verbunden hinzufügen, es hierher verschieben und ich werde es wieder auf versteckt setzen. Okay, das ist also erledigt. Also das war die Score-Benutzeroberfläche und das war die Score-Benutzeroberfläche. Und das ist die Ankündigungs-Benutzeroberfläche , die wir aktualisieren werden. Jetzt können wir diese Ereignisse also später nutzen. Speichern Sie alles und fahren Sie mit dem nächsten fort. 177. 13.04 Den Überblick über lebendige Spieler behalten: Jetzt müssen wir den Überblick behalten, wer auf der Karte am Leben ist und wer tot ist Weil wir hier in der Benutzeroberfläche nicht wirklich anzeigen können, wer gewonnen hat. Wenn wir nicht wirklich wissen, wer auf der Karte ist und in welchem Team sie sind, müssen wir auch wissen, in welchem Team sie sind. Zum Beispiel könnten fünf Personen am Leben sein und sie sind alle im selben Team. Zum Beispiel Terrorismusbekämpfung und alle Terroristen sind tot. Wir müssen also den Sieg bei der Terrorismusbekämpfung angeben, obwohl wir noch fünf am Leben haben , weil sie möglicherweise aus derselben Mannschaft stammen. Das müssen wir wissen. Lassen Sie uns das innerhalb des Spielmodus tun , denn im Spielmodus entscheiden wir tatsächlich über all diese Regeln. Was wir hier tun können, ist , zwei Variablen hinzuzufügen. Fügen wir zunächst eine namens Players Alive hinzu. Bevor wir es hinzufügen, ändern wir tatsächlich den Variablentyp für die Variable. Ich möchte das auf Spielerbasis ändern. Wählen Sie jetzt den Spieler aus. Ich glaube, das ist falsch. Lass uns wieder nach der Waffenbasis suchen, aber Spielerbasis, es ist diese. Dieser. Dieser hier. Spielerbasis. Anstatt hier nur eine ursprüngliche Variable zu verwenden, machen wir es jetzt zu einer Map. Was eine Map ist, wie Sie hier sehen können, kann sie zwei Werte enthalten. Wenn Sie es hier einfach auswählen, kompilieren wir es einfach. Du kannst jetzt sehen, dass wir diese Spielerbasis haben, aber wir haben auch die zweite Variable daneben. Du kannst diesem Spieler tatsächlich verschiedene Dinge zuweisen. Wenn ich jetzt zum Beispiel auf das Plus klicke, wenn ich hier einen Spieler hinzufüge, kann ich hier auch eine Zahl hinzufügen. Diese Kartenvariable kann man tatsächlich wie in verschiedenen Szenarien verwenden . Sie können zwei Variablen haben. Sie können zum Beispiel jeden Spieler angeben und auch, wie viele Kills er hat. Jeder Spieler ist in dieser Liste und es wird zum Beispiel auch angegeben, wie viele Kills er hat. Aber wir wollen diesen Spieler haben und wir wollen auch wissen, in welchem Team er ist . Weil wir das hier brauchen, um zu sehen ob alle Mitglieder desselben Teams am Leben sind oder ob sie tot sind und all das. Ändern wir das nochmal in einen Schauspieler, letzte Referenz, denn das ist unser Team. Und ich werde einfach diesen Variablentyp ändern. Hier haben wir es. Jetzt haben wir diese Variable, wir haben den Spieler. Wenn ich nur kompiliere, verschwindet das, wenn ich kompiliere. Jetzt können wir den Spieler hier haben , in welchem Team er ist. Jetzt können wir jeden Spieler haben und wissen, in welchem Team er ist. Okay, wir haben die Spieler also am Leben. Ich werde ein neues Spiel namens Players machen. Es ist später ein letzter, und damit werden wir später arbeiten. Aber lass es uns jetzt schaffen. Spieler spawnen. Das werden wir später verwenden. Und dieses wird einfach ein normales Array sein. Wir wissen nur, wie viele Spieler auf der Karte erschienen Fangen wir hier an. Lassen Sie uns ein neues benutzerdefiniertes Ereignis erstellen. Und dieses werden wir der Players Alive Map hinzufügen. Und diese wird übrigens Map genannt . Das ist eine einzelne Variable, ein Array, eine Menge. Und jetzt arbeiten wir mit einer Karte. Füge zwei Spieler auf der Live-Karte hinzu. Was wir tun werden, ist, das zu nehmen und hier hinzufügen zu sagen. Wir können den Spieler hinzufügen, eigentlich brauchen wir diese Spielerreferenz. Wir können es einfach hierher ziehen und anschließen. Und das ist die Spielerbasis. Ich werde es einfach in Player umbenennen. Bevor ich das mache, ist der Spieler vielleicht tot. Der Spieler könnte dazu hinzugefügt werden. Spieler sind tot, denn wenn sie antworten, werden sie dazu hinzugefügt. Hier, was wir zuerst tun müssen, ist das zu nehmen und „Finden“ zu sagen. können wir gebrauchen. Übrigens, für Karten können Sie einfach hierher ziehen, zu Dienstprogrammen gehen, zur Karte gehen. Hier sind die Funktionen , die Sie damit verwenden können. Sie können sehen, dass Sie damit nicht wirklich viel anfangen können. Du kannst etwas hinzufügen, etwas finden, fragen, ob es leer ist und so weiter. Das hat nicht wirklich viel damit zu tun. Was wir tun wollen, wir werden versuchen, diesen Spieler zu finden und zu sehen, ob er sich auf dieser Karte befindet. Lass es uns einfach hier verbinden, finde es hier. Lassen Sie uns diesen Zweig erstellen, um zu fragen ob der Spieler hier drinnen gefunden wurde. Lassen Sie mich das ein bisschen nach unten verschieben. Wenn wir den Spieler finden, nehmen wir das und sagen Entfernen“ und wählen dann die Entfernen-Funktion. Mach weiter und entferne diesen Spieler aus der Liste „Spieler tot“. Lassen Sie mich einfach hier doppelklicken und die hintere Route notieren, damit alles organisiert ist. Jetzt ziehe ich von diesem Player, weiter und verbinde ihn erneut. Klicken Sie, ich werde das alles nach unten verschieben , damit ich mehr Platz zum Arbeiten habe. Und wir können das so nach unten verschieben. Und jetzt ist es so. Hier werden wir diesen Spieler auf der Totenkarte des Spielers finden . Und wir werden den Spieler entfernen wenn der Spieler gefunden wurde. Wenn der Spieler jedoch nicht gefunden wurde, wir den Code einfach fort. Was wir hier machen wollen, ist dieser, bei dem wir den Spieler zu den lebenden Spielern hinzufügen . Jetzt entfernen wir den Spieler aus den Toten des Spielers, und jetzt fügen wir diesen Spieler der Karte hinzu. Das ist wieder der Spieler. Wir können das einfach trennen , weil wir jetzt diesen Umleitungsknoten haben Ich doppelklicke hier und stecke es hier ein. Doppelklicken Sie erneut hier und fügen Sie es einfach hier unten hinzu. Was wir jetzt tun müssen, ist, dass wir das auch hier brauchen. Wir müssen wissen, welches Team dafür zuständig ist, wir brauchen einen Hinweis auf den Spielercontroller. Denken Sie daran, dass wir innerhalb des Player-Controllers diese Variable haben und wir sie benötigen. Lass uns hier runter gehen, lass mich das wegbringen. Wir können hier doppelklicken , um einen Umleitungsknoten zu erstellen Wir können hier ziehen und sagen, Controller holen und auswählen. Denken Sie daran, dass dies der Spieler ist. Wir versuchen, diesen Play-Controller zu bekommen. Dann haben wir über die Blueprint-Oberfläche Referenz zum Abrufen des Player-Controllers erstellt Jetzt haben wir den Player-Controller. Jetzt können wir auf alles in diesem Player-Controller zugreifen . Und wir wollen diese Teamvariable. Lasst uns hier zuschlagen. Team bekommt diese Teamvariable. Und jetzt können wir das hier anklicken und ziehen und einfügen. Lass es uns einfach hier einstecken. Und ich werde das alles nach unten verschieben , damit ich einfach mehr Platz habe. Und lass es uns näher rücken und verbinden. Jetzt fügen wir diesen Spieler tatsächlich der Karte hinzu und entfernen ihn von der Stelle dieses Spielers. Okay, jetzt ist es fertig. Lassen Sie uns alles kompilieren und fahren wir mit dem nächsten fort. 178. 13.05 Den Überblick über tote Spieler behalten: Was wir jetzt tun müssen, ist, den Überblick über die Spieler hier zu behalten Was wir wie zuvor tun müssen, mit der rechten Maustaste klicken, ein neues benutzerdefiniertes Event erstellen und dieses Event „Zur Spielerkarte hinzufügen“ nennen . Genau wie zuvor benötigen wir die Spielerreferenz. Wenn du also nach einer Spielerbasis suchst, wähle sie hier aus und nenne diesen einen Spieler. Nehmen wir die tote Karte dieses Spielers. Nehmen wir eigentlich zuerst die , die am Leben ist. Wir müssen den Spieler entfernen, wenn hier drin ist, bevor wir ihn hier zur Dead Map hinzufügen, genau wie zuvor. Nehmen wir das, schauen wir mal, ob wir den Spieler hier drinnen finden können. Lass uns einen Zweig bauen. Lassen Sie uns das hier verbinden. Übrigens, bei diesem habe ich vergessen, das wirklich zu verbinden, wie ich hier für das Entfernen sehen kann hier für das Entfernen sehen Wenn es falsch ist, wenn wir den Spieler hier nicht finden können, fahren fort und fahren Sie mit dem Code fort. Entferne nichts. Lassen Sie uns tatsächlich hier oben doppelklicken und hier doppelklicken. Okay, das ist korrigiert. Wir müssen hier dasselbe tun. Wenn wir den Spieler finden können, nehmen Sie ihn und sagen Sie Entfernen. Und lassen Sie uns es verbinden. Mach weiter und entferne den Spieler, genau wie zuvor. Ich werde das einfach neu organisieren. Also gut, jetzt, wo wir den Spieler entfernt haben, fügen wir den Spieler zu den Toten des Spielers Nehmen wir das, sagen wir hinzufügen, machen weiter und fügen den Spieler wie zuvor hinzu. Doppelklicken Sie hier für den Spieler und erstellen Sie einen hinteren Routenknoten. Lasst uns das hier reinschlagen und wieder einen hinteren Routenknoten bauen. Los geht's. Jetzt haben wir den Spieler hier hinzugefügt. Und ich werde das einfach ein bisschen wegbewegen , damit ich mehr Platz zum Arbeiten habe. Wir müssen den Controller wissen lassen, welchem Team dieser Spieler ist. Lassen Sie uns das wegschleppen. Lass uns hier doppelklicken. Sagen wir, holen Sie sich die Kontrolle, holen Sie sich den Controller, bekommen Sie tatsächlich den Spielercontroller. Mach weiter und verbinde es. Jetzt müssen wir diese Teamvariable wie zuvor nehmen und sie hier unten verbinden. Lass es uns einfach hierher verschieben. Lassen Sie mich das ein bisschen so bewegen. Ich werde das ein bisschen nach oben verschieben, einfach so. Und mach weiter und bring es näher. Okay, jetzt fügen wir den Spieler hier hinzu. Und wie zuvor, wenn wir den Spieler nicht finden können, suchen Sie einfach den Controller und wir können den Spieler zu dieser Map hinzufügen. Okay, das war der Code. Jetzt verfolgen wir die Spieler, die noch leben, und wir verfolgen auch die Spieler , die tot sind. Was wir jetzt tun müssen, ist den Überblick über die lebenden Spieler zu behalten , alle lebenden Spieler. Machen wir weiter und machen das in der nächsten Lektion. 179. 13.06 Den Überblick über alle Spawned-Spieler behalten: Um den Überblick über alle Spieler zu behalten, die tatsächlich in das Level gespawnt wurden Das ist im Vergleich zu den anderen sehr einfach. Lass uns hier einfach ein benutzerdefiniertes Event namens Add to Players Spawn Array erstellen hier einfach ein benutzerdefiniertes Event namens Add to Players Spawn Array Auch hier brauchen wir den Spieler, lassen Sie uns das ändern und ihn Spieler nennen Und der Typ ist Spielerbasis. Wir wollen einfach nur das Spawn-Array dieses Spielers nehmen und sagen, Array-Elemente setzen und wir wollen die Spieler hier hinzufügen Lassen Sie uns jetzt den Index wählen. Und der Index nimmt das einfach und sagt Länge. Und wir werden es hier einstecken. Es wird automatisch die Länge dieses Arrays ermitteln und die Spieler darin hinzufügen. Der Gegenstand, den wir hinzufügen wollen, ist einfach dieser Spieler. Denken Sie auch daran, diese Größe so zu nehmen, dass sie passt , denn wenn Sie sie anfangs nicht nehmen, mussten wir tatsächlich nehmen und die Größe ändern. Dann geben wir an, wie viel Größe dieses Array aufnehmen kann. Aber anstatt das zu tun, können wir einfach sagen, dass Größe passt. Passen Sie die Größe automatisch an. Das ist in Ordnung. Und wir können darauf doppelklicken, um einen hinteren Routenknoten zu erstellen, und wir können ihn näher rücken. Das ist tatsächlich erledigt. Das ist alles, was wir tun müssen. Wir können jetzt all diese Ereignisse nutzen. Jetzt ist es viel einfacher für uns, weil wir all diese jetzt erstellt haben und sie in Zukunft nutzen können. Lassen Sie uns alles speichern und der nächsten Lektion fortfahren. 180. 13.07 Überprüfung der Anzahl der lebenden Spieler: Okay, jetzt müssen wir tatsächlich überprüfen ob die Spieler alle tot sind oder ob sie alle am Leben sind Weil wir zu diesem Nui gehen und das ausstellen müssen. Wir müssen überprüfen, wie viele Spieler noch am Leben sind Aber der beste Weg, das zu tun, ist hier. Wenn wir den Spieler zur Dead Map hinzufügen, dann wissen wir, dass dieser Spieler gerade gestorben ist. Und von hier aus können wir überprüfen, wie viele Spieler noch am Leben sind. Jedes Mal, wenn ein Spieler stirbt, werden wir überprüfen, ob wir zum Beispiel diese Windschutzscheibe gegen Terroristen spielen müssen . Lassen Sie uns das machen, lassen Sie mich hier einfach ein Makro machen. Lass uns auf dieses Plus klicken. Lassen Sie mich diesen einen Check für das Makro „Anzahl lebender Ebenen“ nennen . Der Grund, warum ich daraus ein Makro statt einer Funktion mache, ist , dass ich hier eine For-Schleife mache. Oder eigentlich für jede Schleife, für jede Schleife werde ich diese verwenden. Das Gute an einem Makro ist diese Rückkehr. Wenn ich hier nur zwei Variablen hinzufüge, beide Ausführungspins, heißt diese hier Execute, diese heißt. Dann der Grund, warum sie aufgerufen werden, dass der Text verschwindet wenn man hier oben Execute schreibt. Und wenn du schreibst, dann verschwindet er auch hier unten. Die Ausgabe, anstatt das hier oben wie eine Funktion zu machen, wenn Sie mit dem Ausführungsstift beginnen und sie hier beenden, können wir mit einem Makro die Ausgabe zum Ganzen hinzufügen. Wir warten tatsächlich darauf, dass die Schleife passiert, bevor wir den Code hier fortsetzen. Wenn ich dieses Makro hier hinzufüge, wird es nur fortgesetzt, wenn meine Schleife beendet ist. Aus diesem Grund erstelle ich tatsächlich ein Makro. In diesem Fall möchte ich jetzt zwei Variablen hinzufügen. Erstens können wir als lebende Terroristen bezeichnen. Machen wir daraus eine normale Ganzzahlvariable. Lassen Sie uns eine neue namens Alive erstellen und kompilieren. Okay, für diesen setzen wir zuerst die Anti-Terroristen auf Null, diejenigen, die noch am Leben sind, und diesen ebenfalls auf Null. Weil wir das in einer Schleife wiederholen und die Menge erhöhen werden, je nachdem , wie viele noch am Leben sind Okay, lassen Sie uns diese Spieler lebend erwischen. Hier können wir überprüfen, wie viele noch am Leben sind. Immer noch einer. Lass mich das einfach für diesen löschen. Für das Rennen kannst du das einfach nehmen und für jede Runde sagen, dass du es tatsächlich verwenden kannst. einer Map kann man allerdings nicht für jeden Loop sagen, es sich nicht um ein Array handelt, das gilt nur für Strahlen. Was Sie tun können, ist, zu ziehen Gehen Sie dazu einfach zur Dienstprogrammübersicht und Sie können sich diese Funktion ansehen. Sie haben etwas, das Schlüssel genannt wird. Sie haben auch etwas, das Werte genannt wird. Wenn Sie auf Schlüssel klicken, können Sie hier tatsächlich alle Schlüssel abrufen. Wie bei all diesem Teil kannst du dir alle Spieler holen. Wenn Sie jedoch Werte ziehen und sagen , können Sie alle Werte abrufen, Sie können den gesamten Abschnitt abrufen, diesen Abschnitt hier drüben, wir haben Schlüssel und wir haben Werte. Und du kannst sie hier sehen. Wenn Sie einfach von hier ziehen und Hinzufügen sagen, können Sie sehen, dass Sie zu diesem hinzufügen, was die Schlüssel sind, und Sie fügen zu diesem hinzu, welche Werte. Das haben wir schon einmal gemacht. Nehmen wir alle Werte. Lass mich das hier einfach löschen. Lassen Sie mich alle Werte nehmen und sagen, dass wir für jede Schleife jetzt eine Schleife erstellen können , weil dies ein Array ist. nun für jede Schleife Lassen Sie mich nun für jede Schleife einfach diese löschen und sie nach unten verschieben. Wir werden schauen, welches Team noch am Leben ist , ich kann daraus ziehen und sagen, wir müssen das zuerst nehmen und gleich sagen und fragen, ob das gleichbedeutend ist, um zum Beispiel Terroristen rückgängig zu machen. Und wählen Sie diesen einen BP-Terrorismusbekämpfer aus und gründen Sie hier einen Zweig. Jetzt nehmen wir die Werte hier und fragen uns, ist das jetzt ein Anti-Terror-Wert? Das bedeutet, dass ein Anti-Terrorist am Leben ist. Wenn das stimmt, können wir diesen Anti-Terroristen lebend erwischen und plus plus sagen. Was bedeutet Plus, Plus? Es ist dasselbe, als würde man plus eins sagen und dann diese Variable so setzen, so, das ist viel kürzer. Es ist eigentlich dasselbe wie eine hinzuzufügen. Sie können die Maus darüber halten und sagen, fügen Sie dem angegebenen Wert eins hinzu und legen Sie ihn dann fest. Anstatt all das zu tun, können wir einfach das tun. Wir nehmen die Terrorismusbekämpfung lebend und fügen einen hinzu, weil wir gerade herausgefunden haben dieser spezielle Wert eine Terrorismusbekämpfung ist. Okay, wenn es falsch ist, bedeutet das, dass es ein Terrorist ist. Wir können diesen Terroristen lebend erwischen und Plus sagen und es hier zur Falschmeldung hinzufügen. Wenn es falsch ist, ist es ein Terrorist, der am Leben ist. Wenn die Schleife beendet ist, was wir jetzt im Gegenzug tun müssen, müssen wir sagen, müssen wir sagen wie viele Terroristen am Leben sind und wie viele Anti-Terroristen am Leben sind. Wir müssen zwei Variablen hinzufügen, und beide sind hier ganze Zahlen. Ergebnisse: Nennen wir diese Zahl lebende Terroristen zählen, und nennen Sie diese eine Terroristen-Terroristen am Leben und ohne Leerzeichen Jetzt können wir diese beiden Variablen hier hinzufügen und sie an den Spieler in der ausgeben. Wenn wir die Schleife abgeschlossen haben, setzen wir den Code fort . Wenn ich also zurück zum Vent-Graph gehe und hier kompiliere , werden wir nach der Schleife weitermachen und jetzt wissen wir , wie viele Anti-Terroristen am Leben sind und wir wissen auch, wie viele Terroristen am Leben sind. 181. 13.08 Teamgewinn-Ankündigung: wir nun wissen, wie viele Spieler noch am Leben sind, nehmen wir die Terroristen lebend und fragen, ob das gleich Null ist Wir können dasselbe für den Terroristen tun. Fragen Sie gleich von hier aus, ob das gleich Null ist, und sagen Sie, und verwenden Sie es oder Goldbarren Wenn entweder der Terrorist oder die Anti-Terroristen Null sind Das heißt, wir brauchen diesen Text hier, weil es auf der Karte keinen oder mehrere Anti-Terroristen mehr gibt , und wir müssen sagen oder sagen, wer das Spiel oder die Runde hier gewonnen hat , wir fragen, ist das gleich Null oder ist das gleich Null? Wenn einer von ihnen wahr ist, machen wir einen Zweig und verbinden ihn. Wenn einer von ihnen wahr ist, müssen wir die Ankündigung abspielen. Gehen wir also zur Erinnerung hierher zurück und schauen uns an, was wir die Ankündigung nennen. Also hier nennen wir es Update Team Win Announcement. Ich kann das jetzt spielen, wir können es nicht direkt im Spielmodus machen, weil denken Sie daran, dass der Spielmodus immer auf dem Server läuft. Und aus diesem Grund replizieren wir hier nie auf den Server , weil das keinen Sinn ergibt Es läuft bereits auf dem Server. Der Client kann im Spielmodus nicht auf den Code zugreifen . Denken Sie auch daran, dass die Benutzeroberfläche auf dem Client ausgeführt wird. Client und Server können auf diese Weise nicht kommunizieren, so wie Sie es nicht können. Der Client kann nicht einfach in den Spielmodus springen weil der Spielmodus nur auf dem Server existiert und nicht mit dem Client kommunizieren kann . So was wie die Benutzeroberfläche, wir brauchen tatsächlich ein Medium, um es zu durchlaufen. Entweder müssen wir es durch die Spielerbasis laufen lassen oder wir müssen es durch die Spielersteuerung laufen lassen. Da wir die Benutzeroberfläche innerhalb der Spielersteuerung steuern, erstellen wir eine Benutzeroberfläche innerhalb des Player-Controllers. Innerhalb des Play-Controllers. Es ist sinnvoller, Dinge hier drinnen mit der Benutzeroberfläche zu erledigen. Lass uns das machen. Lass uns mit der rechten Maustaste klicken. Was wir eigentlich tun müssen, ist einfach das WB-Hauptmenü zu nehmen Wir müssen dieses eine Update Team Win Announcement nennen. Kehren wir zur Ankündigung des Gewinns des Play-Controller-Updates zurück . Das versuchen wir zu tun. Lassen Sie uns dafür eine Funktion oder ein Ereignis erstellen. Lassen Sie uns ein benutzerdefiniertes Ereignis namens Update Win Announcement Announcement erstellen. Lassen Sie mich das einfach kopieren, damit ich es nicht noch einmal schreiben muss , denn jetzt müssen wir ein neues Kundenereignis über die Clients laufen lassen , weil wir einige Benutzeroberflächen ausführen und auf Owning Client Reliable klicken müssen einige Benutzeroberflächen ausführen und auf Owning Client Reliable klicken Lassen Sie uns den Client hier oben ausführen. Okay, lassen Sie uns das nach unten verschieben. Lass es uns hier verbinden. Eigentlich nicht das M, das ist das falsche. Teamankündigung I aktualisieren Löschen wir das und verbinden wir es stattdessen. Jetzt müssen wir das hier durchgehen und wir müssen auch die Anzeigezeit berechnen. Mach das Gleiche hier oben, einfach weiter mit dem Flow. Und jetzt müssen wir es hier im Spielmodus aufrufen. Jetzt funktioniert es. Wir können diesen einfach anrufen, weil er über den Server läuft. Denken Sie daran, dass Sie Client-Ereignisse nur aufrufen können , wenn wir uns gerade auf dem Server befinden. Wir sind auf dem Server, denn wenn dieses Ereignis hier ist, wenn ich zurückgehe, wenn du dieses Ereignis hier im Spielmodus aufrufst , sind wir immer noch auf dem Server. Das heißt, du kannst diesen Server nur ausführen, du kannst Client-Events nur ausführen, wenn du auf dem Server bist. Das machen wir. Gehen wir zurück zum Spielmodus. Jetzt hier, nachdem wir überprüft haben , dass einer von ihnen Null ist, müssen wir das jetzt spielen. Wir brauchen den Controller oder alle Spieler, weil wir ihn für alle Spieler anzeigen müssen, wir müssen diesen Text hier oben für alle Spieler anzeigen. Was wir tun müssen, ist eine For-Schleife. Deshalb haben wir diese Spieler spawnen lassen. Nehmen wir das und sagen wir für jeden, weil es egal ist, wer am Leben ist und wer nicht, wir wollen es eigentlich nur für alle spawnenden Spieler spielen . Lassen Sie uns für jeden der Spawn-Spieler hier sein, holen wir uns den Controller It-Controller Dann können wir wieder sagen, dass Get Player Controller Reference genau das Gleiche ist wie das, was wir bisher gemacht haben Und jetzt können wir das Update Team Win Announcement nennen . Nennen wir es die Ankündigung des Update-Teams. Dieser hier. Jetzt müssen wir wissen, was das Team ist. Wir müssen auch wissen, wie lange die Anzeige dauert. Die Anzeigezeit, ich habe dir schon einmal gesagt, das ist eigentlich nur der Antwort-Timer. Während wir antworten, möchten wir dies auf dem Bildschirm anzeigen. Lass mich hier im Spielmodus einfach eine neue Variable erstellen und sagen. Antworte auf den Timer. Und wir können daraus einfach einen Float machen und ihn mit hier verbinden lassen. Jetzt müssen wir auch das Team für dieses Team kennen. Wir müssen zeigen , wer das Spiel gewonnen hat. Dafür müssen wir diese Spieler nur lebend erwischen, denn wer auch immer am Leben ist, ist die Mannschaft, die gewonnen hat. Wir können das nehmen und Werte sagen. Fahren Sie fort und wählen Sie das aus. Schlag einfach von hier aus zu und sag es. Denn jetzt ist es wie ein Array. Wir können diesen Wert ermitteln. Wir kriegen ihn einfach von dem ersten Spieler, den wir hier drinnen finden. Es ist nicht wirklich wichtig zu wissen, wer der Spieler ist, weil sie alle am Leben sind, dieselbe Mannschaft, die gewonnen hat. Also suchen wir uns einfach den ersten Spieler , den wir finden können. Und dann können wir das hier einstecken. Der lebende Spieler ist derjenige, der gewonnen hat. Mach weiter und verbinde alles. Und ich werde mir hier nur Notizen zur hinteren Route machen . Und hier hast du es. Jetzt sind wir also tatsächlich fertig. Also nehmen wir alle Spieler , die gespawnt wurden, mit ins Spiel Wir übernehmen all ihre Spielkontrollgesetze. Und wir zeigen für sie alle dieses Update-Team an, das wir angekündigt haben. Und was wir zeigen, ist, wer noch am Leben ist, das ist das Team, das gewonnen hat. Also klicken wir jetzt auf den Antwort-Timer. Und ich werde diesen Antwort-Timer für die Kompilierung vorerst auf vielleicht 3 Sekunden einstellen. Und jetzt klicken wir auf Play und testen es. Und lass uns das Spiel hier spielen. Ich werde hier Terroristen oder Anti-Terroristen auswählen . Und ich werde Terroristen auswählen, ich werde vor den Anti-Terroristen treten. Jetzt bin ich der Anti-Terrorist, ich werde den Terroristen erschießen. Jetzt sollte es Anti-Terror-Eins heißen, aber im Moment wird nichts angezeigt. Also lass mich das einfach schließen und sehen, was vor sich geht. Ordnung, bevor wir weitermachen, denken Sie daran, diesen Reaktions-Timer auf einen Wert einzustellen , der nicht Null ist, vielleicht auf etwa 3 Sekunden. Außerdem müssen wir die Spieler so einstellen, dass sie am Leben sind, wenn sie spawnen, denn im Moment passiert nichts Wir haben diese Ereignisse nie hier genannt Lasst uns alles zusammenstellen, alles speichern und gehen wir zur Spielerbasis wann immer dieser Spieler spawnt Und das ist in diesem Ereignisdiagramm. Beginne das Spiel, wann immer dieser Spieler spawnt und wir legen die Gesundheit für diesen Spieler Ich möchte sie auch auf diese Alive-Map setzen. Denken Sie daran, dass dieses Startspiel auf dem Client sowohl auf dem Client als auch auf dem Server läuft. Es wird uns einen Dollar einbringen, wenn wir das direkt anrufen. Da auf den Spielmodus nur über den Server zugegriffen werden kann, können wir nicht über den Client darauf zugreifen Wir müssen tatsächlich ein Server-Event veranstalten. Lassen Sie uns ein neues benutzerdefiniertes Ereignis über den Server erstellen. Bei der ersten muss ich zwei Ebenen hinzufügen, eine Alive-Map und diese über den Server laufen lassen. Zuverlässig. Wir müssen auch den anderen, Server Two Layers Spon Array genannt, machen Server Two Layers Spon Array genannt weil wir auch diesen haben Und wir müssen das auch auf dem Server ausführen. Okay, hier brauchen wir die Spielmodus-Referenz. Ich glaube nicht, dass wir dafür eine Variable geschaffen haben, so wie wir es für das Spielerkontrollgesetz gemacht haben. Lassen Sie uns das auch für den Spielmodus tun. Ich werde das wegziehen. Sag, hol dir den Spielmodus. Das ist eigentlich die Referenz. Lass uns den Spielmodus hier runterholen. Diese Funktion, führe sie über diese Referenz zum Abrufen des Spielmodus aus. Lass uns das nach unten verschieben. Lass uns weitermachen und es verbinden. Lasst uns das zu unserer Variablen hochstufen und es Spielmodus nennen. Okay, lass es uns verbinden. Wir müssen das nicht replizieren , weil es sowieso nur auf dem Server läuft Lassen Sie uns jetzt hier drüben diese Spielmodus-Variable nehmen Nennen wir das Hinzufügen zu Spielern eine Live-Map. Lassen Sie uns das für diesen verbinden. Sagen wir Spielmodus. Nehmen wir noch einmal diese Spielmodus-Variable, die wir haben. Sagen wir, fügen Sie das Spawn-Array der Spieler hinzu. Gehen wir weiter und verbinden uns wie zuvor. Was wir jetzt damit machen können, ist, dass wir es hier im Begin-Spiel aufrufen können. Wir können Server „ Ebenen zu einer Live-Karte hinzufügen“ nennen. Und wir können das Adypawnarray auch aufrufen. Wir müssen den Spieler definieren. Denken Sie daran, dass wir uns bereits in der Spielerbasis befinden, also können wir einfach Selbst sagen und wieder aus der Entfernung ziehen. Jetzt haben wir sie hinzugefügt, wann immer sie erscheinen. Wir fügen den Spieler zur Live-Map hinzu, aber wir fügen ihn auch zu den Spielern hinzu , die gespawnt Wir behalten also im Auge wie viele Spieler sich tatsächlich auf der Karte befinden Immer wenn der Spieler stirbt, müssen wir ihn ebenfalls dem Tod hinzufügen. Wenn ich einfach hier raufgehe, gehe ich zur Gesundheitsrüstung und zum Schaden. Wenn wir einfach zu diesem Tod runtergehen, denken Sie daran, dass wir den Respawn hier danach gemacht haben , wo es heißt, keine Waffen zum Und wir antworten, der Spieler. Lassen Sie uns das jetzt trennen und das einfach wegziehen. Der Spieler, wann immer der Spieler stirbt und alle Waffen fallen lässt. Fügen wir den Spieler zu diesem Spielmodus-Event hinzu. Dies läuft bereits auf dem Server, sodass wir kein Serverereignis durchführen müssen. Diese Referenz zum Spielmodus haben wir gemacht, sagen wir Spieler hinzufügen, oder lassen Sie mich sehen, wie ich es nenne. Wenn ich in den Spielmodus gehe, füge die Totenkarte für zwei Spieler hinzu. Lasst uns von hier aus zuschlagen und sagen, zwei Spieler hinzufügen , tot und verbunden. Jetzt müssen wir sagen , wer der Spieler ist? Es ist ich selbst, wir sind immer noch im Spieler. Jetzt fügen wir diesen Spieler der Dead Map hinzu, wann immer der Spieler stirbt. Der Grund, warum es für mich nicht gedruckt wird, ist, dass ich diesen Code hier oben in der Karte „To Players Alive“ hinzugefügt habe . Und ich muss ihn hier aufrufen, weil ich jedes Mal nachschauen muss, wenn ein Spieler stirbt. Lassen Sie mich diesen Code hier einfach trennen. Lass mich einfach all das kopieren, was ich geschrieben habe, und ich werde es stattdessen auf diesen verschieben und verbinden. Ein kleiner Fehler, stellen Sie nur sicher, dass er Ihnen nicht auch passiert. Füge es zur Deadmap des Spielers hinzu, weil wir jedes Mal überprüfen müssen, wenn ein Spieler stirbt Lass uns kompilieren und auf Jetzt spielen klicken. Und ich werde das einfach maximieren. Wählen Sie hier Terrorabwehr, hier Terrorist. Und dann werde ich hier im Freien als Anti-Terrorist auftreten Ich werde jetzt den Terroristen erschießen. Ich werde nur ein bisschen näher ran. Wenn ich den Terroristen erschieße, heißt es jetzt auf beiden Bildschirmen: Sieg gegen Terroristen. Jetzt wird es nach 3 Sekunden verschwinden , weil ich das auf meinen Timer gestellt habe. Und lass uns versuchen, es mit mehr Spielern zu testen. Wenn ich vier Spieler auswähle und das Spiel spiele, sind sie hier. Ich wähle Terrorist, Terrorist und diesen einen Anti-Terroristen. Auf meinem anderen Monitor glaube ich, oder hinter diesem. Es gibt noch einen. Da ist es. Und ich werde auch hier die Terrorismusbekämpfung wählen . Jetzt haben wir zwei Anti-Terroristen und wir haben auch zwei Terroristen. Lassen Sie mich einfach hier offen für sie alle und als Vertreter der Terrorismusbekämpfung hier drüben stehen. Als Terrorist für diesen Fall werde ich tatsächlich zum Spawn gehen, versuchen wir hier zu töten und sehen, was da steht Wenn ich diesen Anti-Terroristen töte, wird nichts angezeigt , weil hier nicht alle Spieler tot sind. Als noch lebender Anti-Terrorist werde ich diesen Terroristen erschießen. Jetzt ist dieser Terrorist tot und es sind immer noch zwei Spieler übrig, die als Anti-Terrorist noch am Leben sind. Wenn ich jetzt zum Terroristen rübergehe und diesen Terroristen erschieße, heißt es jetzt, dass der Kampf gegen den Terrorismus gewonnen hat. Auf allen Bildschirmen funktioniert alles perfekt. Jetzt können wir weitermachen und die Ergebnisse der Mannschaft hinzufügen , bevor wir den Spielern antworten. 182. 13.09 Hinzufügen des Team-Score: Was wir jetzt tun müssen, ist die Teampunktzahl hinzuzufügen. Wenn wir zur Haupt-Benutzeroberfläche zurückkehren, denken Sie daran, dass wir hier die Teamwertung erzielt haben. Wir haben für diese beiden Ereignisse die Benutzeroberfläche der Terrorliste aktualisiert. Und wir haben dieses eine Update für die Benutzeroberfläche zur Terrorismusbekämpfung vorgenommen. Lassen Sie uns auch sie zum Black Control Law hinzufügen , denn auch hier können wir als Client nicht auf den Spielmodus zugreifen. Gehen wir zum Player-Controller wenn dieser angezeigt wird, wann immer er gespielt wird. Immer wenn wir die Ankündigung des Teamgewinns zeigen, wollen wir normalerweise eine davon erhöhen Lassen Sie mich hier nach der Ankündigung des Teamgewinns nach dem Update einfach der Ankündigung des Teamgewinns nach dem Update Was wir hier tun können, wir können fragen, welches Team eines hat. Wir können das in die Länge ziehen und gleich sagen. Wenn das gleichbedeutend mit Terrorismusbekämpfung ist, machen wir hier einen Zweig, lassen Sie uns das verbinden. Nehmen wir noch einmal diesen WB-Hauptteil und fügen ihn ein Immer wenn es sich um die Terrorismusbekämpfung handelt, möchten wir die Benutzeroberfläche für die Terrorismusbekämpfung aktualisieren Benutzeroberfläche für die Terrorismusbekämpfung , wann immer es sich um den Terroristen Wenn dies falsch ist, möchten wir die Benutzeroberfläche für die Terrorismusbekämpfung aktualisieren Mach weiter und verbinde das mit dem Falschen. Jetzt müssen wir auch den Punktestand verbinden. Lass uns weitermachen und hier eine Stecknadel machen. Weil wir es brauchen. Machen wir daraus eine Ganzzahl, nennen wir es Punktzahl. Ich werde es hier einfach unter das Team stellen. Schieb das runter. Dann ziehe ich das mit in die Partitur. Wir werden das einfach wegziehen, damit es besser aussieht. Und ich werde hier klicken, um einen Knoten für die Umleitung zu erstellen und ihn so zu gestalten. Und mach weiter und verbinde das auch. Okay, jetzt haben wir auch den Punktestand. Und lass uns kompilieren. Und auch hier oben, denk dran, die Partitur hierher zu ziehen. Ich werde es hier unter dem Team um eins nach oben verschieben. Die letzte Sache ist im Spielmodus. Im Spielmodus haben wir jetzt diesen Punkte-Pin. Und wir müssen die Punktzahl für die Punktzahl hinzufügen. Es ist entweder der Anti-Terror-Wert oder der Terrorismus-Punktestand, den wir hier eingeben müssen. Nochmals, wir müssen daraus lernen und uns fragen, ob das mit dem Terrorismus gleichzusetzen ist. Und lassen Sie uns all das wegnehmen , damit wir mehr Platz haben, mit dem wir arbeiten können. Wir fragen, ist das gleichbedeutend mit Terrorismus oder ist es gleichbedeutend mit Terrorismusbekämpfung? Das hängt davon ab Wir wählen „ Ziehen“ und sagen Wählen Sie Integer“ und stecken Sie diesen Bullen ein. Wir haben das schon einmal gemacht, wir wählen A. Wenn das stimmt, lassen Sie uns neue Variablen erstellen. Lassen Sie uns zwei Variablen erstellen, eine mit dem Namen Da, Terrorist, Terror-Score. Machen wir daraus eine Ganzzahl. Lass uns eine neue machen. Ich nenne es Terror-Score. Und das ist auch eine Ganzzahl für diese beiden Werte, wann immer es um die Terrorismusbekämpfung geht. Also wird es eine auswählen, wir werden Punktzahl für die Terrorismusbekämpfung hier oben angeben. Wann immer es der Terrorist ist, nehmen wir den Terror-Score und geben ihn hier ein. Und dann wird es es je nach Umfrage auswählen und diese Punktezahl hier eintragen. Okay. Lass uns das jetzt einfach gemeinsam voranbringen. Was wir jetzt tun müssen, ist diese festzulegen, denn derzeit liegt der Wert für Terroristen und Terrorismusbekämpfung gerade einmal bei Null. Wir tun gerade nicht wirklich etwas. Lassen Sie uns eine neue Funktion erstellen, und ich werde hier oben einfach eine neue Funktion erstellen. Nennen wir das einen Teamscore. Wir können das tatsächlich lebend gebrauchen wenn die Anti-Terroristen hier am Leben sind. Wir können diesen nehmen und sagen, ob er gleich Null ist, und eine Verzweigung machen und weitermachen und ihn verbinden. Wenn die Anzahl der lebenden Anti-Terroristen gleich Null ist, bedeutet das, dass wir einen Punkt für die Terrorismusbekämpfung vergeben müssen . Wir können diesen Wert erneut annehmen, sagen wir plus, plus, um eins erhöhen Wenn dieser Wert jedoch wahr oder falsch ist, bedeutet das, dass der Anti-Terrorist tatsächlich am Leben ist, und er ist nicht gleich Null Das heißt, wir können diesen Wert für die Terrorismusbekämpfung nehmen und plus sagen, weil es wahrscheinlich die Anzahl der noch lebenden Terroristen ist und nicht der Terrorist. Da wir diesen Punkt im Code erreicht haben , sollten wir ihn einfach verbinden. Gehen wir nun zurück zum Van-Diagramm und fügen es nach diesem ein, denn nachdem Sie überprüft haben, denn nachdem Sie überprüft einer von ihnen tatsächlich gleich Null ist, können wir einen von ihnen mit einem Punkt belohnen. Wir können diese Funktion nehmen und sie hier einbinden. Jetzt macht es Sinn , denn jetzt fragen wir , wer ist es, der Null ist? Wenn der lebende Anti-Terrorist gleich Null ist, dann müssen wir dem Terroristen einen Punkt geben. Wenn dies jedoch falsch ist, bedeutet dies, dass der Terrorist tatsächlich gleich Null ist. Also müssen wir dem Anti-Terror-Team einen Punkt geben, und jetzt haben wir einen Punkt vergeben und das Ganze wird hier eingesperrt. Okay, das sollte perfekt funktionieren. Speichern wir jetzt alles und klicken wir auf Play. Und überprüfe, ob das funktioniert. Ich werde die Anzahl der Spieler tatsächlich auf vielleicht drei reduzieren . Ich werde hier Terroristen auswählen , Terroristen in diesem und Terrorismusbekämpfung in diesem hier. Als Anti-Terror-Experte werde ich mich nun der Terrorbasis zuwenden. Ich werde das sogar minimieren. Damit ich hier oben nachschauen und es aufschlüsseln kann. Ich weiß nicht, warum es immer wieder oben auf meinem Bildschirm erscheint, also lass mich jetzt einfach einen von ihnen töten Okay, nichts ist passiert, weil einer noch am Leben ist und ich werde diesen Kerl hier töten Sie können sehen, dass der Terrorist jetzt einen Punkt erhält. Das ist nicht wahr, denn im Moment bin ich tatsächlich ein Anti-Terrorist. Wenn Sie hier unten nachschauen, ist der Punktestand für die Terrorismusbekämpfung falsch eingegeben Der Punktestand für Terroristen ist falsch eingesteckt. Wenn ich zu dieser Prämienpunktzahl zurückgehe und mir das ansehe, ist das die Terrorismusbekämpfung, und wenn sie gleich Null ist, werden wir der Terrorismus-Punktzahl einen Punkt Alles scheint richtig zu sein. Die andere Sache ist , dass die Verbindung unterbrochen wurde , weil wir diesen Pull hier reingeschrieben haben Lassen Sie uns die Verbindung wieder herstellen , weil der Anti-Terrorist einen hat, aber er wählt standardmäßig Terrorist Lassen Sie mich das einfach wieder hierher ziehen, genau wie zuvor, und Sie können einen Routenknoten erstellen Jetzt ist es verbunden. Lassen Sie uns das überprüfen, um sicherzugehen. Hier im Apple-Controller ist dieser ebenfalls angeschlossen. Dieser hier ist unterbrochen , weil wir das wieder hier unten gemacht haben Lass es uns verbinden. Jetzt sollte es funktionieren. Stellen Sie sicher, dass alles angeschlossen ist. Und lassen Sie uns erneut auf Play klicken und erneut Terrorist, Terrorist, Terrorist Counter auswählen . Und ich gehe einfach wieder zum Spawn. Okay, hier habe ich die ersten Terroristen getötet und ich werde zum zweiten Terroristen gehen und diesen Spieler töten Und wenn ich nur den Bildschirm maximiere, damit Sie sehen können , heißt es jetzt, dass die Terrorismusbekämpfung gewonnen hat. Und es fügt allen Spielern einen Punkt hinzu. Außerdem wird der Punkt für den Terroristen hinzugefügt. Es fügt der Terrorismusbekämpfung einen Punkt hinzu. Das funktioniert jetzt richtig. 183. 13.10 Respawn der Spieler: Stimmt das? Was uns jetzt noch fehlt, ist, den Spielern zu antworten, lassen Sie uns das hier unten tun. Was wir hier unten tun können, ist, dass wir es verzögern können , weil wir den Spielern nicht sofort antworten wollen . Wir wollen eigentlich erst nach diesem Antwort-Timer antworten. Dieser Antwort-Timer ist derzeit auf 3 Sekunden eingestellt, sodass der Code um 3 Sekunden verzögert wird. Danach werden wir allen Spielern noch einmal antworten . Lasst uns diesen Spielern bei jedem Loop den Weg weisen, mit diesem Spiel, das wir Respawn nennen werden, den wir in dem Spieler mit dieser Gesundheitsrüstung und diesem Schaden gemacht haben in dem Spieler mit dieser Gesundheitsrüstung und diesem Schaden Denkt daran, wir haben diesen Respawn gemacht, nennen wir ihn. Gehen wir zum Spieler und respawn. Jetzt antworten wir tatsächlich allen Spielern und können mit ihnen kommunizieren Weil dieser über den Server läuft. Es wird hier durchgehen. Durch den Server laufen und all das machen, was wir zuvor gemacht haben, um den Spielern zu antworten. Denkt daran, dass wir auch diese Variablen haben, die Spielerdaten und die Spieler am Leben. Und wir müssen auch diese aktualisieren. Bevor ich zögere, werde ich das einfach vorantreiben. Ich werde diese Spieler lebend und tote Spieler erwischen, und ich werde sie hier löschen. Ich werde die Spieler lebend löschen und ich werde das wegnehmen. Ich werde die Karte auch für die toten Spieler räumen. Beide wurden zurückgesetzt. Dann werden wir den Code verzögern. So wie das hier. Ich werde das hier verbunden nach unten verschieben. Jetzt werden wir den Code verzögern. Wann immer wir ihn verzögert haben, müssen wir die Spieler wieder zu den Spielern am Leben hinzufügen, sonst wird hier niemand mehr am Leben sein. Und es wird hier für die Antwort buchen. Bevor wir den Spielern antworten, möchte ich sie hinzufügen. Denken Sie daran, dass wir im Player gerade dieses Ereignisdiagramm erstellt haben. Wir haben das erst vor Kurzem gemacht, um Spielern eine Live-Map hinzuzufügen Wir müssen diese Karte auf dem Server nennen, die Liste aufteilen und sagen, dass der Server den Spielern eine Live-Map hinzufügt Wir müssen angeben , wer der Spieler ist, es ist nur dieser hier. Dann können wir weitermachen und antworten. Ich werde es einfach runterziehen. Doppelklicken Sie erneut hier, um eine Routennotiz zu erstellen , damit Sie den Unterschied zwischen diesen beiden erkennen können . Los geht's. Jetzt werden wir diese Karten löschen und sicherstellen, dass sie nicht fehlerhaft sind. Dann können wir es um den Antwort-Timer verzögern. Also werden wir ein bisschen warten und dann werden wir den Spielern antworten und sie zu dieser Alive-Map hinzufügen. Nochmals, mach weiter und kompiliere jetzt im Player, was wir zuvor hier gemacht haben, indem diesen Code hier beantworten, wir können ihn einfach löschen. Eigentlich benutzen wir es nicht wirklich, dieses hier, ich werde es einfach löschen, weil ich für diese Print-Zeichenfolge keine Verwendung mehr habe . Das ist das, was wir haben. Lassen Sie uns kompilieren, alles speichern und erneut auf Play klicken. Wählen Sie Terrorist aus. Wählen Sie zum Beispiel Terrorist, Terrorismusbekämpfung aus. Jetzt gehe ich einfach zur Basis. Lass mich diese AK nehmen und ich werde diesen Spieler jetzt erschießen. Jetzt heißt es, der Terrorist hat gewonnen und ich habe Recht. Dann antworten wir alle. Hier bin ich als Terroristen-Spawn mit dem anderen Terroristen hier. Das ist auch der Terrorist. Hier ist der Anti-Terrorist. Antworte hier als Terrorist. Wenn ich jetzt zum Anti-Terroristen gehe und den Anti-Terroristen erschieße, dann sollte es heißen: Der Terrorist hat gewonnen. Wir werden den zweiten Punkt bekommen und wir werden alle wieder antworten. Okay, das funktioniert perfekt und das ist die Terrorismusbekämpfung und jetzt werde ich diesen Kerl hier töten. Jetzt sehen Sie, wie die Terrorismusbekämpfung gewinnt. Ordnung, also alles funktioniert einwandfrei und wir reagieren auch hier draußen im Terroristen-Spawn und im Aterroristpaon, wir vergeben die richtige Anzahl an Punkten oder die Punkte der Runde hier, wann immer wir die Runde 184. 14.01 Impulse für den Waffenabwurf: Okay, im Moment sind wir fast fertig. Und was ich in diesem Abschnitt tun möchte, ist das Spiel mit einigen kleinen Elementen zu verbessern das Spiel mit einigen kleinen Elementen , die einige Anpassungen benötigen. Zum Beispiel gerade jetzt, wenn wir die Waffe fallen lassen, direkt unter uns fallen. Auch weil diese Waffe direkt unter uns herabfällt. Anstatt das zu tun, möchte ich die Waffe vor uns fallen lassen , als würden wir sie vor uns werfen. Gehen wir dazu noch einmal zur Spielerbasis und schauen uns die Logik des Waffenabwurfs hier an . Wir haben die Drop-Weapon-Logik erstellt Wenn ich sie einfach erweitere und sie ebenfalls einfüge, ist das die Drop-Weapon-Logik, die wir erstellt haben. Das ist die Waffe, die benachrichtigt werden soll, wenn wir darauf klicken, sie bringt uns zu dieser Funktion. Fügen wir den Code hier hinzu. Immer wenn wir die Waffe werfen, entfernen wir die Waffe vom Spieler stellen die Kollision so ein, dass es sich nur um Physik für die Waffe handelt, und dann simulieren wir Nachdem wir die Physik simuliert haben, können wir einen Impuls hinzufügen , denn wenn Sie keine Physik haben, können Sie keinen Impuls hinzufügen Wir können ihn nicht vor diesem Schritt hinzufügen. Ls, du wirst eine Fehlermeldung bekommen. Nun, füge es einfach danach hinzu. Im Grunde genommen nehmen wir diese Waffe zum Zeichnen und dann die Waffenvariable , die wir benutzt haben. Es ist derselbe wie dieser. Lassen Sie uns im Grunde genommen davon ausgehen und Impuls sagen. Dann füge diesen Impuls hinzu , der Physik ist. Sie können hier sehen, ob Sie eine Verbindung herstellen. Doppelklicken Sie hier, um einen Umleitungsknoten zu erstellen Was wir jetzt tun können, ist Physik hinzuzufügen. Wenn du einfach etwas schreibst, sagen wir eins oder 5.000 etwas sehr Extremes, können wir diese Geschwindigkeitsänderung nehmen. Dadurch wird dem Schauspieler die Masse entzogen. Wir schauen uns die Masse nicht an, wir ignorieren die Masse, setzen diese Geschwindigkeitsänderung auf wahr Wenn du jetzt etwas wirfst, kannst du sehen, wie es dorthin geflogen ist und es sogar zu mir zurückgekommen Du siehst, dass ich das jetzt werfen kann. Und es kam mir sogar wieder in den Sinn, das ist eine ziemlich coole Mechanik Das ist die Geschwindigkeitsänderung , die wir hier erzeugt haben , um es so zu machen, dass wir tatsächlich gerade sind , wir werfen seitwärts Wir schauen hier hin und wir werfen tatsächlich dorthin , damit es vor uns hinwirft , wohin wir schauen Wir können mit der rechten Maustaste klicken und sagen Get Actor Forward Vector. Denken Sie daran, dass wir das benutzt haben. Wenn Sie zum Van-Diagramm und zur Bewegung zurückkehren , haben wir es hier verwendet. Holen Sie sich den Vorwärtsvektor des Schauspielers, um den Vorwärtsvektor für den Spieler zu erhalten , damit wir uns vorwärts bewegen können. Gehen wir zurück zum Drop-Repoify und nehmen diesen Vorwärtsvektor zum Abrufen des Schauspielers Und lassen Sie uns es jetzt kaputt machen. So kann ich wieder X, Y und Z verwenden . Sie können einfach mit der rechten Maustaste klicken, wenn Sie möchten , und Split Struct-Pin sagen. Das ist dasselbe, ich mache es nur so. Dann mache ich direkt von hier aus und sage Make Vector. Und mache diesen Vektor, du hast auch XY und Z, denn das Einzige, was ich ändern möchte, ist das X. Andy, ich lasse Z so sein, wie es gerade ist. Ich will nicht nach oben werfen. Lassen Sie uns jetzt das xy x modifizieren. Lass uns das nehmen. Jetzt müssen wir Impulse geben. Jetzt ist es Null. Nehmen wir das. Und es ist Null. Es ist eins. Multiplizieren wir das mit 600. Multiplizieren wir das mit, sagen wir auch 600, also so. Und dann können wir sie wieder mit dem x verbinden. Was wir hier gemacht haben, ist einfach das x zu nehmen, es mit 600 zu multiplizieren und den Wert wieder hinein zu setzen. Jetzt haben wir einen Impuls hinzugefügt, aber für den Z-Wert bleiben wir gleich. Okay, lass es uns einfach hier organisieren und das wegziehen. Okay, lass uns kompilieren. Lass uns auf Jetzt abspielen klicken, mal sehen, was passiert, wenn ich einfach etwas nehme und es vor mich werfe. Siehst du, jetzt werfen wir die Waffe tatsächlich vor uns hin. In welche Richtung wir auch schauen, wir werfen die Waffe vor uns hin. Okay, cool. Das ist viel besser, als es uns einfach unter die Füße werfen zu lassen. Das ist ein cooler Mechaniker. Okay, das war es. Lass uns alles retten. Sehr einfach, Reparatur oder Verbesserung. Aber es tut viel für das Spiel. Lass uns mit dem nächsten weitermachen. 185. 14.02 Verbesserung des Waffengewichtes: Also hier bin ich gerade wieder im Spiel. Du kannst sehen, wenn ich etwas werfe, wenn ich diese Waffe werfe, wenn sie auf dem Boden landet, sie abprallt. Und dieser auch. Es fühlt sich an, als wäre die Waffe unrealistisch. Es ist zu leicht. Es sollte nicht so stark auf dem Boden abprallen. Es sollte einfach, vielleicht, viel schneller stillstehen. Als ob das Gewicht für diese Waffe zu gering und sie zu leicht ist. Es ist auch ein bisschen unrealistisch. Die zweite Sache ist, dass ich die Kapsel sehen kann. Ich glaube, hier ist ein verstecktes Spiel. Ich möchte das auch in das versteckte Spiel Weapon Base Capsule aufnehmen . Ich glaube also nicht, dass die Waffe leicht ist. Was Sie tun können, ist etwas Neues, mit dem wir noch nie gearbeitet haben. Wenn du die Waffe hier öffnest, Waffenbasis. In der Waffenbasis kannst du auf die Waffe klicken und dann nach unten zur Kollision scrollen. Sie haben etwas, das man Physikmaterial nennt . Mit dem Physikmaterial können Sie auch die Reibungseinstellungen und die Sprungeigenschaften anpassen und die Sprungeigenschaften Was wir eigentlich tun wollen, ist, es einfach in diesem Ordner zu erstellen , weil wir dafür keinen Ordner haben Wir könnten einen neuen Ordner erstellen, aber lassen Sie uns das einfach innerhalb der Waffenbasis machen. Wir können schreiben, auf Gehe zu Physik klicken und dann diesen Ordner mit dem Namen Physical Material and Created hinzufügen . Fahren Sie fort und wählen Sie diesen aus. Ich nenne es einfach PM für physisches Material, wir können es einfach Waffenbasis oder so etwas nennen . Gib ihm einfach einen Namen. Öffne es jetzt, du kannst hier sehen , dass wir die Reibung und die Haftreibung einstellen können. Wir können auch die Restitution anpassen. Und Sie können sehen, dass die Restitution auch als Sprungkraft der Oberfläche bezeichnet wird. Wenn ich das einfach auf Null setze und speichere, und ich gehe zur Waffenbasis statt zur Wenn du auf die Waffe klickst und bei der Kollision wählst du dieses neue Physikmaterial aus. Wir nannten es Pm. Diese eine Waffenbasis. Du kompilierst und klickst auf Play. Jetzt kannst du sehen, ob ich diese Waffe auf den Boden fallen gelassen habe Sie springt viel weniger als zuvor Die andere Sache, die ich tun möchte , ist, anstatt das auf Null zu setzen, ich werde es auf vielleicht so etwas wie 0,15 setzen . Anfänglich waren es 0,3, vielleicht die Hälfte davon Was die Reibung angeht, setze ich sie einfach auf 25,25. Je höher sie ist, desto höher ist die Reibung und sie wird auch nicht herumprallen und sich auf dem Boden bewegen Okay, lassen Sie uns weitermachen und auf Play klicken und sehen, was passiert Wenn ich diese AK jetzt fallen lasse, passiert das, okay. Es fühlt sich an, als ob diese Waffe viel mehr Gewicht hat . Es fühlt sich viel besser an als zuvor. Wenn Sie möchten, können Sie diese Reibung, die Haftreibung, sogar erhöhen , Sie können damit herumspielen. Und ich denke, das ist vorerst in Ordnung. Lassen Sie uns es schließen und mit dem nächsten fortfahren. 186. 14.03 Entfernen von Reload-SFX beim Abwurf von Waffen: Ordnung, also eine Sache hier im Moment, es macht einen großen Unterschied, wenn wir versuchen, auf etwas zu schießen und dann nachladen und die Waffe fallen lassen, zum Beispiel Sie können sehen, dass ich den Nachlade-Sound höre Selbst wenn ich ihn ausrüste und fallen lasse, kann ich den Nachladesound einfach so hören Ich kann es hören, wenn ich die Waffe sogar auf den Boden fallen lasse . Wir müssen das reparieren. Wenn wir zur Spielerbasis gehen und uns ansehen, was passiert , wenn ich eine Waffe ausrüste. Es spielt ein Geräusch ab. Wenn du zur Beute gehst, Waffe ausrüsten und fallen lassen, dann gehst du zu deiner Ausrüstungslogik Hier spielen wir diese Animationsmontage ab. Denken Sie daran, dass sich die Soundeffekte tatsächlich in den Animationsmontagen befinden Wenn ich hier zu den Assets-Animationen gehe wir nach ihnen suchen, können wir das Nachladegewehr nehmen Denken Sie daran, dass die Soundeffekte hier drin sind. Wir können den Soundeffekt hier draußen nicht wirklich stoppen , weil er sich innerhalb der Animationsmontage befindet , wenn wir eine Waffe fallen lassen. Ich möchte eigentlich verhindern, dass diese Animationsmontage abgespielt wird, weil ich nicht all diese Soundeffekte abspielen möchte . Wenn ich zur Spielerbasis gehe. Gehen wir nun zur Drop-Weapon-Logik. Hier lassen wir die Waffe fallen und suchen im Inventar nach einer Waffe. Wann immer wir eine Waffe im Inventar finden, werden wir sie hier ablegen. Ich möchte hier eigentlich den Code hinzufügen , der Sinn macht, wenn wir tatsächlich eine Waffe im Inventar gefunden haben und wir bereit sind, die Waffe fallen zu lassen. Lassen Sie mich das alles für eine Weile hinter mir lassen und lassen Sie mich das hier organisieren. Jetzt wollen wir einen Multicast für diese Drop Weapon machen einen Multicast für diese Drop Weapon Wir haben noch keinen, also kann ich einfach einen erstellen, indem ich diesen Teil einfach nach unten bewege und mit der rechten Maustaste klicken kann , um ein benutzerdefiniertes Event-Multicast Weil ich es für alle beenden und sagen möchte diesem Multicast die Waffe fallen lassen Ich möchte es zuerst einfach auf Multicast und Reliable einstellen Dann nehmen wir dieses Mesh, um die Animationsmontage zu finden , die gerade abgespielt wird Wir müssen zuerst die Animationsklasse finden. Wenn Sie nach einer, ich glaube, Animationsinstanz suchen , suchen Sie sich eine Instanz. Sie müssen also zuerst die Animationsinstanz abrufen. Dann kannst du Montage sagen. Dann können Sie sehen, dass Sie viele Funktionen haben , die Sie mit der Montage verwenden können. Aber was wir tun wollen, ist die Montage zu beenden. Montage, Stopp und los geht's und verbunden. Für diesen müssen wir ihn hier oben wieder anschließen. Also können wir das jetzt nicht machen. Für das Ziel ist es die Instanz, wir können es einfach Instanz für die Montage nennen. Wir können es einfach anschließen und ich nenne es zum Beispiel Equip, Equip Montage. Waffenmontage ausrüsten. Wir können es hier sogar Waffe nennen, also macht es Sinn. Okay, jetzt haben wir diesen, wir können ihn hier aufrufen. Nennen wir MC Drop Weapon. Lass es uns einfach hierher bringen. Jetzt können wir uns vom Server aus verbinden. Wir können die Animationsinstanz verbinden. Wir können die Montage auch bekommen. Wenn wir hier unterbrechen und Montage sagen, schauen wir uns das mal an. Wir können sagen, aktuelle aktive Montage abrufen. Und wir nehmen diese Montage, die gerade abgespielt wird, und können sie hier einfügen. Lassen Sie mich nur Routennotizen für diesen machen. Okay, jetzt, wo das angeschlossen ist, lassen Sie uns alles speichern. Jetzt sofort. Es gibt dir eine Ära, wenn du hier etwas sagst. Lass uns einfach auf Datei klicken und alle Notizen aktualisieren. Ich glaube, etwas stimmt nicht. Wir müssen nur alle Notizen aktualisieren und das trennen und es hier einstecken, kompilieren macht manchmal so keinen Sinn, ich habe keine Ahnung warum, aber stellen Sie einfach sicher alle Notizen aktualisieren und wir können das tun. Okay, lass uns jetzt spielen. Weil es jetzt passieren sollte. Wenn ich spiele, nehme ich zum Beispiel eine Waffe in die Hand. Lass uns jetzt die Waffe wechseln und fallen lassen. Jetzt kannst du sehen, dass die Animation zum Nachladen oder Ausrüsten stoppt Das ist in Ordnung. Was ist, wenn ich jetzt neu lade, wenn ich neu lade und fallen lasse Das ist jetzt behoben. Okay, das ist jetzt behoben. Es macht keinen Sinn, den Sound abzuspielen. Wenn wir die Waffe jetzt fallen lassen, werden wir später einige Dinge hinzufügen, die das Problem beheben könnten. Ich möchte, dass Sie, bevor wir diese Logik anwenden, aktuelle aktive Montage aus diesem Set nehmen und sicherstellen, dass sie gültig ist. Bevor wir diese Frage stellen, ist das gültig? Lassen Sie uns das alles einfach wegziehen. Lassen Sie mich das auch einfach zurückziehen und zuerst fragen, ob das gültig ist? Wenn es gültig ist, fahren Sie fort und beenden Sie Theta oder beenden Sie diese Montage hier. Und wenn es nicht gültig ist, Sie einfach weiter und tun Sie, was Sie zuvor getan haben Lassen Sie mich einfach ein paar Umleitungsnotizen für diesen Fall erstellen und das Ganze näher bringen, einfach so Und jetzt ist das fertig. Wir werden diese MC-Drop-Waffe ignorieren. Wenn das nicht gültig ist, haben wir hier nichts. Lass uns kompilieren, lass uns alles speichern. Und jetzt ist das fertig. Wir können mit dem nächsten weitermachen. 187. 14.04 Hinzufügen von Team-Ankündigung Win SFX: Im Moment möchte ich also jedes Mal, wenn wir hier spielen und wenn wir jemanden töten und die Runde gewinnen, wenn es heißt, dass der Kampf gegen den Terrorismus gewonnen oder der Terrorismus gewonnen hat, einen Soundeffekt abspielen Es wäre cooler als jetzt, wo wir nichts haben. Ich möchte, dass du auf den Marktplatz gehst und hier zu den kostenlosen Inhalten von Epic Games gehst. Ich glaube, es war auf Seite sieben, da ist etwas namens Peagon Mail drauf Du kannst auch einfach danach suchen , wenn du willst. Dieser Perregon Ono, du kannst ihn nehmen und dem Projekt hinzufügen Ich werde sagen, zeige alle Projekte, weil es momentan nicht mit N Engine 5.2 kompatibel ist. Ich werde alle Projekte zeigen Wählen Sie das Cada Strike-Projekt und wählen Sie hier die neueste Version Fahren Sie fort und klicken Sie auf zwei Projekte. Lassen Sie mich das einfach minimieren oder einfach warten, bis es fertig ist. Sobald es fertig ist, lassen Sie uns das minimieren. Gehen wir zu unserem eigenen Projekt über. Ich gehe einfach hier runter. Und hier sind sie, die Paragon Mail Anons. Lassen Sie uns das einfach zum Marketplace-Ordner hinzufügen. Wir bleiben genauso organisiert wie zuvor. Jetzt können wir den Marketplace-Ordner öffnen und in diese Paragon-Mail gehen Sounds Lass uns zum Sound gehen. Jetzt haben wir den Sound dafür, wir können einfach zuerst etwas Cooles machen. Bevor ich das mache, kann ich hier eigentlich einfach alles auswählen. Klicken Sie mit der rechten Maustaste auf Asset-Aktionen und bearbeiten Sie sie per Massenbearbeitung über die Eigenschaftsmatrix. Da ich die Lautstärke für alle reduzieren möchte , damit es in diesem Kurs nicht zu laut wird, reduziere ich es einfach auf einen Lautstärkemultiplikator 20.1. Schließe ihn und speichere alles, was darin enthalten Im Moment benötigen wir nur zwei Sounds. Wir brauchen den Defeat One. Wir haben dieses Phänomen, das als Niederlage bezeichnet wird. Du bist besiegt. In diesem Moment verlierst du. Und wir haben auch etwas, das Sieg genannt wird. Ich glaube, es ist dieser, du hast gesiegt. Ich möchte diese beiden spielen. Lass uns das machen. Gehen wir zu den Bauplänen Und das Beste ist hier im Modus, denn im Spielmodus haben wir das gespielt Denkt daran, dass wir das gerade gemacht haben. Und es wird die Ankündigung des Teamsiegs aktualisieren. Doppelklicken wir darauf und gehen wir zum Player-Controller. Jetzt läuft dieser Client im Player-Controller sehend. Wir wollen den Sound-Client lokal abspielen , denn wenn du verlierst, wird er einen Sound abspielen Immer wenn du gewinnst, wird ein anderer Sound abgespielt. Wir wollen nicht für alle den gleichen Sound spielen. Das haben Sie mit einem Multicast gemacht. Sie haben über einen Multicast für alle den gleichen Sound abgespielt über einen Multicast für alle den Aber dafür wollen wir einen Win-Soundeffekt abspielen, wenn wir gewinnen, und wir wollen Soundeffekt für den Spieler, der verloren hat, verlieren Es ist kundenseitig. Dafür können wir es tatsächlich hier tun, weil wir wissen, wer gewonnen hat. Hier kennen wir das Team, das das Team gewonnen hat. Was wir einfach machen wollen, ist Sound abspielen. Anstatt einen Sound an einem Ort abzuspielen, lassen Sie uns einen Sound zwei D abspielen, nur für den Spieler, sich diesen Sound gerade anhört. Welchen Sound spielen wir? Lassen Sie uns das Bild wegziehen und „Auswählen“ sagen und dann so einstellen, dass Sie, wenn Sie verlieren, ein Geräusch hören. Wenn du gewinnst, hörst du etwas anderes. Jetzt können wir das tatsächlich nutzen, wir können daraus ziehen und Gleichheit so sagen. Denken Sie daran, die Verbindung wieder herzustellen. Immer wenn der Saft drin verkauft wird. Das wird nerven. Verbinde es wieder Jetzt wollen wir dieses Siegerteam vergleichen. Entspricht dieses Siegerteam dem Team, in dem ich gerade bin? Jetzt vergleichen wir dieses Siegerteam mit dem Team, in dem ich gerade bin. Wenn es dasselbe ist, fahren Sie fort und verbinden Sie es jetzt einfach mit der Auswahl. Wir vergleichen das Gewinnerteam mit dem Team, in dem ich gerade bin. Wenn diese gleich sind, wenn ich das getan habe, wir weiter und spielen das. Ton. Das Gewinnerteam ist mein Team. Ich möchte den Sieg spielen. Ton. Und ich glaube, es ist dieser eine Kongress. Dieser. Vielleicht bist du Victoria. Ja. Also hier will ich den Sieg spielen. Ton. Weil das Gewinnerteam tatsächlich das Team ist, in dem ich gerade bin. Wenn es jedoch nicht der Fall ist, möchte ich die Niederlage des Teams gegen die Niederlage spielen. Sound Und es ist dieser. Okay, jetzt spielen wir den richtigen Sound. Mach weiter und kompiliere. Und das sollte es sein. Lass uns weitermachen und spielen. Und ich werde es tatsächlich auf zwei Spieler setzen. Jetzt werde ich spielen, und ich werde diesen im Voraus minimieren. Eigentlich kann ich das einfach hier machen. Vielleicht so und so. Und machen wir weiter und wählen Terrorist, Terrorismusbekämpfung. Als Anti-Terrorist gehe ich da rüber, lass uns den Terroristen erschießen. Du bist siegreich. Es heißt, du bist siegreich. Immer wenn du gewinnst, erschieße ich jetzt den Terroristen. Und wann immer ich den Terroristen erschieße und sterbe, werde ich schnell zum Terroristenfenster wechseln. So kann ich hören, ob der Terrorist sagt, besiegt zu sein. Sie können also hören, dass es hier auf der Seite der Terroristen besiegt heißt . Immer wenn ich schnell darauf umsteige, funktioniert es jetzt. Mal, wenn du verlierst, heißt es besiegt und der gewinnende Spieler gewinnt den Sieg. Lass uns zum nächsten übergehen. 188. 14.05 Hinzufügen eines feindlichen Treffers: Im Moment ist es etwas schwierig zu wissen, ob du den Spieler aus großer Entfernung getroffen hast. Wenn ich auf diesen Spieler schieße, kann ich den kleinen Effekt sehen. Aber wenn es viele Spieler gibt und du herumschießt, ist es etwas schwierig zu wissen, ob du den Spieler getroffen hast. Wir brauchen einen Indikator, um zu wissen, ob wir den Spieler tatsächlich getroffen haben oder ob wir hinter dem Spieler getroffen haben. Lassen Sie uns weitermachen und das hinzufügen. Lassen Sie uns das schließen. Und ich möchte , dass du hier die Materialien für die Sache eröffnest . Ich möchte, dass du im UI-Ordner zu den Icons gehst, und ich habe dieses für dich hinzugefügt, das Icon Spark. Gehen wir zum UI-Ordner und zu Ihren Icons und lassen Sie uns das in den Ordner übernehmen. Öffnen Sie es, gehen Sie zur Texturgruppe, ändern Sie es in UI und ändern Sie die Komprimierungseinstellungen auf die Benutzeroberfläche. Lass es uns schließen. Lassen Sie uns jetzt das Kreuz öffnen, dieses, das Widget, den Bauplan, den wir hier drin gemacht haben Lass uns dieses Bild hinzufügen. Ich suche einfach nach einem Bild, das dem Canvas-Bereich hinzugefügt wurde , und klicke jetzt darauf. Stellen Sie es in die Mitte, genau wie die Crossa. Lege den Ankerpunkt in die Mitte. Und die Ausrichtung sollte 0,50 — 0,5 sein, also in der Mitte Und setzen Sie die Position auf 0,0 und klicken Sie dann auch auf Inhalt der zweiten Größe Und jetzt ist es völlig korrekt. Sie können auf das andere Bild klicken, das Kreuz hier, um den Unterschied zu sehen. Wenn Sie es übersichtlicher gestalten möchten, können Sie dieses eine Bild nennen, Sie können auf das andere klicken. Ich werde es Image Spark nennen. Mach weiter und kompiliere auf dem Image Spark. Ich werde das Bild in dieses Funkensymbol ändern, das wir gerade importiert haben. Und ich werde die Größe auf etwa 70 mal 70 erhöhen, glaube ich. Der Crosier. 60 mal 60. Also werde ich ihn einfach etwas größer machen und ihn hinter den Stab stellen Ich werde es nicht vor das Kreuz stellen. So sieht es aus, wenn wir schießen. Wir werden dafür sorgen, dass die Markierungen erscheinen. Lass uns auf den Spark klicken. Standardmäßig ist es versteckt. Machen Sie es standardmäßig ausgeblendet. Gehen wir hier hin, stellen Sie es als variabel ein, stellen Sie sicher, dass wir es bearbeiten können. Gehen wir jetzt zur Grafik. Ich werde das alles löschen. Das ist sehr, sehr einfach. Lassen Sie uns einfach ein benutzerdefiniertes Ereignis erstellen und es Show nennen. Es ist so, ich mag das. Nehmen wir jetzt diesen Bildfunken. Stellen wir die Sichtbarkeit ein. Stellen Sie die Sichtbarkeit so ein , dass sie nicht testbar ist, sodass sie sichtbar ist und die Maus nicht damit interagieren kann Jetzt, nach einer sehr kleinen Verzögerung nach 0,1 Sekunden, möchte ich es verschwinden lassen Es wird für 0,1 Sekunden auf dem Bildschirm erscheinen und dann wird es verschwinden. Es wird uns nur anzeigen , dass wir den Feind getroffen haben. Das ist das Einzige, was wir tun wollen. Lass uns das schließen. Lassen Sie uns jetzt den Player öffnen und dorthin gehen, wo wir andere Spieler des Feindes treffen. Aber lass uns zum Schießen gehen und die Waffe hier nachladen. Immer wenn wir auf die Linie schießen und wir den Spieler hier tatsächlich treffen Wir erinnern uns, dass wir überprüfen, ob es nicht der Teamkollege ist , auf den wir schießen Wenn es nicht der Teamkollege ist, dann erschießen wir jemanden An dieser Stelle wollen wir diese Kundenseite abspielen, weil ich sie nur dem Spieler zeigen möchte , der tatsächlich schießt Dieser heißt Shoot Weapon. Ich werde tatsächlich einen Kunden dazu bringen, sich zu setzen. Ich möchte es nur hier hinzufügen, Rechtsklick. Erstelle eine neue benutzerdefinierte Event-CL-Schießwaffe, blinde Seite. Führen Sie es zuverlässig auf dem eigenen Client aus. Ich gehe einfach hier runter und nehme die Player-Controller-Referenz, die wir gemacht haben. Mal sehen, ob ich es finden kann. Dieser Controller für einen Spieler. Holen wir uns den Player-Controller, holen wir uns den B-Querverweis , den wir zuvor gemacht haben, damit wir den Widget-Blueprint bekommen Rufen Sie nun vom Widgit-Blueprint aus den Plan auf, den Sie gerade erstellt Titel Zeige Feind I voraus und Und das ist das Einzige, was es tun wird. Ich möchte auch einen Soundeffekt abspielen , weil wir die Benutzeroberfläche anzeigen können, aber ich möchte ihn auch mit einem Soundeffekt anzeigen. Abspielen. Denken Sie daran, dass wir in diesem Spiel einen namens Bullet Impact Player haben. Ich werde tatsächlich diesen einen Soundeffekt abspielen. Was wir tun wollen, ist, dass wir zuerst die Waffe brauchen. Die Waffenreferenz. Ich schreibe einfach Weapon Base und wähle die waffenbasierte Klassenreferenz aus. Ich werde es wie zuvor Waffe nennen, ich will nur den Soundeffekt. Ich werde das alles kopieren . Mach weiter und verbinde es. Lassen Sie uns die nicht verbundenen Pins verstecken. Und ich werde nur den Soundeffekt des Bullet Impact Players zeigen Soundeffekt des Bullet Impact Players Ich möchte einen Soundeffekt nur für den Spieler abspielen , der wieder schießt. Sound Two D abspielen, nur für den Spieler, der schießt. Und mach weiter und spiele diesen Soundeffekt ab. Jetzt sollte das funktionieren, wenn ich das einfach nach innen bewege und wir den Sound hier oben abspielen müssen Wenn du einfach von hier wegziehst und CL sagst, schieß mit der Waffe. Also können wir dieses Event ausrufen, wann immer wir drehen. Sie können sehen, dass diese Eingabe etwas anderes heißt als diese. Auch hier muss ich auf Datei klicken und alle Knoten aktualisieren, es wird korrekt angezeigt. Ich werde das ein bisschen wegbewegen, damit ich das auch so wegbewegen kann. Und ich habe mehr Speicherplatz, um das hier einzuloggen. Okay, alles sieht gut aus. Das runter nehmen, einstecken. Und wir müssen auch die Waffe einstecken. Ich glaube, wir haben die Waffenreferenz. Ja, es ist dieser. Es geht bis hierher. Den ganzen Weg hier. Und ich kann es hier doppelklicken. Jetzt kann ich tatsächlich einen anschließen, ich glaube, es ist dieser. Doppelklicken Sie darauf und schließen Sie es an. Lass uns kompilieren und jetzt sollte es funktionieren. Bevor ich es spiele, werde ich auch die Lautstärke erhöhen, damit ich es deutlich hören kann, um es schnell zu finden, gehe zur Datentabelle, öffne die Waffeninformationen und schon werde ich auch die Lautstärke erhöhen, damit ich es deutlich hören kann, um es schnell zu finden, gehe zur Datentabelle, öffne die Waffeninformationen ist es so. Der Kugeleinschlag, klarer Soundeffekt. Klicken Sie hier auf das kleine Symbol. Es bringt mich automatisch dorthin. So klingt es gerade. Ich werde den Ton tatsächlich erhöhen, vielleicht um 0,5 , vielleicht ist das zu laut. 0.4 Jetzt kann ich es deutlich hören, also lass uns alles speichern. Lass uns jetzt das Spiel spielen und sehen, wie es sich anhört. Als Server werde ich nur einen Anti-Terror-Gegner hervorbringen Und jetzt als Terrorist, lasst uns das als Anti-Terrorist hören Lass mich einfach vor alles hinstellen , damit ich den Spieler sehen kann. Jetzt, als ich auf den Spieler geschossen habe, kannst du diesen Soundeffekt sehen. Und Sie können auch diese Markierung sehen, die auf meinem Bildschirm erscheint , wenn ich auf den Spieler schieße. Sie gibt ihm einen Marker, wenn sich eine Kugel ausgebreitet hat, als würde sie direkt hinter ihm einschlagen. Denken Sie daran, dass wir bereits zuvor eine Kugelstreuung hinzugefügt haben, sodass sie nicht jedes Mal zu 100% trifft. Wann immer es den Spieler trifft, wer ist Victoria? Wann immer es trifft, zeigt der Spieler tatsächlich diese Markierung. Wenn ich einfach vor den Spieler gehe, noch einmal so, und auf den Spieler schieße, wird mir die Anzeige angezeigt , wann immer ich den Spieler treffe, wann immer ich ihn nicht treffe, wird mir nichts angezeigt. Ich kann es auch über den Soundeffekt hören. Sie können den Unterschied auch hier hören. Ein Sieger, das ist viel besser hinzuzufügen als nichts zu haben, denn dann weiß der Spieler tatsächlich, ob er den Spieler getroffen hat oder nicht. Das war es. Speichern wir alles und fahren wir mit dem nächsten fort. 189. 14.06 Hinzufügen von Ambiente-SFX: Im Moment ist es in der Umgebung etwas zu still Du kannst hören. Es ist in Ordnung. Wir haben die Soundeffekte beim Gehen, wir haben die Dreharbeiten und alles, und es wird wirklich nett klingen. Stellen Sie sich vor, Sie haben hier fünf gegen fünf, also fünf Spieler, und alle schießen und laden und so, das klingt nett. Es gibt jedoch keine Soundeffekte für die Umwelt. Wir benötigen zum Beispiel einen Umgebungsgeräuscheffekt wenn Sie Ihre Projekteinstellungen erneut öffnen. Gehen wir hier zurück zum Audio. Ich habe das für dich aufgenommen. Das Vogelambiente. Sie können jedes Ambiente hinzufügen, das Sie möchten, aber für dieses verwenden wir dieses. Kehren wir hier zum Audio zurück, zu den Soundeffekten. Wenn du das hier hineinziehst und ich mit der rechten Maustaste klicke, mache ich daraus ein. Also nenne ich es einfach, also Ambiente, mach weiter und öffne es. Lass mich einfach die Lautstärke reduzieren. Etwas sehr Niedriges, wie 0,01, ich habe es versucht und ich denke, 0,03 ist gut. Lass es mich einfach speichern Und ich werde einfach klicken und diese Atmosphäre in das Level ziehen. Es wird einfach sofort für jeden abgespielt, der eine Verbindung herstellt. Wenn ich jetzt auf Play klicke, kannst du den Vogel-Soundeffekt hören. Wenn ich jetzt einfach Terris auswähle, ist das wirklich nett, weil ich einige Hintergrundgeräusche habe Sie können es sogar weiter reduzieren, wenn Sie möchten. Jetzt klingt alles großartig. Ich kann herumlaufen, ich kann schießen und wir können spielen. Aber ich habe hier auch einige Soundeffekte für die Umwelt. Es ist nicht still. Es fühlt sich gut an. Es fühlt sich gut an. Es ist keine unangenehme Stille, die man in dem Level hat . Das ist nett Okay. Es ist also eine großartige Ergänzung. Sehr schnelle Ergänzung, aber dadurch fühlt sich die gesamte Umgebung lebendiger an. Okay, das war es also. Lass uns nochmal alles speichern. Sie können jedes Ambiente hinzufügen, das Sie für Ihr Level wünschen, und lassen Sie uns mit dem nächsten fortfahren. 190. 14.07 Entfernen von Mag beim Nachladen: Alles klar, das Letzte, was uns jetzt noch fehlt , ist, ob du zum Beispiel Terrasse auswählst und wir eine Waffe nehmen Wenn ich jetzt schieße und nachlade, siehst du, dass das Magazin nicht entfernt wird Es sieht ein bisschen komisch aus, weil wir nachladen und das Magazin nicht entfernt wird Also müssen wir etwas dagegen tun. Was wir tun können, ist, die Animationsmontage zu öffnen. Wenn Sie zu Ihren Animationen für den Player zurückkehren und nach Ihren Animationsmontagen suchen , die Sie zuvor erstellt haben Gehen wir zum Gewehr. Lasst uns mit diesem beginnen. Nun, was Sie hier tun können, Sie können Notify hinzufügen. Lass uns damit anfangen. Ich möchte jedes Mal eine Benachrichtigung hinzufügen, wenn ich neu lade, wann immer ich dieses Magazin hier herausnehme Lassen Sie uns versuchen, dieses Magazin hinzuzufügen, das wir entfernen. Ich kann nicht mit der rechten Maustaste darauf klicken, also klicke ich einfach mit der rechten Maustaste hier raus. Sie können aber auch einen weiteren Benachrichtigungs-Track hinzufügen, sodass Sie ihn nicht zusätzlich zu den Soundeffekten hinzufügen, einen weiteren Titel hinzufügen können. Und ich nenne es einfach vielleicht Neuladen, so etwas Was auch immer du hier bevorzugst. Ich werde Click und dann Add schreiben. Eine Montage benachrichtigen und hinzufügen. Benachrichtige diesen. Wir können den Code verwenden, um für diesen zu tun, was wir wollen. Ich nenne es einfach Lippenbekenntnis. Fügen wir einen für Clip Out hinzu, oder das ist Clip Out. Eigentlich ist das kein Clip In. Nennen wir es Lip Out. Lassen Sie uns einen für den Clip In hinzufügen. Vielleicht hier, klicken wir mit der rechten Maustaste auf Montage Notify, klicken darauf und nennen es Lip in. Okay, jetzt haben wir diese Montagen oder Benachrichtigungen. Lassen Sie uns das minimieren. Lass uns zu den Bauplänen gehen. Entferne diese Suche Lassen Sie uns die Player-Layer-Basis öffnen. Und gehen wir zu dem Code, in den wir gerade neu laden. Fahren Sie fort und klicken Sie hier auf diesen. Das ist der Reloading-Code. Denkt daran, dass wir ihn auskommentiert haben: Waffe neu laden. Das sind all die Dinge, die wir bei der Berechnung von Kugeln gemacht haben Hier im Multicast spielen wir die Montage ab, die Reload-Montage Was wir jetzt tun können, ist, diese Version namens unnotifiedgin zu verwenden diese Version namens unnotifiedgin zu Dieses unnotifiedgin wird immer dann abgespielt, wenn es innerhalb einer Animationsmontage eine Benachrichtigung erreicht . Immer wenn es diese Benachrichtigung hier erreicht, wird dieser Code ausgelöst Jetzt können Sie mehrere Benachrichtigungen für verschiedene Dinge im selben Bereich haben , und aus diesem Grund gibt es das hier. Wir können das nehmen und sagen, ob das zum Beispiel dem entspricht, dass Sie es von Anfang an Clip In oder Clip Out genannt Anfang an Clip In oder Clip Out Und lasst uns einen Zweig bauen, lasst uns von hier aus zuschlagen. Wenn das gleichbedeutend mit Ausschneiden ist, dann können wir etwas damit machen. Was wir tun wollen, ist, lassen Sie mich das hier aufgreifen. Was wir tun wollen, ist den Knochen vor dem Feuer zu verstecken. Wenn ich zurückgehe und die Waffe auf dem Markt finde, öffne ich die FPS-Waffe, bündele die Waffen, die Maschen und gehe zurück zu meiner AK 47. Lass mich jetzt einfach das Skelett hier öffnen, genau wie zuvor, wo wir den Kopf des Spielers verstecken Im Idealfall, wenn Sie ein ernsthaftes Projekt haben, ist es vielleicht besser, einfach eine Animation wie eine Reload-Animation zu erstellen , bei der der Mac rein und raus geht Das kannst du tatsächlich in der anderen Packung sehen. Wir haben das Dokument mit den Militärwaffen heruntergeladen. Wenn ich zu einer der Waffen hier zurückkehre, gibt es hier tatsächlich Animationen. Frau, sie haben zum Beispiel eine Animation zum Nachladen dieses Gewehrs Und Sie können hier sehen, dass sie diese Animation niedrig haben, also werde ich sie einfach schnell schließen Aber sie haben diese Reload-Animation , die du verwenden kannst, und sie wird idealer sein, aber in diesem Fall haben wir keine Animationen und wir können sie trotzdem umsetzen Wir wollen den Knochen verstecken, genau wie den Spieler, bei dem wir den Kopf getroffen haben In diesem Fall werden wir das Waffenmagazin verstecken. Okay, es heißt Gun Mag. , wir brauchen zuerst die Waffenreferenz. Das ist die ausgerüstete Waffe. Nehmen wir die ausgerüstete Waffe , die wir gerade haben. Lass uns von hier wegziehen. Wir brauchen die Waffenvariablen. Wir brauchen das Skelettnetz hier drinnen. Nochmals, schreib einfach Bone. Wenn du nicht weißt, wie es heißt, schreibe Knochen und dann kannst du es durchschauen und du hast dieses eine, Knochen für Namen verstecken, genau wie zuvor. Wenn das wahr ist, mach weiter und verstecke diesen Knochen. Also, wie auch immer dieser Knochen heißt , wenn du willst, kannst du ihn hier statisch schreiben Aber das Beste ist, es einfach zu deiner Struktur hinzuzufügen Wenn ich nur zu zwei Strukturen zurückkehre, Waffeninformationen. Füge einfach eine neue Variable und ich nenne sie einfach Namen. Sagen wir hier Name, Name, Variable, speichern und alles speichern. Mach weiter und öffne deine Datentabelle. Ich werde nur Platz zwischen dem hier und dem Öffnen meiner Datentabelle schaffen . Gehen wir hier nach rechts. Ich nenne es Mag Name. Dann können wir ihm den Namen für meine AK geben. Es heißt Mag. Das Gleiche gilt für meine Informationen. Ich glaube, das ist meine Pistole. Für meine Pistole. Ich bin mir nicht sicher, ob wir etwas tun müssen, denn für die Pistole glaube ich nicht, dass du Mac sehen kannst Wenn ich einfach zu Waffen, dunklen Waffen gehe und meine Pistole öffne, ist sie da, aber ich bin mir nicht sicher, ob du das Magazin vollständig sehen kannst Also werde ich diesen einfach für diesen weglassen. Du kannst zum Beispiel einfach keine schreiben, und du brauchst hier nichts. Auch hier ist es besser, einfach Animationen zu machen , wie sie es hier für diese Waffen getan haben. Und es ist viel sauberer. Es sieht viel besser aus. Lass uns jetzt alles speichern. Gehen wir zurück und laden wir das als CSV-Datei herunter. Lassen Sie mich einfach weitermachen und zu den Datentabellen gehen. Und lassen Sie mich das importieren. Jetzt habe ich die CSV-Datei importiert und sie ist aktualisiert. Und lass mich einfach alles speichern Jetzt kann ich zu meiner Spielerbasis zurückkehren. Und was wir hier jetzt tun können, ist einfach diese Referenz zu verwenden. Wir können hier einfach eine Variable namens Name hinzufügen. Und wir können es hier in einen Namen ändern. Wir können dorthin zurückkehren, wo auch immer wir den Multicast spielen. Ich werde einfach darauf klicken und nicht verbundene Pins ausblenden , damit wir das alles nicht sehen müssen Lass mich sehen, wo wir den Multicast spielen. Lassen Sie mich diesen auch verstecken. Der Multicast wird hier im Server-Event abgespielt. Wir können einfach hier klicken, auf des Magazins klicken und dann den Namen des Magazins verbinden Okay, jetzt lass uns hier runter gehen. Was wir jetzt tun können, ist einfach diesen Magazinnamen zu nehmen und ihn mit Bone Name zu verbinden. Lassen Sie uns einfach hier doppelklicken und ein paar hintere Rocknoten machen, damit es auch sauber bleibt. Los geht's. Wann immer es Clip Out ist, werden wir den Namen des Magazins verstecken, wann immer es Clip In ist. Also können wir das hier mitnehmen. Also, für diesen Fall haben wir nur zwei Benachrichtigungen. Wir haben nur dies und das. Technisch gesehen können wir den Code einfach von hier aus eingeben. Wenn Sie jedoch mehrere Benachrichtigungen haben, denken Sie daran, dass Sie erneut ziehen, gleich sagen und sagen können, wie es heißt, dann einen neuen Zweig erstellen, und dann können Sie ihn verbinden und sagen, ob er wahr ist, können Sie das tun In unserem Fall haben wir jedoch nur zwei Benachrichtigungen Wie dem auch sei, ich werde es einfach von hier wegziehen. Ich werde das einfach wegbewegen. Wenn es falsch ist, nehmen wir diese Waffe wieder. Und wenn Sie einfach mit der Maus nach rechts ziehen und sehen dass es etwas gibt, das sich „Knochen einblenden“ nennt, lassen Sie uns dieses verwenden Lassen Sie uns diesen Knochennamen noch einmal verbinden. Lassen Sie uns eine Verbindung herstellen. Das fällt hierher. Doppelklicken Sie, um einen hinteren Knoten zu erstellen. Jetzt sollte es funktionieren, wenn ich alles kompiliere und speichere. Lass es uns jetzt ausprobieren und schauen, wie es aussieht , wenn ich auf Play klicke. Denken Sie jetzt daran, dass es nur beim Nachladen funktioniert. Das ist die Ausrüstungsanimation. Dies ist nicht die Reload-Animation. Wenn wir jetzt neu laden, können Sie sehen, dass das Magazin entfernt wird . Okay, großartig Lass es uns hier mit einer M-Vier ausprobieren , wenn ich sollte und nachladen Fantastisch, das funktioniert auch. Es sieht viel besser aus. Und auch hier ist es viel besser, nur Animationen dafür zu haben, aber du kannst auch Knochennamen verstecken , wenn du die Waffe nachlädst 191. 14.08 Behebung des Nachladefehlers beim Waffentausch: Ich verbringe eine Stunde damit, mein Spiel auszuprobieren, um zu sehen, ob es einen Fehler gibt oder etwas, das wir beheben müssen , bevor wir es beenden Jetzt gab es nur ein kleines Problem. Du siehst wenn ich auf Jetzt spielen klicke und etwas plündere Wenn ich zum Beispiel mit dieser Waffe schieße, wenn ich wechsle und dann gleichzeitig nachlade , siehst du, dass ich wechsle und dann neu lade, dann ist es tatsächlich Jetzt versuche ich zu schießen, aber es wird nicht geschossen, das Nachladen Lass uns weitermachen und das reparieren. Bevor wir fertig sind, gehen wir zur Spielerbasis hier drinnen. Gehen wir hier zu unserer Reload-Logik und das ist die Nachladewaffe hier drin Was schief läuft, ist, dass wir nachladen können , obwohl wir die Waffe ausrüsten Das ist eine sehr schnelle Lösung hier. Wenn du versuchst, die Reload-Taste zu drücken, die Dinge, nach denen wir suchen Wir müssen auch überprüfen, ob wir die Waffe ausrüsten. Denken Sie daran, dass wir dieses Goldbarren schon früher hergestellt haben, wenn ich mit der rechten Maustaste klicke und „Ausrüsten“ sage wir dieses Goldbarren schon früher hergestellt haben Wenn wir die Waffe ausrüsten, bekommen wir Waffe ausrüsten Und dann Goldbarren, wenn wir die Waffe nicht ausrüsten, können wir weitermachen Wenn wir die Waffe jedoch immer noch ausrüsten, macht es nicht wirklich Sinn, sie Ich werde das, was wir schon einmal gemacht haben, einfach kopieren und einfügen , damit es besser aussieht Ich kopiere und füge diesen Code dort ein, wo wir das Magazin verstecken. Ich gehe hier tatsächlich zur Lutequip-Animation. Die MC Equip-Waffe. Ich werde es hier einfügen. Ich denke, es wird viel besser sein. Vielleicht musst du das vielleicht nicht tun, wenn du eine andere Ausrüstungsanimation hast. Aber meine Ausrüstungsanimation ist dieselbe wie beim Reload. Ich werde sie hier einfach anschließen, damit es besser aussieht Und ich werde das auch hier einstecken und es Mag Name nennen , genau wie zuvor. Dann werde ich, mal sehen, es ist dieser, also werde ich ihn einfach hier verbinden. Und das sollte auch behoben sein. Okay, das Letzte ist gut hier, im Inneren der Waffe. Wenn Sie die Waffe fallen lassen und die Montage beenden, denken Sie daran, dass das Nachladen nicht ruckelig klingt. Wir haben die Montage hier gestoppt, wir haben die Animationsinstanz und so weiter Manchmal wird es jedoch der Animationsinstanz verwechselt. Lassen Sie uns einfach von hier aus zuschlagen, weil dort Access N steht. Manchmal können wir einfach von hier aus zuschlagen und sagen, dass sie gültig ist , und dann hinzufügen, dass dieser Knoten gültig ist Wir stellen sicher, dass er gültig ist, bevor wir fortfahren. Ist dies nicht der Fall, tun Sie nichts. Und noch einmal, machen Sie sich hier einfach ein paar Notizen, um es sauberer zu machen, und das sollte alle unsere Probleme lösen. Ich habe das Spiel etwa eine, anderthalb Stunden lang ausprobiert , und es gab natürlich mehr Probleme, mit denen ich spielen konnte. Ich bin zuversichtlich, sagen zu können, dass wir alle Boxen im Spiel entfernt haben. Wir haben auch keine Box, wenn wir das Spiel spielen. Ich werde dieses Projekt für dich bereinigen, Kommentare erstellen und so. Und dann werde ich dieses Projekt für Sie bereitstellen. Vielleicht hast du es schon heruntergeladen. Das ist in der Zukunft. Lasst uns alles retten. Und Leah, lass uns zum nächsten gehen. 192. 14.09 Was jetzt: Also herzlichen Glückwunsch, dass du es so weit geschafft hast. Es war ein sehr langer Kurs, an den ich gewöhnt bin, aber es hat viel Spaß gemacht, das für Sie zu erstellen und all diese Elemente für Sie zu erstellen. Jetzt haben wir also einen guten Start für einen FBS-Shooter. Und wir haben die Waffen fallen lassen. Wir haben das Inventar, wir können nachladen, wir können die Waffen wechseln, Pistolengewehr, wir haben die Kugeln, wir haben die Gesundheit und Rüstung und wir haben die Wir haben dieser Umgebung also eine Menge Dinge hinzugefügt. Jetzt sind wir derzeit damit fertig, aber in Zukunft möchte ich weitere Artikel hinzufügen. Zum Beispiel können wir ein Bi-Menü hinzufügen. Wir können mehr Waffen wie einen Raketenwerfer hinzufügen. Wir können einen Granatwerfer hinzufügen. Wir können Granaten hinzufügen. Wir können eine Anzeigetafel für den Spieler hinzufügen Wir können ein Hauptmenü und ähnliches hinzufügen. Und womit du jetzt weitermachen kannst , ist, wenn du auf meinen YouTube-Kanal gehst und dort kannst du dieses Spiel tatsächlich auf Steam veröffentlichen. Also werde ich dir kostenlos beibringen, wie du dieses Spiel jetzt, wo du es hast, konvertieren kannst. Du kannst es speichern, du kannst jedes Spiel, das du gerade hast, auf Steam konvertieren . Sie können also ein Hauptmenü hinzufügen, einen Serverbrowser. Sie können eine Suchleiste und ähnliches hinzufügen. Und du kannst tatsächlich ein Spiel auf Steam hosten , dem andere Spieler beitreten können. Also werde ich dir das in meinem Youtube-Kanal beibringen . Also stellen Sie sicher, dass Sie auch dort vorbeischauen. Und du kannst auch jederzeit meine Website und meinen Discord-Server besuchen auch jederzeit meine Website und meinen Discord-Server Ich werde euch allen 2047 helfen. Also stellen Sie sicher, dass Sie das tun. Es ist auch sehr nett, mit der Community zu sprechen. Und ja, wir haben einfach Spaß an der Spieleentwicklung. Schön, dass du hier bist. Danke fürs Zuschauen. Und bleiben Sie dran, um weitere Updates zu erhalten. Und sieh dir auch meine anderen Tutorials und andere Kurse zu Real Engine und Multiplayer an. Mach weiter und speichere deinen Fortschritt und ich hoffe, dich bald zu sehen.