Transkripte
1. Einführung: Was ich an
Videospielen liebe, ist, dass du
interessante Rätsel erstellen kannst ,
die andere Leute erforschen und lösen können. Hallo. Mein Name ist Lucas Ridley Ich bin Spieleentwickler
und 3D-Animator und arbeite in der
Videospiele- und Filmindustrie Sie haben vielleicht
einige meiner Arbeiten gesehen, wenn Sie Videospiele
wie The Last of Us,
Part II oder Suicide Squad:
Kill the Justice League gespielt haben Part II oder Suicide Squad:
Kill the Justice League Ich finde es verrückt, dass ich
das beruflich machen darf. Ich denke, es ist der Traum der meisten Kinder Lebensunterhalt mit Videospielen
zu verdienen In diesem Kurs lernst
du, wie man ein
ganzes Videospiel erstellt Wir beginnen
mit einer Filmsequenz das Gameplay einfügt, wo wir eine
Spiellogik erstellen können, die einen Timer anzeigt, Hindernisse für unseren
Charakter
schafft, und dann können
wir das Ganze schließlich exportieren, können
wir das Ganze schließlich exportieren sodass du es
mit deinen Freunden teilen kannst Ich freue mich,
dir etwas über dieses Thema beibringen zu können, denn das Erstellen von Videospielen ist eigentlich ziemlich einfach. Sie haben nicht nur kostenlose
Software wie Unreal Engine, sondern können dies auch zu
Hause auf Ihrem eigenen Computer tun Sie sollten diesen
Kurs belegen, wenn Sie über Grundkenntnisse
in Unreal
Engine verfügen Grundkenntnisse
in Unreal
Engine Ich werde nicht lügen,
wir werden in
das tiefe Ende der Unreal Engine springen und Spiellogik
mit
Blaupausen erstellen Um dem nachzugehen, benötigst du
lediglich die Unreal Engine,
einen Computer und eine
Drei-Tasten-Maus einen Computer und eine
Drei-Tasten-Maus Am Ende dieses
Kurses
wirst du tatsächlich ein fertiges
Videospiel haben, das du mit deinen
Freunden teilen und in einem Time-to-Hindernisparcours
gegen sie antreten
kannst in einem Time-to-Hindernisparcours
gegen sie Ich hoffe, du verlässt
diesen Kurs deine Fähigkeiten zu verbessern und ein
Erfolgserlebnis zu haben, denn wir
werden gemeinsam wirklich
etwas Beeindruckendes schaffen gemeinsam wirklich
etwas Beeindruckendes Willst du ein Spiel spielen?
Lass uns anfangen.
2. Erste Schritte: Willkommen zu diesem Kurs.
Ich bin so froh, dass du hier bist. In diesem Projekt werden
wir
ein spielbares zeitgesteuertes Videospiel entwickeln ein spielbares zeitgesteuertes Videospiel Es wird eines sein, das du
mit deinen Freunden teilen kannst, sodass du dich auf diesem zeitgesteuerten
Hindernisparcours mit ihnen messen kannst diesem zeitgesteuerten
Hindernisparcours Also werden wir mithilfe der
Spiellogik einen Timer
erstellen , der auf dem Bildschirm
erscheinen kann So kannst du dich mit deinen
Freunden messen und Ergebnisse vergleichen. Wir werden Hindernisse schaffen,
um das zu erschweren. Wenn du also auf sie triffst, simuliert
es die
Ragdoll-Physik
auf deinem Spieler und
das Level wird neu gestartet , sodass du von vorne beginnen
kannst Am Ende dieses Kurses werden
wir das Ganze als
ein komplett spielbares Videospiel exportieren ein komplett spielbares Videospiel Mein erster Job in der
Videospielbranche war eigentlich an einem
Augmented-Reality-Videospiel, bei dem wir ein Buch mit
Tracking-Markierungen nahmen und das war der eigentliche
Gamecontroller für das Spiel und man kann
die Spieler in diesem Buch manipulieren Meine Aufgabe bei diesem Projekt bestand darin,
diese Charaktere durch Animationen auf
den Seiten dieses
Augmented-Reality-Buchs zum
Leben zu erwecken durch Animationen auf
den Seiten dieses
Augmented-Reality-Buchs zum
Leben . Ich kannte Unreal
Engine zu der Zeit noch nicht einmal. Also, wenn du diesen Kurs beendest, bist du mir schon einen Schritt voraus Ich werde dir
einige großartige Fähigkeiten vermitteln, die deine Karriere
im Videospieldesign voranbringen
können. Um an diesem Kurs teilnehmen zu können, solltest du dich mit der
Unreal Engine auskennen. Es wird hilfreich
sein, im Viewport zu
navigieren und auch nur zu wissen, dass
Blaupausen etwas sind existiert
, wird
hilfreich sein , weil
wir viel tiefer eintauchen und
unsere eigenen Pläne von Grund auf neu erstellen unsere eigenen Schnappen Sie sich also Ihren Computer,
Ihre Drei-Tasten-Maus und lernen Sie mich in der nächsten Lektion kennen.
Dort
erstellen wir einen Spielerstart, damit wir irgendwo mit unserem Videospiel beginnen damit wir irgendwo
3. Erstelle den Spielerstart: In dieser Lektion erfahren Sie, wie Sie einen Player-Start von
Grund auf neu
erstellen ,
wenn Sie
Ihr eigenes benutzerdefiniertes Level erstellt haben Außerdem werden wir ein wenig
debuggen,
um unsere Bildrate
zu verbessern Zurück in der Unreal Engine beginne
ich mit
einem Level, das ich entworfen habe Wenn Sie
den anderen Klassen nicht
gefolgt sind und Ihr eigenes Level
entworfen haben , können
Sie das Vorlagenprojekt für
eine dritte Person verwenden
und das Level verwenden, das mit dieser Vorlage
geliefert wird Für dieses Level gibt es bereits einen
Spielerstart, aber wir müssen einen erstellen, falls du ein eigenes Level hast. Denn wenn ich jetzt auf
„Spielen“ klicke, erscheint
mein spielbarer Charakter überall dort, wo die Kamera war Dann könnte ich mich möglicherweise einfach außerhalb des eigentlichen Spiels befinden
und nicht reinkommen, weil das von der
Kamera
abhängt, die ich Ich drücke
„Escape“, um das Spiel zu verlassen, und ich möchte
den Spieler dort starten lassen, wo das eigentliche Spiel beginnen soll. Ich mache es
dort, wo ich
die einleitende Filmsequenz erstellt habe , zu der ich später kommen werde, und ich möchte die
Position mit meinem Spielerstart abgleichen Ich werde den
Spieler hinzufügen, indem ich
hier oben auf die Plus-Schaltfläche klicke und Start eintippe Sie können sehen, dass wir
einen Spielerstart haben, und da es in der Szene
nichts anderes gibt, wird
der Player automatisch dort gestartet , wo wir ihn haben wollen. Ich möchte der
Position der Filmsequenz entsprechen. Ich werde einfach „W“ drücken und das für den Moment aus
dem Weg räumen Ich klicke auf die
Filmsequenz und finde ihre Position heraus, indem ich mit der rechten Maustaste auf diesen
Wert klicke und „Kopieren“ auswähle. Und dann möchte ich erneut
den Player-Start wählen und diesen Wert
einfügen, indem ich mit der
rechten Maustaste klicke und Wir können ein bisschen durch den
Boden sehen. Ich hebe
es einfach ein gewisses Maß an und drücke dann auf meiner Tastatur die
Taste „Ende“, E-N-D, damit es auf dem
Boden landet Dann möchte ich
es einfach drehen, weil wir
sehen werden, dass der blaue Pfeil zur Seite
zeigt Ich wollte
in die Richtung des
Labyrinths zeigen , das ich in meinem Level
erstellt habe Wenn ich jetzt auf „Spielen“ klicke, können
wir sehen, dass die
Spieler
genau dort beginnen , wo wir es erwarten
, in dieser Position Wenn Sie nun eines feststellen können, dann ist
es, dass die Wiedergabe sehr langsam
ist. Die Bildrate ist nicht großartig, und wir können das testen, indem wir Bilder pro Sekunde
einschalten. Wir können
hier das
dreizeilige Hamburger-Symbol auswählen und dann nach unten gehen, um FPS anzuzeigen, was die Abkürzung für
Frames pro Sekunde ist Wenn ich darauf klicke,
siehst du oben rechts, wir 18 Bilder pro Sekunde haben Ich kann auch auf „Erneut abspielen“ drücken und die Bilder pro
Sekunde sollten bestehen bleiben Wir können sehen, dass es noch schlimmer ist
, wenn wir herumspielen. Zehn, 11 Bilder pro Sekunde. Einer der Gründe
dafür in meiner Szene die sehr
hochauflösenden Bäume, die wir
in unserer Umgebung haben. Wenn Sie der
Umgebungsklasse folgen, wissen
Sie, wo sich dieses Objekt
in diesem prozedural
generierten Wald Ich werde das gegen ein Asset mit niedrigerer Auflösung austauschen Asset mit niedrigerer Auflösung ,
damit wir
viel schneller arbeiten können Das wird Debuggen genannt. Wir möchten unser Spiel während des Spiels debuggen und alle Probleme lösen, mit denen
wir unterwegs konfrontiert werden Denn wenn wir
das jetzt lösen, werden wir später,
während wir an der Szene arbeiten
,
alles schneller machen später,
während wir an der Szene arbeiten
,
alles schneller , was
zu einer großen Zeitersparnis führen wird Ich drücke die
„Strg Leertaste“
und
navigiere zu der Stelle, an der sich dieses Asset in meinem
prozedural generierten Ordner befindet, und öffne das PCG-Diagramm, in
dem
sich dieses Asset Auch hier gilt: Wenn Sie
die Vorlagenebene verwenden , haben
Sie das nicht Das ist für die
Leute, die
dem Kurs zuvor vielleicht gefolgt sind. Ich werde hier ein
anderes statisches Netz erzeugen, also ersetze ich die Bäume mit
hoher Auflösung durch Bäume mit niedrigerer Auflösung Ich werde diesen Deskriptor
herunterklappen, und hier befindet sich das statische
Netz des Baums Ich werde ein Asset auswählen
, das zu den PCG-Assets gehört Ich tippe einen Baum ein
und sehe, dass es
diese PCG-Platzhalterbäume gibt, die eine viel
niedrigere Auflösung haben, und genau diese werde ich
anstelle der hohen Auflösung verwenden anstelle der Wir können sehen, dass es
bereits ausgetauscht wurde,
und beobachten, was mit
unseren Bildern pro Sekunde passiert Wir haben bereits etwa
30 Bilder pro Sekunde erreicht. Die andere Sache, die
ich tun könnte, ist , auch die Anzahl
der Punkte zu reduzieren, also könnte ich den
Surface Sampler wählen und statt 0,08 Punkten
pro Quadratmeter etwas
halb so viel wählen, also Wir können sehen, dass wir wirklich
nicht so viel gewonnen haben, also werde ich
es bei 0,08 belassen, aber das ist die Art von
Tests, die Sie durchführen möchten, um
sicherzustellen , dass das Spiel, das Sie entwickeln
, performativ ist. ich jetzt auf „Play“ drücke,
solltest du eine viel
flüssigere Wiedergabe bekommen, und wir haben eine
Menge Bilder pro Sekunde gewonnen In dieser Lektion haben wir gelernt, wie Sie einen
Player von Grund
auf neu erstellen können, falls Sie Ihre eigene benutzerdefinierte
Umgebung erstellt haben Wenn Sie dies nicht tun, können Sie einfach das
Vorlagenprojekt für eine dritte Person
verwenden und den Player-Start verwenden, der in diesem Level
bereits vorhanden ist. Beachten Sie Folgendes: Wenn Sie möchten, dass eine Filmsequenz am
Anfang Ihres Videospiels beginnt,
sollten Sie nur sicherstellen, dass Player-Start genau
mit dieser Level-Sequenz übereinstimmt Triff mich in der nächsten Lektion,
in der wir unseren eigenen
spielbaren Charakter
verbinden
4. Verbinde eine benutzerdefinierte spielbare Figur: Willkommen zurück. In dieser Lektion werden
wir uns damit befassen,
wie wir
unseren eigenen MetaHuman-Charakter
mit unserem spielbaren Charakter aus der dritten
Person verbinden unseren eigenen MetaHuman-Charakter
mit unserem spielbaren Charakter aus der dritten Lass uns zu unserem
Projekt zurückkehren und loslegen. Jetzt möchte ich unseren eigenen
benutzerdefinierten MetaHuman-Charakter gegen die dritte Person
eintauschen die dritte Person
eintauschen Wir haben das
in einer früheren Klasse behandelt, aber ich werde es hier noch einmal
behandeln damit wir uns
schnell mit unserem eigenen benutzerdefinierten
MetaHuman-Charakter als spielbarem Charakter vertraut machen können unserem eigenen benutzerdefinierten
MetaHuman-Charakter als spielbarem Charakter vertraut machen aber ich werde es hier noch einmal
behandeln,
damit wir uns
schnell mit unserem eigenen benutzerdefinierten
MetaHuman-Charakter als spielbarem Charakter vertraut machen können. Ich habe bereits gezeigt, wie
man Charaktere
aus anderen Projekten migriert , in denen
wir sie möglicherweise erstellt haben Alles, was Sie tun müssen, ist
, mit der rechten Maustaste auf ein Asset und
Asset-Aktionen, Migrieren auszuwählen. Wählen Sie dann das Projekt aus, in das Sie es migrieren
möchten, wenn Sie einen MetaHuman
aus einem anderen Projekt haben Das haben wir bereits getan, und deshalb gibt es
das hier. Jetzt muss ich diesen Charakter nur noch so
einrichten,
dass er spielbar ist diesen Charakter nur noch so
einrichten,
dass er spielbar Ich muss zu den
Klasseneinstellungen gehen und Blueprint für die dritte Person
als übergeordnete Klasse
auswählen Für den Charakter der dritten Person ist bereits eine Menge Logik eingerichtet, sodass wir
dies einfach in all
seinen Animationen verwenden können , nur mit
unserem eigenen Jetzt werde ich das wählen. Ich gehe zum Viewport,
damit ich sehen kann, was passiert, und ich kann sehen, dass
mein Charakter und die dritte Person jetzt
in derselben Szene sind Jetzt kann ich diesen Stamm verschieben, ihn
anklicken und
unter das Netz ziehen Und jetzt kann ich den Stamm zurücksetzen, sodass er mit dem Charakter
der dritten Person übereinstimmen sollte Wir blicken jetzt alle in
dieselbe Richtung. Ich werde
diesen benutzerdefinierten Charakter erneut
auf die Animation ausrichten , die für die dritte Person
passiert Ich kann das tun, indem ich
Live-Retargeting aktiviere. Ich kann die
Live-Retarget-Variable auswählen
und UseLiveRetargetMode aktivieren Jetzt kann ich diese Reihen sehen
und muss nur noch den Charakter aus der dritten Person unsichtbar machen. Ich kann auf das Mesh klicken
und nach sichtbar suchen. Ich kann „Sichtbares“
und „Rendern“ ausschalten. Ich muss Always
Tick Pose und Refresh Bones einschalten. Wir werden den
Charakter in Echtzeit aktualisieren. Jetzt kann ich auf
„Kompilieren“ klicken und speichern. Ich möchte den
Blueprint für Dritte öffnen und die
gesamte Spiellogik und Eingaben
, die wir hier nicht haben, kopieren und einfügen gesamte Spiellogik und Eingaben
, die wir hier nicht haben, kopieren und Denn wenn ich mir mein Event-Diagramm ansehe
, das
die gesamte Spiellogik steuert, gibt es eigentlich keine Es gibt nichts, was sagt, hey, wenn ich diesen
Knopf drücke, dann mach dieses Ding. Es ist einfach total leer hier. Wir haben ein paar AR- und Face-Sachen, aber es gibt keine tatsächlichen Eingaben , die das spielbar
machen Ich möchte
den
Bauplan für Dritte öffnen , in dem sich das befindet,
und die Informationen hier kopieren und einfügen Wir können einfach all
die harte Arbeit stehlen , die
sie bereits für uns geleistet haben Ich doppelklicke auf
diesen Blueprint möchte alle Informationen anklicken
und ziehen,
auswählen und sie kopieren
und einfügen, indem ich „Strg C“ drücke, zu meinem
Blueprint
zurückspringe und in einem leeren Bereich auf „Strg V“ drücke,
um Also Strg V. Jetzt
haben wir all diese Informationen, dass
sie die ganze harte Arbeit für uns erledigt haben Jetzt müssen wir nur noch sagen,
wann das abgespielt
wird, dann casten und mit dem
gesamten Eingabe-Mapping beginnen , das wir machen wollen Ich kann einfach dieses
CustomEvent löschen und dieses Event,
BeginPlay, verwenden und das
unserem Casting unserem
spielbaren Charakter zuordnen Jetzt kann ich diesen Blueprint kompilieren und
speichern, und jetzt muss
ich nur noch meinem Spiel sagen diesen Charakter tatsächlich verwenden
soll, denn wenn ich jetzt auf „Play“ drücke, es diesen Charakter tatsächlich verwenden
soll,
denn wenn ich jetzt auf „Play“ drücke, wird immer noch der Standardcharakter verwendet Um das zu ändern, gehe ich zu meinen Projekteinstellungen unter Bearbeiten, Projekteinstellungen, Karten und Modi Im ausgewählten Spielmodus muss
ich die
Standardbauernklasse ändern Ich kann den
Third-Person-Spielmodus wählen und dann kann ich
den Bauplan ändern , in
dem wir den Charakter
spawnen. Ich werde BP_ machen und jetzt kann ich meinen
Plan für meinen MHI_Lucas finden Wenn ich das jetzt schließe
und auf „Play“ drücke, sollten
wir unseren eigenen
benutzerdefinierten Charakter sehen, und er sollte
spielbar sein, indem ich die Tasten W,
A, A, Neben der Sprungeingabe kannst
du auch „Leertaste“ drücken.
Jetzt bist du dran Nimm deinen eigenen
Charakter und ordne ihn
dem
spielbaren Charakter aus der dritten Person zu,
oder verwende einfach den Charakter aus der
dritten Person
und klicke auf oder verwende einfach den Charakter aus der
dritten Person
und klicke „Spielen“ und Denkt nur daran,
dass es
immer wichtig ist, jede Arbeit zu
nutzen ,
die wir bereits für uns erledigt Deshalb suchen
wir nach Dingen in den Startinhalten,
kopieren sie und fügen sie Es ist keine Schande,
Arbeit zu verwenden , die bereits für Sie
erledigt wurde Triff mich in der nächsten Lektion. Wir werden eine neue
Zustandsmaschine zum Hocken einrichten.
5. Richte eine Zustandsmaschine ein: Willkommen zurück. In dieser Lektion werden
wir uns mit
Animations-Blueprints und Zustandsmaschinen befassen Zustandsmaschinen ermöglichen es uns
, von
verschiedenen Zuständen unseres
Charakters zu wechseln , z. B. untätig zu stehen, gehen, zu rennen.
In dieser
Lektion werden wir auch das Hocken hinzufügen Es ist wichtig zu wissen
, dass Zustandsmaschinen, obwohl sie ihr eigenes Ding sind, tatsächlich innerhalb des
Animationsplans existieren Also, dort werden
wir arbeiten. Kommen wir jetzt zurück
zu unserem Projekt. Diese Lektion gibt
dir einen Einblick, wie eine Hockenanimation
für unseren Charakter
erstellen Stellen wir uns also vor, wir
haben ein Hindernis,
unter dem wir uns tatsächlich ducken müssen tatsächlich ducken müssen, um einen dieser Blöcke
verschieben zu können, aber wir können uns noch nicht ducken Wir müssen also
eine Hockeneingabe erstellen, sodass
unser Charakter sich ducken kann, und dann diesen Block durchdrücken, um diese Barriere im Level
zu überwinden Fangen wir also jetzt damit an. Zu Beginn müssen wir
eine Eingabeaktion hinzufügen, damit wir wissen, welcher Tastendruck das Hocken tatsächlich
ermöglicht Also werde ich zu
den Eingabeaktionen für
meinen Charakter aus der dritten Person springen ,
weil das eigentlich das ist, was unseren benutzerdefinierten Charakter steuert der Hier sehen wir also, dass wir
einen Ordner namens Input haben. Darin haben wir
diesen Master-Standard, der Eingabe-Mapping-Kontext ist. Das ist die Hauptgruppe, die die Aktionen kontrollieren
wird. Wir brauchen eine neue Aktion
namens Crouch. Sie können sehen, wir haben
Jump, Look, Move und wir können
jede andere Art von
Aktionen hinzufügen , die wir
zu aktivieren beginnen möchten Und in diesem Beispiel werden
wir eine neue
Crouch-Aktion und Eingabe aktivieren Also muss ich
eine Eingabeaktion erstellen. Also gehe ich zur Eingabe und Eingabeaktion mit der rechten Maustaste klicke und diese Option
auswähle. Ich werde I
A für die Eingabeaktion wählen und das
nenne ich Crouch Wenn wir nun zu dieser Art von
Stammdatenbestand
der Eingabeaktionen gehen , können
wir hier ein neues Mapping
für den Crouch erstellen Also kann ich die Plus-Schaltfläche drücken und dann Crouch
aus dem Menü wählen In dieser Option kann ich jetzt hinzufügen, zu welchen Tastenanschlägen
das hinzugefügt werden soll Also kann ich hier aus
den Optionen wählen, oder ich könnte einfach auf
diese Schaltfläche klicken und dann die eigentliche
Tastaturtaste auf meiner Tastatur drücken. Also werde ich die
linke Steuerung wählen, weil wir ein W A S- und D-Setup verwenden. Also, lass uns auf Speichern klicken. Und jetzt haben wir es aktiviert
, um diese Eingabe zu empfangen. Jetzt müssen wir nur noch
diesen Eingang mit
allen Ereignissen und der
Logik verbinden diesen Eingang mit
allen Ereignissen und der , um die
richtige Animation abzuspielen
und die Charakterkomponenten auf Crouch umzustellen Also müssen wir zum
Bauplan für unseren Charakter gehen,
der für mich der Meta-Mensch ist, Für dich könnte es die dritte Person
in deinem Charakter
sein, wenn du dich
dafür entscheidest, diesen zu verwenden Jetzt im Ereignisdiagramm müssen wir hier unsere eigene Eingabeaktion
hinzufügen. Sie können sehen, wir haben „
schau“, „bewegen“, springen“ und wir müssen die Eingabeaktion „Crouch“
hinzufügen Aber bevor wir
das tun, müssen wir
der Bewegungskomponente mitteilen , dass
wir uns tatsächlich ducken können Es hat also die
Variablen und Dinge , nach denen wir beim
Hocken suchen Weil es normal ist, in die Hocke
zu gehen. Das steht uns eigentlich
schon in der Komponente
Charakterbewegung
zur Verfügung , wo all
diese
spielbaren Charakterwerte enthalten sind
, die uns interessieren,
wie schnell wir uns bewegen, wie die Schwerkraft ist Wenn wir also anfangen, Crouch einzugeben
und nach Crouch zu suchen, könnt ihr sehen, dass
wir uns eigentlich nicht ducken können, bis wir das überprüft haben Dadurch stehen uns einige eingebaute
Funktionen zur Verfügung,
sodass es weiß, ob es das
Hocken ein- und ausschalten muss Sie können auch die Geschwindigkeit ändern
, mit der Sie sich bewegen,
wenn Sie in der Hocke sitzen Und auch die Höhe, die du erreichen
wirst, wenn du in die Hocke gehst. Also werde ich das überprüfen. Und jetzt in meinem Event-Graph, der die gesamte Logik
der Eingaben beschreibt und was
sie ermöglichen werden. Genau wie beim Sprung hier müssen wir,
ob wir springen oder nicht, eine
Eingabeaktion für Crouch erstellen Also
fange ich an, Crouch zu tippen, und das sollte
existieren, weil wir dieses
Eingabeaktionsereignis bereits erstellt haben dieses
Eingabeaktionsereignis bereits erstellt Wir wollen also das Ereignis
und nicht den Wert, und wir können
gestartet und abgeschlossen wählen genau wie unser Ereignis für
die Eingabeaktion für den Sprung Für den Anfang haben wir also tatsächlich diese eingebaute Funktion
namens Crouch Und aus diesem Grund
aktivieren wir das Hocken. Diese
Variable steht uns also
zur Verfügung , bevor wir mit diesem Schritt begonnen haben Also klicke und
ziehe ich auf abgeschlossen und erneut Crouch ein
und wähle Un Crouch aus,
wenn wir fertig sind Und das ist alles, was wir
wirklich tun müssen. Wenn wir das auskommentieren wollen, genau wie die anderen, können
wir C drücken und Crouch Input eingeben Jetzt müssen wir nur noch
kompilieren und speichern
und wir sollten sehen, dass sich diese Aspekte der
Bewegungskomponenten bereits auf unseren Charakter auswirken Zum Beispiel
wird die Geschwindigkeit beim Crouch beeinflusst, obwohl es noch
keine Animation zum Abspielen Wenn ich renne und Crouch
oder die Steuertaste drücke, werden
wir eigentlich einfach langsamer Aber wir haben
noch keine Hock-Animation, und das
müssen wir anpassen Lassen Sie uns also die Animation erstellen , die wir tatsächlich zum Hocken benötigen In dieser Lektion haben wir
gelernt, wie man anfängt eine neue
Eingabeaktion für unseren Charakter zu
erstellen, damit wir uns ducken können Am Ende haben wir festgestellt,
dass sich das auf unsere Geschwindigkeit auswirken kann, und wir müssen jetzt nur noch
die richtigen Animationen einfügen Lassen Sie uns das
in der nächsten Lektion gemeinsam machen.
6. Beende deine Zustandsmaschine: Willkommen zurück. In dieser Lektion werden
wir
weiter an unserer Crouch State Machine Wir nehmen
unsere Eingabeaktion, die
wir bereits vorgenommen haben, und verbinden sie mit einer Animation für Crouching
Idle und Crouching Walk Dann werden wir
die Geschwindigkeit beeinflussen, mit der wir uns beim
Gehen in der
Hocke bewegen , sodass sie mit der Geschwindigkeit synchronisiert wird,
mit der sich mit der Lassen Sie uns wieder
in das Projekt eintauchen. Lassen Sie uns die Animation erstellen, die
wir brauchen, um tatsächlich in die Hocke zu gehen. Zum Glück für uns, wenn wir
den Epic Games Launcher
auf dem Marktplatz aufrufen
und nach den Grundlagen von
MCO Mocap suchen Wir haben hier
tatsächlich
ein kostenloses Asset einer
Crouch-Animation Suchen Sie einfach nach dem Asset und Sie können es
Ihrem Projekt hinzufügen Sobald es zu Ihrem Projekt hinzugefügt wurde, können
wir diese Assets
im Inhaltsbrowser finden ,
indem wir zum Inhalt gehen. Sie können sehen, dass ein
neuer Ordner namens MCO Mocap Basics
erstellt wurde namens MCO Mocap Basics
erstellt Hier finden wir eine
Crouch-Animation. Ich kann hier einfach
im Inhaltsbrowser danach suchen. Sie können sehen, dass wir ein paar verschiedene Walk Crouch und Idle Wir haben grundsätzlich
eine In-Place-Version und eine
Walking-Off-The-Spot-Version Wir wollen die In-Place-Version. Ich wähle die
In-Place-Crouch und die In-Place-Walk aus, und ich möchte mit der rechten
Maustaste klicken und
Retargeting-Animationen wählen, da es sich um ein altes Mannequin-Skelett
handelt und wir das neue Mannequin-Skelett als Retargeting verwenden möchten Ich werde Manny eintippen. Jetzt können Sie sehen, dass wir das
neue Mannequin Skeleton hier haben, und wir können nach diesen
Objekten suchen, indem wir einfach Wenn wir darauf doppelklicken, können
wir sehen, dass wir das Objekt haben, das von der Stelle
weggeht Aber wir wollen den, der auf der Stelle
läuft. Lassen Sie uns diese beiden auswählen und diese Animationen
exportieren. In diesen Grundlagen von MCO Mocap werde
ich einen neuen
Ordner mit dem Namen Retarget erstellen, rechten
Maustaste klicken,
Neuer Ordner auswählen und ihn in
den Ordner für das erneute Targeting einfügen Nun haben wir im
Charakter-Blueprint angegeben, wo sich Eingabeaktion befand Das haben wir in unserem Bauplan
für unseren Charakter gemacht. Aber wo fügen wir die Animationen eigentlich
hinzu? Das steht auf dem Animations-Blueprint
und nicht auf diesem Blueprint. Wir müssen den
Animationsentwurf finden. Wenn ich auf unseren doppelklicke, siehst
du, dass die
Animationsklasse hier Anim Blueprint Queen C
ist, und ich kann nach diesem Asset suchen und darauf doppelklicken, und das ist tatsächlich ein
Kind von Manny Wir wollen eigentlich den
Animations-Blueprint von Manny Wenn ich hier auf diese
Elternklasse klicke, finde
ich sie auch im Ordner,
der
sich direkt neben der
Königin befindet, und doppelklicke darauf sich direkt neben der
Königin befindet, und doppelklicke Sie können sehen, dass wir
das Ereignisdiagramm für den Animation-Blueprint Das unterscheidet sich
vom Charakter-Blueprint, dem wir gerade
die Eingabeaktion hinzugefügt Hier teilen wir der
Variablen für das Hocken mit, ob wir hocken
oder nicht,
damit sie weiß, welche Animation abgespielt werden damit Dazu müssen wir sie mit der Bewegungskomponente
verbinden, die Ich kopiere eine Version
davon
und füge sie hier ein und klicke
und ziehe sie heraus. Ich werde es
in der Hocke eintippen. Sie können sehen, dass wir die Variable
dafür bereits
haben , weil wir
die Fähigkeit zum Hocken aktivieren Diese Variable ist bereits
eingebaut. Wenn ich mit der rechten Maustaste darauf klicke, kann
ich es zu einer Variablen heraufstufen. Wir können in der
Zustandsmaschine darauf zugreifen, um dies als
Regel festzulegen , ob
die hockenden Animationen abgespielt werden sollen oder Nun, es ist mit nichts verbunden
, also müssen wir dieser Sequenz einen neuen
Pin hinzufügen, die Werte in
jedem Frame aktualisiert , sodass festgestellt werden kann
, ob sich ein
Zustand geändert hat,
z. B. fallen,
ducken oder sich bewegen. Wir müssen diesen
neuen Pin hier hinzufügen
, damit wir ihn mit
dieser neuen Variablen verbinden können , die wir haben Ich kann auf eine
beliebige Stelle in dieser Zeile doppelklicken um einen Umleitungsknoten zu erstellen, und wenn ich die Strg-Taste gedrückt halte, kann
ich ihn aus dem Weg räumen Wir können hier ein bisschen
organisiert bleiben. Ich kann sie auch anklicken und
ziehen und
C drücken , um sie zu kommentieren und nach unten zu verschieben. Jetzt, da wir endlich
die Eingabeaktionen erstellt haben, haben
wir unsere Animationen fertig
und wir haben eine
Fähigkeit geschaffen, anhand
einer Variablen zu erkennen , ob wir
hocken oder nicht. Ich kann das in Crouching umbenennen. Jetzt sind wir bereit, die Animationen
tatsächlich mit
der Fortbewegung zu
verbinden Animationen
tatsächlich mit
der Fortbewegung zu Das können wir
im Anime-Graph finden. Im Moment befinden wir uns im Ereignisdiagramm,
das Sie hier in diesem
Hierarchieverzeichnis sehen können Ich kann hier
zur Registerkarte Anim-Diagramm springen oder von
hier aus
darauf klicken In der Animationsgrafik können wir tatsächlich die Zustandsmaschinen sehen,
die steuern, welche
Animationen abgespielt werden Das, mit dem wir uns
am meisten beschäftigen ist die Lokomotion-Zustandsmaschine Wenn ich darauf doppelklicke, kann
ich hineingehen
und sehe, dass es ein Idol und einen Walkrun gibt Das sind hauptsächlich die beiden Dinge wir mit diesem Charakter machen können Sie können
gerade sehen, dass hier
im linken Fenster eine Vorschau der Idol-Animation angezeigt wird Wir möchten einen weiteren
Bundesstaat namens Crouching hinzufügen. Ich kann hier mit der rechten Maustaste klicken
und einen neuen Bundesstaat hinzufügen. Ich nenne das
Crouching und es innerlich. Ich kann doppelklicken
und reinkommen und
jetzt kann ich
meine Animationen hier hinzufügen Wir haben zwei Animationen, eine für den Fall, dass wir uns nicht bewegen und wir einfach nur untätig hocken,
und eine für das Hocken, während wir gehen Ich klicke auf „
Beide Animationen in
die Zustandsmaschine ziehen“
und muss ihm sagen, wann wir untätig
sind und wann wir gehen Beide Animationen in
die Zustandsmaschine ziehen“
und muss ihm sagen, wann wir untätig
sind und wann wir Deshalb haben wir
diese Variablen, die
uns sagen, ob wir uns bewegen oder
ob wir uns nicht bewegen. Das war bereits in unserem Event-Graph
eingerichtet. Hier können Sie sehen, dass es
ein RD-Setup namens Should Move gab . Wir können das nutzen, um zu wissen,
ob wir untätig
hocken oder gehen Wir müssen diese
beiden auf der Grundlage dieser Variablen mischen beiden auf der Grundlage dieser Variablen Ich kann mir diese Variable schnappen,
indem ich sage,
get should move Dadurch wird gesteuert, welche dieser Animationen
wir abspielen. Wir benötigen einen weiteren Knoten,
um das festzustellen, und das ist eine Mischung nach Boolean, was entweder oder bedeutet, entweder es ist an oder es ist aus, also können wir
Blend Posen von Bole eingeben, und jetzt haben wir eine wahre
Pose und eine falsche Pose Es wird durch einen aktiven Wert
gesteuert. Der wahre Zustand
wird das Gehen sein, also können wir das mit wahr verbinden. Wir können den Ruhezustand,
die Leerlaufanimation, mit Falsch verbinden. Was das kontrollieren wird
, ist diese Variable hier. Ob wir uns
bewegen sollten oder nicht wird
der aktive Wert sein. Jetzt setzen wir das
in das Ergebnis ein. Jetzt kehren wir zu
unserer Fortbewegung zurück. Wir müssen nur eine Regel
dafür erstellen, wann das passiert. Wann hocken wir? Dann ist die von uns
erstellte
Variable „Hocken“ aktiviert,
je nachdem, ob wir den richtigen Tastendruck
eingeben oder nicht, den wir den richtigen Tastendruck
eingeben oder nicht, den Steuerelement als Eingabeaktion eingegeben
haben zuvor als
Steuerelement als Eingabeaktion eingegeben
haben. All das ist bereits eingerichtet. Wir müssen nur die
Regel für diese Variable festlegen. Ich kann auf
dieses Feld klicken und es ziehen und es so zeigen,
dass es in die Hocke geht. Ich kann
jetzt mit der Regel, die ich festlegen werde, vom Gang zur Hocke gehen jetzt mit Mit einer anderen Regel kann ich vom Hocken wieder
zum Leerlauf übergehen. Wenn ich vom Gang zum Hocken gehe, möchte
ich Ich verstehe, dass diese Variable hockt. Wenn wir hocken, wollen wir zur Animation des Hockens
übergehen übergehen Wenn wir jetzt nicht mehr
hocken, können wir einfach die
Regel so einstellen, dass
wir Wir wollen wieder sagen, dass wir
diese Variable abrufen, aber diesen Übergang auslösen,
wenn das nicht passiert Wir können not eingeben und
die Option Boolean in wählen. Jetzt müssen wir dasselbe
für die Walk-Run-Übergänge tun für die Walk-Run-Übergänge Laufen vom Gehen zum Hocken sollte passieren,
wenn wir uns ducken Wenn wir nicht gerade
hocken, sollten wir diesen Zustand der Hocke
wieder verlassen und zum Walk-Running wir nun die Regeln für
das Hocken erstellt haben, haben
wir die Animationen erstellt und wenn sie abgespielt werden, können wir auf Kompilieren und Speichern klicken,
und
wir sollten sehen können, dass Kompilieren und Speichern klicken,
und
wir sollten sehen können, unser Charakter in der Lage ist, sich zu ducken Nachdem wir nun die Regeln für
das Hocken erstellt haben, haben
wir die Animationen erstellt
und wenn sie abgespielt werden, können wir auf Kompilieren und Speichern klicken,
und
wir sollten sehen können, dass unser Charakter in der Lage ist, sich zu ducken. Jetzt lass uns spielen und es ausprobieren. Jetzt drücke ich die Strg-Taste, ich
kann mich in die Hocke legen, und Sie können sehen, dass ich mich bewege, aber die Hocke hört auf, sich zu bewegen ,
weil wir die Schleife nicht aktiviert Wir können zurück zu
unserem Animations-Blueprint springen, zu
dem wir
in unseren Mannequins,
Animationen und Manny auf der Registerkarte „Hocken“ gelangen Animationen und Wir müssen sicherstellen, dass der Spaziergang auf eine Schleife eingestellt ist
. Wir können Loop eingeben, um es zu finden, und wir müssen nur die Loop-Animation
einschalten. Lassen Sie uns kompilieren und speichern. Jetzt können Sie sehen, dass es sich
tatsächlich wiederholt, während wir zeichnen. Aber wir bewegen uns viel
schneller als unsere Füße. Wenn du dich erinnerst, können wir die Duckgeschwindigkeit
anpassen, sodass sie besser zur Animation passt und wie schnell sich
die Füße tatsächlich bewegen Lassen Sie uns in unserem Bauplan zur Komponente
der
Charakterbewegung unserem Bauplan zur Komponente
der
Charakterbewegung Ich werde auf den Bauplan der
Metahumanen eingehen. Ich gehe zur Komponente
Charakterbewegung über, wo wir Wenn ich nach Crouch suche, kann
ich sehen, dass unsere maximale
Gehgeschwindigkeit für Crouch Lassen Sie uns das um die Hälfte reduzieren, kompilieren und speichern
und diese Geschwindigkeit testen Wir werden Crouch gedrückt halten
und weitermachen. können Sie jetzt sehen, dass
wir uns der Geschwindigkeit,
mit der sich unsere Füße tatsächlich bewegen
, viel näher Geschwindigkeit,
mit der sich unsere Füße tatsächlich bewegen
, viel näher Animation können Sie jetzt sehen, dass
wir uns der Geschwindigkeit,
mit der sich unsere Füße tatsächlich bewegen
, viel näher
kommen Es rutscht immer noch ein bisschen, also gehe ich wieder rein und diesen Wert
weiter an, bis mir gefällt, wie er mit
der eigentlichen Animation übereinstimmt , die wir abspielen müssen Jetzt haben wir die Fähigkeit entwickelt, uns
tatsächlich unter von uns geschaffenen
Hindernissen zu ducken Jetzt müssen wir nur noch
sicherstellen, dass wir
diese in einer Höhe erstellen , die für unseren Charakter
sinnvoll ist Wenn die Geschwindigkeit jetzt zu abrupt ist, können
wir das in
den Mischeinstellungen
der Übergänge anpassen . Mal
sehen, wie das geht Wir klicken einfach darauf und wir können sehen, dass eine Mischung
eine Dauer
von 0,2 Sekunden hat. Wir können diesen Wert
auf etwa 0,5 erhöhen, und wir können das
für beide Richtungen tun. Jetzt haben wir die
Zeit verdoppelt, die benötigt wird, um zwischen den einzelnen
Hockzuständen zwischen
Gehen und Laufen Jetzt möchte ich auf Play klicken. Wir können rennen und uns dann ducken. Es dauert jetzt viel länger, bis dieser
Übergang stattfindet, und hoffentlich ist
er nicht so erschütternd Eine letzte Einstellung, die wir anpassen können ist, dass die Kamera aufspringt,
wenn wir uns ducken, aus der Höhe
des Kopfes unseres Charakters
herausspringt und dann nach unten zum
Kopf unseres hockenden Charakters springt Wir können eine Verzögerung einschalten , dass die Kamera nahtloser übergeht. Öffnen wir den Bauplan des
Charakters und gehen zum Kameraboom und
zum Fenster mit der Registerkarte „
Komponenten“. Du musst mit dem
Spielen aufhören, damit wir
tatsächlich auf diese Funktionen zugreifen können , und wir können nach unten scrollen, um die Kameralag
zu aktivieren Wenn wir das nur aktivieren, funktionieren
die Standardeinstellungen ziemlich gut. Wir können diese
Einstellungen anpassen, wenn wir wollen, aber wir können auf Kompilieren
und Speichern klicken, und wir können weiterspielen und den neuen Kameralag testen. Jetzt funktioniert es viel
nahtloser
und es gibt auch eine kleine Verzögerung, und es gibt auch eine kleine wenn wir andere Dinge
tun,
aber es funktioniert ziemlich gut, aber es funktioniert ziemlich gut Problem mit der Crouch-Kamera zu
lösen In dieser Lektion haben wir
viel kompliziertes Material behandelt. Herzlichen Glückwunsch, dass
Sie mitgemacht haben. Sie haben gelernt, eine Eingabeaktion zu
ergreifen und sie tatsächlich umzusetzen. Wir haben das Animationsprogramm neu ausgerichtet,
und jetzt haben wir einen brandneuen Zustand
, in dem
sich unser Charakter befindet, nämlich in der Hocke. die
Animationen, die wir verwendet haben, gerne durch
andere Animationen ersetzen , die
du auf
dem Marktplatz oder anderswo findest dem Marktplatz Geh rein und optimiere
diese Werte wirklich. Weißt du, wir haben
die Überblendanimation
auf 0,2 bis 0,5 geändert , aber vielleicht gibt es dort einen
besseren Spielen Sie mit
diesen Werten herum und machen Sie es so nahtlos wie möglich.
Viel Spaß damit. Hab mich in der nächsten Lektion getroffen, wo wir die
Filmsequenz mit dem Start des
Spiels verbinden Filmsequenz mit dem Start des
Spiels
7. Verbinde Filmsequenzen mit Gameplay Start: Willkommen zurück. Ein wichtiger Hinweis zu dieser Lektion ist die Tatsache, dass
Sie sich
einen früheren Kurs
dieser Reihe angesehen haben sollten, in dem wir gelernt haben, unseren
Charakter in einer Levelsequenz zu animieren Wo ich hier anfange, ich
habe diese
Level-Sequenz bereits erstellt Wenn Sie nicht wissen, wie
man eine Level-Sequenz erstellt, Sie zu einem meiner
vorherigen Kurse in
dieser Reihe zurück, in denen wir gelernt haben wie man eine Level-Sequenz erstellt. In diesem Kurs dreht sich alles um
Charakteranimation. Jetzt, wo das geklärt ist, holen
wir uns
unsere Filmsequenz und
fügen sie nahtlos in das Gameplay ein Wenn wir unser Videospiel starten, können
wir uns tatsächlich
ein filmisches Playout ansehen und dann wird es
nahtlos ineinander übergehen , sodass der Spieler tatsächlich wieder die
Kontrolle über denselben Charakter übernehmen
und das Level beginnen
kann Kontrolle über denselben Charakter übernehmen
und das Level beginnen Lass uns wieder
eintauchen. Stellen wir uns vor , wenn wir in unserem Spiel auf „Play“ klicken, wollen
wir zuerst
ein Theaterstück im Kino sehen Ich habe eine Level-Sequenz erstellt, deren
Erstellung ich in der vorherigen Klasse besprochen habe In dieser Level-Sequenz kann
ich sie öffnen, um mir die Animation
anzusehen Ich klicke auf „
Levelsequenz öffnen“
und wir können
sofort sehen, dass es ein paar Probleme gibt. Zum einen ist mein Charakter
durch den Boden gegangen, und wenn ich die
Levelsequenz-Zeitleiste scrubbe, tatsächlich keine Animation abgespielt Wir können diese
Probleme eins nach dem anderen lösen
und diese Filmsequenz dann so binden, dass sie genau dann abgespielt wird, wenn wir
unser Spiel spielen , und sich dann nahtlos in die
Gameplay-Animation
einfügen Lassen Sie uns zunächst einige
dieser Probleme lösen. Der erste ist,
ich möchte,
dass der Charakter , den ich mitgebracht habe, dem Start des
Spielers entspricht. Ich kann den Spielerstart auswählen und
diese Attribute in
das Detailfenster für
den Transformationsort kopieren . Dann kann ich auf den
Charakter selbst klicken und
ihn dann einfügen, indem ich mit der rechten
Maustaste klicke und „Einfügen“ wähle. Jetzt muss ich nur noch
die richtige Ausrichtung finden. auf Player-Start klicke, kann
ich sehen, dass das ein Plus von 50 Ich muss nur
den Spieler auswählen und ebenfalls
positiv 50 sein. Jetzt entsprechen sie
der Ausrichtung und Richtung, in der der Spieler
tatsächlich beginnen wird, sowie dem Charakter der
Levelsequenz. Diese sollten übereinstimmen, wenn wir Filmsequenz mit dem Gameplay ein- und ausblenden Das andere Problem ist, dass ich die Animationswiedergabe nicht
sehen kann, und das liegt daran, dass wir
für diesen Charakter die Target-Lackierung
aktiviert haben für diesen Charakter die Target-Lackierung
aktiviert Nun, der Charakter, den
wir uns hier ansehen, ist eigentlich die
Spawn-Klassen-Version dieses Charakters Es ist eine Spawn-Version
unseres spielbaren Charakters unseres
Entwurfs In diesem Plan haben wir das Targeting auf Farben
aktiviert. Für die Sequenz
wollen wir das ausschalten. Auf diese Weise wird nicht versucht,
das Targeting auf
die Farbgebung abzuspielen, sondern wir versuchen,
die Animation in
der Sequenz abspielen zu lassen die Animation in
der In unserem Lackierungsziel
kann ich das abhaken, um das Bibliotheksziel für die
Spawn-Blueprint-Version
unseres Charakters zu verwenden Spawn-Blueprint-Version
unseres Charakters Ich kann das Häkchen entfernen
und dann sollten wir in der
Lage sein, es zu löschen und es zu sehen. Es wird aktualisiert und die
Animation abgespielt, in der wir den Spieler dazu
animieren, das Spiel tatsächlich zu
spielen Das war die
Wahl der Aufführung, die ich
für meinen Film getroffen habe . Deine
könnte anders sein Wie können wir diese
Levelsequenz abspielen und dann nahtlos in
unsere Gameplay-Animation einfügen? Wir wollen mit einer neuen Art von
Blueprint beginnen, der Level-Blueprint genannt wird Wir können auf diesen
Ebenen-Blueprint zugreifen, indem wir zu
diesem Baumsymbol hier oben gehen diesem Baumsymbol hier oben und es nach unten schalten, um den Ebenen-Blueprint zu
öffnen Normalerweise gibt es
hier in der Eventgrafik nichts, und hier können wir das Event „
Spiel beginnen
“ für dieses Level verwenden, um die Sequenz abzuspielen,
die Das erste, was ich tun möchte, ist tatsächlich eine
Level-Sequenz auszuwählen. Level Sequence Start
ist der Name von mir. Ich kann ihn aus dem
Outliner des Viewports auswählen. Wenn ich jetzt mit der rechten Maustaste klicke, kann
ich sagen, einen Verweis
auf die Ebenensequenz
erstellen Ohne diese Auswahl wäre
dies keine Option. Stellen Sie sicher, dass Sie
zuerst
die Level-Sequenz auswählen , bevor
Sie hier mit der rechten Maustaste klicken. wir nun
diesen Verweis auf
unsere Ebenensequenz erstellt haben , müssen
wir auf Ziehen klicken um den nächsten
Knoten zu finden, den wir benötigen Wenn Sie auf Knoten klicken und
sie wegziehen, bezieht sich dies auf den jeweiligen Wenn ich zu Beginn des Events versuchen würde,
das Gleiche zu finden, nach
dem wir hier
suchen, könnte
ich es nicht finden Du solltest
sicherstellen, dass du die richtigen Knoten
anklickst und von
ihnen wegziehst , um die richtigen zu finden, nach denen
wir suchen Ich möchte nach dem
Play-Sequenz-Player suchen, und wenn ich darauf klicke, erhalte
ich hier ein paar Notizen, und wir
können das herausziehen Jetzt haben wir eine Möglichkeit, wie unsere
Sequenz abgespielt wird, aber sie weiß nicht,
wie sie den Charakter, mit dem
wir spielen werden, tatsächlich besitzen soll, und der ist in unserer Sequenz. Wir brauchen einen Weg, um unseren Charakter zu
bekommen, und wir können mit der rechten Maustaste klicken
und sagen: Holt euch die Spielfigur Das heißt, wir holen uns die Spielfigur
des Charakters, der gerade erscheint und mit dem wir spielen Das ist das. Als Nächstes wollen wir ein Tag für
einen Charakter
erstellen, damit er weiß, welchen Charakter er besitzen
soll. Wir können sehr spezifisch
und manuell steuern, was diese
Level-Sequenz steuert. Durch erneutes Klicken und
Ziehen müssen
wir das wieder
abziehen , ich kann nach einer festgelegten
Bindung nach Tag-Knoten suchen Jetzt
müssen wir nur noch einige
dieser Dinge miteinander verbinden und auch dieses Tag hier
erstellen Ich werde diese erste
Sekunde minimieren und unser Tag
erstellen. Wenn ich mit der rechten Maustaste auf den Blueprint
klicke, kann ich hier ein Tag erstellen Der knifflige Teil von
Metahuman ist,
dass dieser Bauplan
aus mehreren Komponenten besteht Bauplan
aus mehreren Komponenten dass dieser Wir haben den Körper, wir haben
das Gesicht, und genau genommen ist das, zu filtern was wir zu
besitzen versuchen und
durch ein Etikett Dort ist die Animation. Wir wollen
das Tag tatsächlich zum Hauptteil hinzufügen. Ich klicke mit der rechten Maustaste
und füge das Tag zum Hauptteil hinzu. Ich drücke „Strg A“
und „Strg C“ , um alles auszuwählen, und kopiere, um
sicherzugehen, dass ich es falsch in
unseren Level-Blueprint
eintippe Ich drücke „Enter“, um das Tag
zu erstellen,
und wir können sehen, dass es
hier neben unserem Körper existiert Wenn ich auf „Jetzt abspielen“ drücken würde, können
wir sehen, dass die
Animation abgespielt wird, aber es erscheint ein weiterer Charakter Lassen Sie uns das beheben, indem das Tag auch zum
Charakter-Blueprint Ich werde das Tag auch
zum Blueprint selbst hinzufügen, und das sollte dieses Problem beheben Ich werde
den Level-Blueprint erneut öffnen
und dieses Bindungs-Tag, das wir
gerade erstellt haben, genau hier einfügen wir
gerade erstellt haben, genau hier Jetzt weiß es, an was es binden muss, basierend auf dem Schauspieler, den
wir ihm geben werden Der Schauspieler ist die Spielfigur, ich werde das verbinden Wir werden ein
kleines Array-Ding bekommen , das automatisch
erstellt wird Jetzt müssen wir nur noch
alles von links nach rechts verbinden . Wenn das Spiel anfängt zu spielen, setzen
wir dieses Tag und
spielen dann die Sequenz ab,
die auf diesem Tag
basiert Ich drücke dann auf
„Kompilieren“ und „Speichern“. Ich werde auch den
Sequencer schließen , weil Unreal
manchmal
verwirrt , ob
wir versuchen,
die Sequenz im Spiel
oder in der Timeline hier abzuspielen die Sequenz im Spiel
oder in der Timeline Ich werde das
aus Sicherheitsgründen schließen. Wir können sehen, dass es funktioniert hat, und
unsere Animation ist wieder da. Jetzt besteht das Problem darin, dass wir es
etwas reibungsloser in
diese inaktive Animation einfügen
müssen etwas reibungsloser in
diese inaktive Animation Ich gehe
zur Level-Sequenz und erstelle eine Mischung. Ich klicke auf
die Level-Sequenz und
öffne die Level-Sequenz. Wenn ich mir die Animation ansehe, gibt es dieses sehr
hinterhältige Attribut , das wir anpassen können, nämlich
die Mischung Wenn ich hier die
Maus niedrig halte, ändere
ich tatsächlich die
Länge der Animation selbst Aber eigentlich möchte
ich mir
die obere Ecke schnappen , wo wir dieses kleine,
winzige Dreieck sehen
können. Dadurch wird die tatsächliche
Mischung der Animation gesteuert. Anstatt zu springen,
haben wir etwa eine Sekunde Zeit, um Filmsequenz wieder in
die inaktive Animation am Ende unserer Filmsequenz wieder in
die inaktive Animation
überzugehen Da sie zum Beispiel nicht genau dort übereinstimmen, wo
sich die
Fußpositionen
unserer Charaktere befinden, werden
wir eine angenehme, sanfte Mischung zwischen
allen Abweichungen von der Impose
unserer Levelsequenz
und dem Beginn unserer
Gameplay-Animation im Leerlauf haben allen Abweichungen von der Impose unserer Levelsequenz
und dem Beginn unserer Gameplay-Animation im Leerlauf Wenn ich jetzt spiele, sollte ich sehen
können, wie meine Animation abgespielt wird, und wir sollten einen
reibungsloseren Übergang in den Leerlauf haben Das einzige Problem dabei ist, dass,
wenn ich versuche, etwas einzugeben
, die
Animation hier bekämpft wird Wenn ich versuche, mich zu bewegen, während es läuft, kämpft es quasi gegeneinander. Ich muss die Eingabe
für eine bestimmte Zeit deaktivieren , ich gehe zum
Level-Blueprint und werde die Eingabe deaktivieren Dann möchte ich es um eine bestimmte
Zeit
verzögern basierend auf der Länge
der Animation selbst Sagen wir drei Sekunden. Dann möchte ich wieder
eingeben können, sobald
das erledigt ist. Das letzte
Puzzleteil sagt ihm, was das Ziel und der
Spielercontroller sind. Wir müssen den
Spieler-Controller holen und dann von diesem
Spielercontroller runter, ich will den
kontrollierten Bauern finden Das Ziel wird der kontrollierte Bauer
sein. Ich kann darauf doppelklicken und bei gedrückter Ctrl-Taste darauf klicken, damit es
etwas übersichtlicher und der
Spielercontroller der ist den
wir uns hier geschnappt haben Drücken Sie die Strg-Taste, damit
ich die
Taste gedrückt halten und eine andere
Version davon hier aufrufen Doppelklicken, und jetzt
sollte das funktionieren, um
die Eingabe während
unserer Filmwiedergabe zu deaktivieren unserer Filmwiedergabe zu Wenn ich auf die Tastatur drücke, sollte
ich mich
erst bewegen können, wenn ich aus der Verzögerung
heraus blende Du kannst sehen, dass ich mich dabei ein
wenig verschoben Ich kann
die Verzögerung unseres Timers
hier einfach auf etwa
vier erhöhen und dann kompilieren und speichern, und das sollte verhindern, dass
wir unseren Charakter
während der Filmsequenz
bewegen können unseren Charakter
während der Filmsequenz
bewegen Ich halte W gedrückt und
nichts passiert,
und dann fängt es an, sich zu bewegen,
sobald die Filmsequenz fertig ist In dieser Lektion haben wir gelernt, wie einen nahtlosen Übergang von
einer Filmsequenz in den
Gameplay-Modus für unseren Wir haben gelernt, wie man
eine nahtlose Mischung schafft , indem wir einige
Werte angepasst haben. dir das gerne zu eigen machen und es zu einer nahtlosen Mischung von der Filmsequenz deiner Wahl bis zur ungenutzten
Animation unseres Charakters Wenn du
Probleme mit der nahtlosen
Mischung hast, stelle
einfach sicher, dass
dein Spielerstart und
deine Levelsequenz auf die gleiche Weise
ausgerichtet sind Treffen Sie mich in der nächsten Lektion, in der wir einen Starttimer
erstellen werden.
8. Erstelle einen Auslöser des Start-Timers: Willkommen zurück. In dieser Lektion werden
wir einen
Starttimer für unsere Spieler erstellen,
damit sie wissen, wie
erfolgreich sie in
dem Level sind , das wir für
sie entworfen haben. Lassen Sie uns wieder eintauchen. Lassen Sie uns hier schnell
eine Startlinie erstellen. Um die Startlinie zu erstellen, verwende
ich eine Triggerbox. Ich werde hier das Triggerfeld
oben auf der
Anzeigenschaltfläche eingeben . Ich möchte eine Triggerbox. Ich will kein Triggervolumen oder etwas anderes. Ich
will eine Triggerbox. Ich werde das verwenden und ich kann es einfach skalieren
und sicherstellen, dass es die
gesamte Startlinie hier abdeckt. Natürlich könnte ich hier auch
einige andere Elemente platzieren, dem Spieler
signalisieren , dass dies tatsächlich
die Startlinie ist Aber vorerst möchte ich nur
sichergehen, dass die Spielelemente drin sind Dann können wir jederzeit wieder
reingehen und einige Grafiken oder
statische Meshes hinzufügen , um
dem Spieler die funktionalen Spielelemente
klarer zu machen dem Spieler die funktionalen Spielelemente
klarer zu Ich werde sicherstellen, dass der Box-Trigger
diesen Bereich vollständig abdeckt und dass er hoch
genug ist, dass
du als Spieler nicht
darüber springen Wenn der Spieler das
passiert, lösen
wir diese Lautstärke aus. Fangen wir an, diese Logik
so
einzurichten , dass wir eine
Variable in Sekunden haben, und wir können einen kleinen Timer erstellen , der im Fenster angezeigt wird. Aber wir müssen eine
Variable für die Sekunden erstellen und sie auslösen, wenn wir dieses Volumen
durchlaufen. Um das zu tun, möchte ich den Spielmodus
bearbeiten. Der Spielmodus befindet sich direkt neben dem Bauplan für die dritte
Person und wird als
Third-Person-Spielmodus bezeichnet Ich kann darauf doppelklicken
und wir öffnen das Einstellungsfenster. Was wir wollen, ist der eigentliche
vollständige Blueprint-Editor. Wir müssen hier auf
diese Schaltfläche klicken, um auf den
Blueprint-Editor für den Spielmodus zuzugreifen Jetzt, wo wir das haben, können wir damit beginnen, unsere Variablen zu erstellen
, die wir benötigen Die erste ist Sekunden. Wir brauchen eine Methode,
um Zeit zu messen, und Sekunden sind natürlich die gebräuchlichste und
einfachste Methode, dies zu tun. Es gibt verschiedene
Arten von Variablen. Das ist etwas, das mit Informatik und
Mathematik zu tun hat. Wenn all diese Namen keinen
Sinn ergeben, mach
dir darüber keine Sorgen. Du kannst das entweder
nachschlagen oder mir einfach folgen. Wir wollen vorerst nur Float
wählen. Jetzt können wir ein benutzerdefiniertes Ereignis erstellen , das ausgelöst wird, sodass ich ein benutzerdefiniertes Ereignis hinzufügen kann, indem ich rechten Maustaste klicke und
sage: Benutzerdefiniertes Ereignis hinzufügen. Ich kann das Start-Timer nennen. Wenn dieses benutzerdefinierte
Ereignis ausgelöst wird, möchte
ich die Sekunden auf
Null setzen , da wir bei Null beginnen
müssen. Ich klicke auf
die Variable, ziehe sie heraus und
wähle „Sekunden festlegen“. Der Standardwert
ist bereits Null, also müssen wir das nur
verbinden. Jetzt benötige ich eine weitere
Variable, mit der ich
verfolgen kann , ob der Timer
läuft oder nicht. Auf diese Weise kann ich sie später verwenden,
unabhängig davon, ob wir verfolgen, ob
der Timer ein- oder ausgeschaltet ist, und ob wir beispielsweise
einen
Ziellinien-Timer anzeigen möchten . Ich werde eine weitere
Variable namens B timer running hinzufügen, und B steht für Boolean Wir möchten dies in einen booleschen Typ ändern, bei
dem es sich
um einen wahren oder falschen Wert handelt Wenn Sie mit der Maus über diese Variablen fahren, können Sie auch sehen, was diese Variablen sind Für dieses muss ich
nur wissen, läuft es oder
läuft es nicht Wenn wir den Timer starten, wird er laufen. Ich kann die
Timer-Laufvariable so einstellen, dass sie aktiviert ist, sodass ich sie verbinden
und dann dieses Kästchen ankreuzen kann. Wenn das
Start-Timer-Ereignis eintritt, wird die
Variable Sekunden auf Null gesetzt
und die Zeit
- oder Laufvariable auf ein gesetzt. Aber wie zählen wir die Sekunden? Wir brauchen eine Möglichkeit, dieser Variablen namens Sekunden Zeit
hinzuzufügen . Nun, wir können etwas verwenden, das als Event-Tick
bezeichnet wird. Wenn ich mit der rechten Maustaste klicke
und Event Tick sage, gibt es ein Ereignis, das bereits in die Unreal Engine
integriert Wenn ich mit der Maus darüber fahre,
siehst du das Ereignis, das als jedes Frame bezeichnet wird. Es ist eine einfache
Möglichkeit, einen zeitbasierten Wert
in der Unreal Engine zu ermitteln Ich möchte den
Startwert Null nehmen
und hinzufügen, sodass ich
klicken und ziehen und Hinzufügen wählen kann klicken und ziehen und Hinzufügen wählen Ich möchte die Delta-Sekunden hinzufügen, also die sich ändernde
Anzahl von Sekunden. Delta-Sekunden werden
in diesem Event-Tick-Knoten bereits aufgezeichnet. Ich kann darauf klicken und es hineinziehen, und jetzt fügen wir es
zu dieser Variablen hinzu. Aber jetzt müssen wir es einstellen,
nachdem wir es hinzugefügt haben. Ich kann darauf klicken und es
herausziehen und „Sekunden festlegen“ wählen. Sie können sehen, dass wir hier unten unsere
benutzerdefinierte Variable haben, und jetzt können wir die
Sekunden auf das Event-Häkchen setzen. Aber wir wollen das nicht die ganze Zeit
machen. Wir wollen das nur machen, wenn der
Timer tatsächlich läuft. Wir können diesen Wert verwenden, um von dieser Veranstaltungstechnik
abzuzweigen. Wir können Branch sagen,
und wir können sagen, wenn das stimmt, wenn der Timer
läuft, dann tu das. Stellen Sie dann die Anzahl der Sekunden auf der Grundlage des
Deltas im Event-Tick ein. Wenn das falsch ist, tu nichts. Jetzt haben wir unser
benutzerdefiniertes Start-Timer-Ereignis erstellt, das
die Anzahl der Sekunden aufzeichnet und außerdem
eine Variable festlegt , dass der
Timer läuft. Dann wird es
die Anzahl der Sekunden festlegen , die wir in
unserer Benutzeroberfläche aufrufen können, und diesen Wert tatsächlich verwenden, sodass er sich
dynamisch und prozedural auffüllt Lassen Sie uns
jetzt das UI-Element erstellen, das der Spieler sehen kann. Ich
klicke mit der rechten Maustaste und wähle Benutzeroberfläche,
Widget Blueprint Es gibt nur eine Option,
also wählen wir diese. Ich werde
dieses Mal Widget nennen. Darin haben wir eine Leinwand
, zu der wir Text hinzufügen können,
um Dinge auf
dem Bildschirm für unsere Spieler anzuzeigen ,
wie den Gesundheitszustand oder in
unserem Fall diesen Timer. Das erste, was ich tun
muss, ist eine Leinwand hinzuzufügen. Jetzt kann ich sehen, welche Form mein Fenster hat, zu dem ich Dinge
hinzufüge. Ich kann darauf klicken und es hineinziehen, und jetzt können wir sehen, wie der
Rand unserer Szene aussieht. Jetzt kann ich anfangen und einfach
anfangen, Text hineinzuziehen. In diesem Textblock
möchte ich diesen Timer aufrufen, ein Leerzeichen und einen Doppelpunkt
drücken Jetzt haben wir unseren Timer. Ich werde das
oben links anbringen. Du kannst es in die
Mitte stellen, wo immer du willst. Ich werde
noch einen
Text hinzufügen, der unsere Sekunden
sein wird. Das ist die Variable, die
wir gerade erstellt haben. Ich werde diesen
Text an diese Variable binden. In diesem kleinen Drop-down-Menü kann
ich Bindung erstellen auswählen. Ich werde die
Variable an diesen Text binden. Jetzt bekommen wir diese
Funktion, die fragt, was möchten Sie binden? Wir brauchen den Spielmodus, denn
dort
lebt die Variable, die Sekunden sind variabel. Ich kann das anklicken und herausziehen
und sagen, in den
Third-Person-Spielmodus werfen. Wir versuchen im Grunde
nur,
diesen Bauplan für den
Third-Person-Spielmodus zu bekommen , und sobald wir ihn haben,
können wir ihm einfach sagen, ja, den Spielmodus
bekommen,
und jetzt können wir auf die Variable zugreifen, indem wir von hier aus klicken
und Sekunden abrufen wählen Jetzt kannst du sehen, dass wir
unsere Variable hier haben, und wir können sie anklicken und
sie in den Text ziehen Es wird den
Float-Wert in eine Zeichenfolge umwandeln, sodass diese als Text verwendet werden kann. Ich werde kompilieren und speichern. Ich gehe zurück
und kompiliere und speichere
und stelle sicher, dass alles eingerichtet ist. Ich muss den
Timer zeigen, den wir gemacht haben. Ich muss es auf
dem Bildschirm zeigen. Ich kann hier oben auf die
Designer-Schaltfläche klicken
und zurückgehen und alle
Anpassungen vornehmen, die ich vornehmen muss, aber wir brauchen eine Möglichkeit, es
tatsächlich auf dem Bildschirm anzuzeigen. Wir können das im
Charakter-Blueprint machen. Ich doppelklicke auf
den Charakter-Blueprint. Wenn das Spiel
auf Event Begin Play beginnt, passiert
all das Zeug Ich möchte nur
etwas hinzufügen. Ich möchte sagen, wann das beginnt, erstelle
auch das Widget
und zeige es an. Ich kann darauf klicken und
es herausziehen und
Widget, Widget erstellen wählen. Ich kann das Widget
aus dieser Klasse auswählen
und wir können versuchen, unser Timer-Widget
hier zu finden . Jetzt haben wir es erstellt. Jetzt möchte ich
es im Viewport anzeigen. Ich kann darauf klicken und es herausziehen und sagen, zum Viewport hinzufügen Jetzt muss ich wissen, was
zum Viewport hinzugefügt werden soll, und wir können
diesen Wert einfach hier zurückgeben Ich kann kompilieren und speichern. Der letzte Schritt besteht darin
,
die Triggerbox mit
unserem benutzerdefinierten Ereignis zu verbinden die Triggerbox mit
unserem benutzerdefinierten Ereignis zu , das wir im Spielmodus
erstellt haben. Wir brauchen eine Möglichkeit, all das
auszulösen, damit ich in
den Level-Blueprint springen
und ein
benutzerdefiniertes Ereignis erstellen kann, das
auf der von uns erstellten Triggerbox
basiert das
auf der von uns erstellten Triggerbox Am einfachsten ist es, wenn ich zuerst diese Triggerbox
auswähle und dann mit der rechten Maustaste darauf klicke, erhalte
ich Ereignis
für Triggerbox 0 hinzufügen Es weiß, welche
Triggerbox ich ausgewählt habe, und ich möchte
ein Kollisionsereignis hinzufügen. Add on Actor Begin
Overlap ist das, was wir wollen, und wenn wir beginnen, dieses Triggerfeld zu
überlappen, tun wir etwas, und
wir werden ihm sagen, was zu tun ist. Wenn ihr euch erinnert, findet
unser benutzerdefiniertes Event in unserem Third-Person-Spielmodus statt. Wir müssen diesen
Third-Person-Spielmodus aufrufen , um auf dieses benutzerdefinierte Event zugreifen zu können. Ich klicke und
ziehe den Spielmodus heraus und sage, Third-Person-Spielmodus, und wir werden einfach diesen Modus wechseln und den Spielmodus aufrufen. Dann möchte ich nur noch dieses benutzerdefinierte Ereignis
aufrufen, damit ich anfangen kann, den Starttimer für das
benutzerdefinierte Ereignis einzugeben. Wir können es einfach anklicken und als Ziel
ziehen, kompilieren
und speichern. Jetzt haben wir alles angeschlossen
, was wir zum Anschließen benötigen. Wir haben ein benutzerdefiniertes Ereignis erstellt
, das die Uhrzeit verfolgt. Wir haben ein
UI-Element erstellt und
diese benutzerdefinierte
Sekundenvariable mit diesem Textfeld verbunden. Dann haben wir zu Beginn
des Spiels
ein
Alt-to-Viewport-Widget erstellt Beginn
des Spiels
ein
Alt-to-Viewport-Widget Wir haben all
das mit einer Triggerbox verbunden, sodass
unser benutzerdefiniertes Event aktiviert wird das wir im
Third-Person-Spielmodus erstellt haben Das funktioniert nicht,
weil wir tatsächlich alles zum
Third-Person-Blueprint
hinzugefügt haben,
nicht zu unserem Metahuman-Blueprint Lassen Sie uns das, was wir
getan haben, kopieren und in unseren metahumanen Bauplan einfügen getan Wenn Sie einen
benutzerdefinierten Metahuman verwenden, müssen
Sie diesen Schritt in Ihrem benutzerdefinierten Metahuman-Blueprint ausführen . Ich werde zu meinen Metahumanen
übergehen und den Bauplan öffnen. Ich werde das einfach
kopieren und
auf Begin Play einfügen, das hier auf Begin Play einfügen, das Ich kann sehen,
dass hier Begin Play stattfindet, und ich möchte das alles hier kopieren und
einfügen. Jetzt kompiliere und speichere ich, und das sollte für
unseren benutzerdefinierten Charakter funktionieren. Jetzt können Sie sehen, dass wir den Timer tatsächlich
schon
oben links haben . Wir
wissen, dass es funktioniert. Es zeigt das Display. Wenn ich hier rumrenne, tut
es nichts, aber sobald ich unsere
unsichtbare Auslöselautstärke überschritten habe, sollte
es anfangen, eine Uhrzeit
anzuzeigen. Du kannst sehen, dass wir
die Zeit jetzt in unserem Spiel verfolgen. Tolle Arbeit, diese
Lektion zu überstehen. Wir haben viel abgedeckt. Wir haben an ein paar
verschiedenen Bauplänen gearbeitet und langsam jede dieser Komponenten
miteinander verbunden Wir haben ein benutzerdefiniertes Ereignis erstellt, wir haben eine benutzerdefinierte Variable erstellt Wir haben diese Variable erweitert,
damit wir die Zeit verfolgen konnten. Dann haben wir unsere eigene Benutzeroberfläche erstellt, sodass der Spieler das alles tatsächlich
sehen kann, und dann verwenden wir die
Triggerbox, um all das Geschehen
so auszulösen, dass es für den Spieler sichtbar ist. Hier gibt es eine Menge
Informationen. Nehmen Sie sich einfach Zeit
und greifen Sie bei Bedarf auf diese
Lektion zurück. Triff mich in der nächsten Lektion
, in der wir ein Hindernis für unseren
Charakter
schaffen werden, das es zu überwinden gilt.
9. Erstelle Hindernisse mit Game Logic: Willkommen zurück. In dieser Lektion werden
wir
ein Hindernis für
unseren spielbaren Charakter schaffen , das es
zu überwinden gilt diesem Hindernis handelt es sich
um eine rotierende Kiste,
sodass, wenn der Charakter
tatsächlich darauf stößt, Physik von
Rag Dall
auf unseren Charakter angeregt wird und
er dann mit dem Level neu startet Es ist wirklich nur ein
gefährliches Hindernis oder Herausforderung für unseren Spieler, unser Level interessanter zu gestalten Wenn wir unser Projekt
wieder öffnen, springen wir rein. Lassen Sie uns zunächst
das Hindernis schaffen. Ich werde
ein neues Hindernis
in meinem Metahuman-Blueprint-Bereich erstellen in meinem Metahuman-Blueprint-Bereich Wenn ich ein
paar Hindernisse bauen würde, könnte
ich so organisiert werden, dass ich einen Ordner für mich selbst
erstellen Aber im Moment mache
ich einfach einen neuen Blueprint-Kurs Ich klicke mit der rechten Maustaste
in den Inhaltsbrowser, überprüfe die Blueprint-Klasse, wähle den Darsteller aus
und
nenne das Ganze BP Underscore Ich doppelklicke auf
diesen leeren Blueprint. Darin haben wir
diese leere Leinwand
, wir
unser Hindernis schaffen können Ich füge
ein statisches Netz hinzu,
indem ich auf Hinzufügen klicke und Statisches Netz
eintippe. Ich wähle Statisches Netz und suche nach einem
Hindernis für unseren Mesh-Typ, das ich
zu unserem Blueprint hinzufügen möchte In den VR-Starter-Inhalten gibt es ein einfaches Mesh
namens SM Cube 03. Da es rote Konturen hat, denke
ich, dass es für
unser rotierendes Objekt hier gut funktionieren wird . Ich werde
dieses statische Netz verwenden. Jetzt möchte ich eine rotierende
Bewegungskomponente hinzufügen. Wenn ich auf Simulieren drücke, können
wir sehen, dass
es sich zwar dreht, aber es dreht sich in die falsche Richtung und
es dreht sich sehr schnell. Ich kann einfach eine andere
Achse wählen, um sie zu drehen. Ich wähle statisches
Netz und drücke E.
Ich kann sehen, dass es
entweder Y oder
X sein wird und dass ich
es in einer dieser beiden Achsen drehen möchte. Ich gehe zur Komponente der
rotierenden Bewegung über. Anstelle von Z
möchte ich das auf Null setzen. Ich möchte nicht, dass es sich in Z dreht, und ich möchte, dass es sich in X oder Y dreht. Ich möchte es langsamer drehen Ich werde einen
Wert unter 180 wählen. Ich möchte 90 wählen, und wenn ich jetzt auf Simulieren drücke, kann
ich sehen, dass es sich tatsächlich in eine andere Richtung
dreht, was
für dieses Objekt wünschenswerter ist. Ich werde die Simulation
ausschalten. Jetzt möchte ich
ein Triggervolumen erzeugen , das der Größe
dieses Hindernisses entspricht. Ich werde
eine Box-Kollision hinzufügen. Bei dieser Box-Kollision werde
ich sie
vergrößern und sie an die Größe der Box anpassen
. Ich drücke
R auf meiner Tastatur, um die Tastenkombination für
den Skalenmanipulator
aufzurufen Jetzt möchte ich es etwas
größer machen als die Abmessungen
des statischen Meshs, damit ich
sichergehen kann , dass der Spieler tatsächlich mit dieser
Box kollidieren kann Ich werde kompilieren und speichern, und ich werde auf
diesen Blueprint klicken und ihn direkt
in unsere Szene ziehen diesen Blueprint klicken und ihn direkt
in unsere Ich drehe ihn nach oben und drücke auf Play Jetzt kann ich sehen, dass ich ein
rotierendes Objekt in meiner Szene habe, und wenn ich
darauf stoße, passiert nichts. Ich kann einfach damit kollidieren und ich werde in keiner Weise verletzt Ich möchte eigentlich
ein Ragdoll-Event auslösen. Mein Charakter wird einfach
schlaff und
stirbt und Stoffpuppen, wenn
er in diese Kiste läuft Wir müssen
diese Spiellogik entwickeln und
sie mit diesem Hindernis verbinden Wenn ich es auf die
Seite legen möchte, kann
ich es auch einfach nach unten
drehen, indem ich E auf meiner Tastatur drücke und es um 90 Grad
drehe. Ich kann dieses Objekt auch vergrößern. Wenn ich möchte, dass diese Skala
es länger macht, kann
ich das tun und
R auf meiner Tastatur drücken und skalieren und auch W, um es näher an den Boden
heranzuführen. Auf diese Weise
blockiert es den Pfad. Lassen Sie uns die
Spiellogik für einen Charakter für
Rag Dall erstellen, indem wir
uns seinen Bauplan ansehen Wenn du einen Blueprint-Charakter aus der dritten
Person verwendest, gehst
du zu diesem Bauplan und tust alles, was
wir tun Aber ich verwende einen
benutzerdefinierten Metahuman, also werde ich hier reinspringen
und dieses benutzerdefinierte Ereignis und Wir wollen, dass unser Charakter
Rag Dall ist, also nenne ich mein
benutzerdefiniertes Event Ich klicke mit der rechten Maustaste auf das Blueprint-Ereignisdiagramm und
fange an, Benutzerdefiniertes Ereignis einzugeben Ich werde ein benutzerdefiniertes Ereignis hinzufügen und es Rag Dall-Ereignis nennen Für dieses benutzerdefinierte Ereignis möchte ich die Physik
dieses Charakters
simulieren Ich klicke darauf
und ziehe es weg und fange an, simulieren zu tippen. Ich möchte die
Simulationsphysik auf das Mesh setzen. Ich werde „
Physik simulieren“ auf das Mesh setzen. Wir können sehen, dass es bereits
abgebildet ist. Wenn ich die falsche ausgewählt habe
oder sie später
ändern möchte, kann
ich jederzeit auf
die Komponente klicken, sie hineinziehen und sie dann
dem Ziel zuordnen Ich werde „
Simulieren“ aktivieren, weil wir
diesen Knoten aus diesem Grund erstellen , um ihn zu simulieren. Dann möchte ich das Level
neu starten. Ich werde zuerst eine
Verzögerung erzeugen, weil ich möchte, dass die Simulation einige Sekunden lang
stattfindet. Ich werde das hinauszögern, damit wir sehen
können, wie der Effekt tatsächlich eintritt,
um vielleicht 2 Sekunden. Dann möchte ich
das Level wieder laden. Ich möchte meinen
aktuellen Levelnamen abrufen. Ich gebe den Namen des
aktuellen Levels abrufen ein
und danach
möchte ich dieses Level mit seinem Namen laden. Ich werde Level
öffnen dem Namen nach sagen. Dann kann ich hier einfach
den Rückgabewert eingeben. Es wird einen kleinen
Konnektor-Konvertierungsknoten für uns erstellen. Jetzt haben wir ein benutzerdefiniertes Ereignis
, das die Physik
unseres Meshs auslöst und das nächste
Ereignis um einige Sekunden verzögert Dann wird wieder dasselbe
Level geladen, in dem wir uns befinden. Wir fangen im Grunde von vorne an, nachdem
wir mit der Box kollidiert sind. Aber wir müssen
diese Beziehung aufbauen. Wir haben nur
das benutzerdefinierte Ereignis erstellt, aber momentan
löst es nichts Nun gibt es noch eine letzte
Sache, die wir unter
Mesh tun möchten , ist, zum
Kollisionsbereich herunterzugehen, und im Kollisionsbereich möchten
wir sicherstellen, dass wir den Physik-Akteur
wählen Standardmäßig
ist dies Character Mesh, und wir möchten
dies in Physics actor ändern. Jetzt, wo wir das getan haben, können
wir kompilieren und speichern. Jetzt können wir
dieses benutzerdefinierte Ereignis mit
dem Hindernis selbst verbinden . Ich öffne den
Blueprint für das Hindernis,
indem ich die Strg-Leertaste drücke und dann den Blueprint öffne In diesem Blueprint möchte
ich sagen, dass die Überschneidung zwischen den Akteuren Ereignisses beginnt Aber ich möchte das speziell für
die Box tun. Ich klicke mit der rechten Maustaste und sage bei Ereignis auf Komponente, Überlappung
beginnen. Ich möchte mir das benutzerdefinierte
Event schnappen, das wir gerade erstellt haben und das in der
Blaupause meines Metamenschen oder Ihres Charakters aus der dritten Person enthalten ist,
falls Sie Wir wollen darauf casten, damit wir das benutzerdefinierte Ereignis bekommen
können. Ich gebe einfach
unseren Darsteller an und nenne
das benutzerdefinierte Event. Ich erinnere mich, dass ich es Rag Dall genannt habe, also werde ich Rag Dall
eingeben, und hier haben wir
das benutzerdefinierte Ereignis Das Ziel hier ist das eigene Ziel, für
das wir casten. Jetzt kann ich kompilieren
und speichern und wir können das testen. Ich muss nur auf diese Barriere
stoßen und sie sollte den Lappen
Dall auslösen, und du kannst es sehen Es hat funktioniert. Es hat einen Rag-Dall-Effekt erzeugt, die Physik
simuliert
und das Level neu gestartet Jetzt bin ich wieder am Anfang. Aber es gab ein
paar seltsame Dinge. Die Kapsel, die
den Charakter enthält,
kollidierte immer noch mit diesem Hindernis,
nachdem der Rag Dall ausgelöst wurde kollidierte immer noch mit diesem Hindernis , und es bewegt
meine Kamera Dort wird es ein
bisschen zu chaotisch. Was wir tun können, ist
zum Plan für
dieses Bag Dall-Event zurückzukehren zum Plan für
dieses Bag Dall-Event und ein
paar weitere Dinge hinzuzufügen Nachdem wir mit der
Simulation der Physik begonnen haben, zerstören
wir die
Kapselkomponente, damit sie nicht mehr mit dem Hindernis kollidiert Ich klicke und
ziehe von hier weg und fange an Destroy Component
einzugeben und dann die Kapselkomponente auszuwählen Das ist, wenn wir uns das Darstellungsfenster
ansehen,
die Kapselkomponente dieser Drahtkäfig,
und das
ist es, was
mit
dem Hindernis kollidiert , nachdem
wir schon Rag Dall gesehen haben Wir wollen das
ausschalten, nachdem wir
ausgelöst haben , um
den Rag Dall
auf dem Netz des Charakters zu simulieren auf dem Netz des Wir wollen
die Kapselkomponente ausschalten, damit sie
nach unserem Tod nicht mehr
mit dem Hindernis kollidiert nach unserem Tod nicht mehr
mit dem Hindernis Wir haben diese Komponente zerstört nachdem wir
die Physik simuliert haben, wir haben den nächsten
Schritt um 2 Sekunden verzögert, sodass wir sehen können, wie
die Physik stattfindet, und dann möchte ich wieder einen
etwas besseren Todesübergang
in die erste Ebene schaffen etwas besseren Todesübergang in die erste Ebene schaffen Lassen Sie uns eine Kameraüberblendung erstellen. Aber dafür können wir nicht einfach
klicken und die Maus von hier wegziehen. Wir müssen zuerst
den Kameramanager aufrufen und ihn anklicken und ziehen. Wir brauchen zuerst
den Kameramanager. Jetzt kann ich darauf klicken und
wegziehen
und sagen , Kameraüberblendung starten. Das steht uns nur
zur Verfügung, wenn wir im
Player-Kamera-Manager klicken und die Maus herausziehen Die Kamera beginnt zu
verblassen, sobald die Verzögerung
eingetreten ist und kurz bevor
unser Level wieder geladen wird Ich werde das in den Prozess
integrieren. Wir wollen sagen, dass die Farbe
Rot
verblasst ist, weil wir gestorben sind. Wir machen es ein bisschen dunkelrot, nur damit wir wissen, dass es verblasst,
weil wir gestorben sind Ich möchte, dass die Dauer mehr
als 2 Sekunden beträgt. Sie können mit diesem
Wert spielen und ihn verlängern, etwa 5 Sekunden. Ich möchte 0 -1 verblassen lassen. Ich möchte den Effekt
komplett einschalten, was einer ist. Ich werde hier einen eingeben. Nun, um zu sehen, wie das passiert, um zu sehen, wie dieses Verblassen passiert, brauchen
wir hier eine weitere Verzögerung. Ich werde diese Verzögerung kopieren und
einfügen, und ich werde sie hier
einfügen, damit wir sehen können, wie
das Fade stattfindet. Sie möchten, dass diese
Verzögerung so lang ist, wie der Übergang und das
Ausblenden der Kamera stattfinden sollten. Jetzt haben wir ein benutzerdefiniertes Ereignis. Es wird aufgerufen, wenn
wir mit der Box kollidieren. Es wird die Physik
anregen, es wird die Kapsel
zerstören, sodass wir nicht mehr mit
dem Hindernis selbst
kollidieren , nachdem
wir bereits gestorben sind, und wir werden das ein paar Sekunden lang
beobachten können ,
und dann werden wir anfangen, die Kamera auszustatten und
das Level neu
zu laden, in
dem wir uns Ich werde diese Änderungen kompilieren
und speichern und testen. Das hat funktioniert, wir
kollidieren nicht mehr mit dem Hindernis nachdem die Simulation
ausgelöst wurde und das Level neu Jetzt, wo wir dieses
Hindernis für unseren Spieler geschaffen
haben, können wir diesen
Plan, die unterstrichene
Gefahr oder wie auch immer Sie
ihn nennen, als Ihren eigenen Plan nehmen , und wir würden ihn einfach
anklicken und ihn so oft
in unsere Szene ziehen , wie Wir müssen
dieses Hindernis nicht immer
wieder in den Bauplänen erstellen dieses Hindernis nicht immer
wieder in den Bauplänen Wir haben es einmal geschafft
und können es immer wieder verwenden, wo immer
wir es in unserem Level haben wollen Ein Schritt, den du
sicherstellen solltest, besteht darin,
die Box-Kollision größer zu machen als das Hindernis selbst. Andernfalls kann der Spieler
nie wirklich mit
ihr kollidieren , weil sie sich
innerhalb des Hindernisses Wir wollen, dass die
Box-Kollision größer ist als das Hindernis, damit wir all
diese Ereignisse
tatsächlich auslösen können all
diese Ereignisse
tatsächlich auslösen Spiele damit herum, Hindernisse in verschiedenen
Formen und Größen, wähle verschiedene statische Maschen
und platziere sie
rund um dein Level in der nächsten Lektion eine andere Möglichkeit zeigen, Ich werde dir in der nächsten Lektion eine andere Möglichkeit zeigen, wie
wir diesen Bauplan verwenden können
10. Gefahrenbereiche abschließen: Willkommen zurück. In dieser Lektion nehmen
wir diesen
Hindernisplan und fügen ihm
eine Explosion hinzu Wir werden auch einen Sound hinzufügen und ihn dann für einen anderen Zweck verwenden,
sodass wir ihn an mehreren Stellen
in unserem Level verwenden können.
Lass uns anfangen Also werde ich etwas
Platz für dieses Ragdoll-Event schaffen, und ich werde
klicken und ziehen
und anfangen,
Spawn-Emitter einzugeben Ich sage „Spawn-Emitter“ zu „Attached
“. Der angehängte Teil wird
die eigentliche Kapselkomponente sein. Also werden wir es
an der Kapselkomponente anbringen. Aber wir müssen das tun,
bevor es zerstört wird. Also werde ich das einfach eine Stufe weiter vorantreiben. Ich kann also sagen,
an diese Komponente anhängen. Was wir ausstoßen wollen, ist eine Aktienexplosion, die tatsächlich mit Unreal Engine
einhergeht Also werden wir an Stelle der
Kapselkomponente
eine Explosion Ich möchte auch ein
Geräusch mit der Explosion abspielen. Ich werde das nach
unten verschieben und herausziehen und
sagen, Sound 2D abspielen. Ich kann mir eine Vorschau dieser Sounds ansehen,
indem ich die Play-Taste drücke. Suchen wir also nach einer Explosion. All diese Geräusche sind
mit der Unreal Engine ausgestattet. Also werde ich
die Explosionsversion wählen und ich werde
kompilieren und speichern Wenn wir jetzt auf dieses Objekt
stoßen, sollten
wir eine Explosion sehen
und ein Geräusch hören. Wenn wir nun den gleichen Effekt für unser Feuerhindernis
oder ein anderes Hindernis haben
wollen, brauchen wir kein statisches Netz. Wir können einen neuen
Hindernisplan erstellen. Also klicke ich mit der rechten Maustaste
und dupliziere das und nenne
es Gefahrenauslöser Denn was wir tatsächlich
tun können , ist einfach
das statische Netz zu entfernen und wir können einfach
diese Trigger-Komponente haben. Wir können das Rotieren ausschalten , weil wir es nicht zum Rotieren
benötigen. Ich kann die Waage einfach neu einstellen, sodass wir, wenn wir
diese Gefahrenkomponente
einsetzen, ihre Größe
an unsere Bedürfnisse anpassen können Ich klicke darauf und
ziehe es in die Feuerstelle, und ich werde es
so skalieren , dass es
die gesamte Feuerstelle abdeckt Aber ich möchte es
niedrig genug halten, damit es nicht
über die Box selbst hinausgeht. Ich werde das nur ein bisschen nach unten verschieben
. Jetzt werde ich
diese Auslöselautstärke testen. So erschaffst du zu Beginn deines Spiels
Hindernisse und respawnst In dieser Lektion haben wir sowohl für unser Hindernis
als auch für den Sound
eine Explosion erzeugt für unser Hindernis
als auch für den Sound
eine Explosion und diesen
Hindernis-Blueprint auf unterschiedliche Weise wiederverwendet, sodass
wir
ihn in unserem gesamten Level einsetzen können. Das ist die nächste Lektion, in der wir
das ganze Videospiel zusammennehmen und es so
verpacken, dass
wir es mit unseren Freunden teilen können
11. Verpacke und teile dein Spiel: Willkommen zurück. In dieser Lektion erfahren
wir,
wie wir
das Videospiel, das du gemacht hast, verpacken
und mit Freunden teilen können . Auf diese Weise kannst du herausfinden, wer der schnellste Spieler in deinem
Videospiel ist. Lass uns beginnen. Zuallererst
wollen wir sicherstellen, dass das Spiel
das richtige Level
für den Spieler lädt ,
wenn er es öffnet. Das müssen wir in
den Projekteinstellungen einstellen. Gehen wir zur Bearbeitung der
Projekteinstellungen und in Karten und Modi können
wir die Standardkarte des
Spiels auswählen. Derzeit ist sie auf die
standardmäßige offene Weltkarte eingestellt, was nicht das Level ist
, das wir erstellt haben. Das Level, das ich erstellt habe,
heißt New Landscape 01. Das Level, das du wählst, wird
so sein , wie du es genannt hast. Ich muss nur dieses Menü öffnen und
auf mein
Level klicken, das ich erstellt habe. Wenn wir jetzt unser Spiel zusammenstellen, wird
es tatsächlich die richtige Map
laden wenn wir anfangen, das Spiel zu spielen. Ich werde das einfach
schließen und damit beginnen, unser
Spiel so zu verpacken, dass unsere Freunde es spielen Wir können zu den
Plattformen gehen und
die Plattform auswählen , auf der wir veröffentlichen
möchten. Ich werde Windows und das
Paketprojekt wählen . Aber
wir bekommen hier einen Fehler. Das liegt daran, dass wir das
STK für Windows nicht installiert haben, also werde ich auf Abbrechen klicken Wenn ich zu
Plattformen und Windows zurückkehre und mir hier
ganz unten umsehe, kann
ich sehen, welche
Versionen zulässig sind Also muss ich
nur Windows,
STK googeln und das Installationsprogramm herunterladen
und das STK für Windows installieren wird eine Weile dauern, Installation wird eine Weile dauern, und
wenn es fertig ist, können
Sie wieder in die
Realität zurückkehren und zu den Plattformen wechseln Klicken Sie dann
zuerst auf
Plattformstatus aktualisieren , sofern Sie Unreal nicht bereits
geschlossen und erneut geöffnet haben Jetzt sollte es aktualisiert werden
und
das von
uns installierte STK-Paket verwenden können das von
uns installierte STK-Paket Jetzt gehen wir zu Plattformen, Windows und dem Paketprojekt Jetzt erhalten wir keine Fehlermeldung
und es werden nur gefragt, wo
wir
dieses Paketprojekt speichern möchten. Wir wurden mit
einem fehlgeschlagenen Fehler begrüßt, und ich kann das
Ausgabeprotokoll öffnen und sehen, warum es fehlgeschlagen ist Es sieht so aus, als ob uns immer noch eine Komponente
fehlt
, nämlich das Visual Studio 2022 Ich werde es online finden
und installieren und es erneut versuchen. Wenn Ihr Installationsprogramm bei Null hängen
bleibt, können
Sie den Vorgang abbrechen und
sicherstellen, dass Sie es als
Administrator ausführen , indem Sie mit der rechten Maustaste klicken und Als Administrator ausführen auswählen. Stellen Sie sicher, dass Sie auch
die C++-Inhalte in die Installation
einbeziehen , also kreuzen Sie dieses Kästchen an. Jetzt können wir zurück
zu Plattformen und
Windows springen und
das Paketprojekt erneut versuchen. Wenn wir diese Warnung erhalten,
möchten wir sicherstellen
, dass wir den Zugriff zulassen. Dieser Schritt wird eine Weile
dauern, also lass ihn einfach laufen. Das
Packen unseres Spiels ist abgeschlossen, also haben wir hier einen
Windows-Ordner, und in diesem Ordner können
wir das
Unreal Engine-Symbol sehen Alles, was ich tun muss, um
unser Spiel zu spielen, ist auf
dieses Unreal Engine-Symbol zu klicken , das
eine ausführbare Anwendung ist Jetzt haben wir unser Spiel
und es kann losgehen. Wenn wir unser Spiel beenden
wollen, müssen wir
nur noch die Tilda-Taste
drücken,
die sich auf den
meisten Tastaturen oben links direkt
unter der Escape-Taste befindet , und wir können
beenden eingeben und „Enter“ drücken Wenn du dieses
Spiel mit deinen Freunden teilen möchtest, kannst
du alles anklicken und
ziehen,
und in Windows kannst du mit der
rechten Maustaste darauf klicken und S zwei
komprimierte Zip-Ordner
wählen Dadurch wird eine
Datei erstellt, die du mit deinen Freunden
teilen kannst , damit sie sie
komprimieren können. Denken Sie daran, dass dies eine ziemlich große Datei sein kann. Ich glaube, meins ist
ungefähr 4 Gigabyte groß. Sie sollten einen
Dateiübertragungsdienst wie
wetransfer.com oder Google Drive verwenden , um ihn mit Ihren Freunden zu teilen In dieser Lektion haben wir erklärt, wie
wir das Spiel, das wir entwickelt haben, tatsächlich so
verpacken können, dass wir
es mit unseren Freunden teilen können Es gibt zwei Dinge, die wir für Windows installieren
mussten. Wir hatten sowohl das Windows STK als
auch das Visual Studio. Möglicherweise haben Sie einige dieser
Sachen bereits installiert wenn Sie ein großer
Computerprogrammierer sind, aber ich nicht, also
musste ich es installieren Diese dauern eine Weile, meins blieb lange Zeit bei
0% hängen,
also versuche einfach, Geduld
mit diesen Installationen zu Denken Sie daran, dass die Dateigröße für diese ziemlich groß
sein kann. Sie sollten einen
Dateiübertragungsdienst finden , der
große Dateigrößen ermöglicht. Ich benutze gerne transfer.com oder Google Drive und
da hast du es Du hast dein Spiel, du
kannst es herunterladen und teilen.
12. Schlussgedanken: Herzlichen Glückwunsch zum
Abschluss dieses Kurses. Falls du alle Kurse
der Serie verfolgt hast und noch mehr herzlichen Glückwunsch , denn es ist eine Menge Stoff. Jetzt, wo du diesen Kurs
abgeschlossen hast, verfügst du über unglaubliche Fähigkeiten. Wir haben gelernt, wie man einer
Zustandsmaschine einen Status hinzufügt. Wir haben gelernt, Hindernisse für
unsere Charaktere zu
schaffen und ihre Bewegungen in
einem Level
zeitlich zu planen, sodass wir
ein wettbewerbsfähiges Videospiel entwickeln ein wettbewerbsfähiges Videospiel und
es sogar mit unseren Freunden teilen können. Ich würde gerne sehen, was du gemacht hast. Bitte nimm ein
Screenshot-Video von deinem Spiel auf und teile es
in der Projektgalerie. Wenn du daran interessiert
bist, noch weiter zu
gehen, spiel dein
Lieblingsvideospiel. Finden Sie heraus, welche Funktionen
und Komponenten
in diesen enthalten sind, und versuchen Sie,
sie in Ihrem eigenen Videospiel nachzubilden Betrachten Sie nun
die Komplexität Ihrer Lieblingsvideospiele
und überlegen Sie, wie Sie
Ihr Videospiel auf
die nächste Stufe heben können Ihr Videospiel auf
die Du könntest deinem Charakter ein
Jetpack hinzufügen. Du könntest ein feindliches System,
ein Kampfsystem, ein
Waffeninventarsystem hinzufügen . Es gibt so viele
verschiedene Möglichkeiten, dein Spiel zu verbessern. Du kannst dich
von deinen Lieblingsspielen inspirieren lassen. Sobald Sie jeden
dieser Wege beschritten haben, sollten Sie
erkennen, dass jeder Weg seine eigene Karrieredisziplin darstellt Wenn du es magst,
Feinde zu erschaffen und das Verhalten von KI
herauszufinden, ist
das
in einer Spielefirma eine eigene Disziplin Oder wenn du das
Leveldesign übernehmen und die Spiellogik
herausfinden möchtest , wie der Spieler
mit
der Umgebung interagiert, dann ist
das deine eigene Disziplin Erkunden Sie weiterhin
so viel wie möglich, denn jeder Weg hat seinen eigenen
Weg zu einer erfüllenden Karriere Vielen Dank, dass Sie
an diesem Kurs teilgenommen haben. Ich kann es kaum erwarten,
dein Spiel zu spielen , wenn es
draußen auf der Welt ist.