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.