Videospieldesign in Unreal Engine: Erstelle, gestalte und spiele deine Welt | Lucas Ridley | Skillshare

Playback-Geschwindigkeit


1.0x


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

Videospieldesign in Unreal Engine: Erstelle, gestalte und spiele deine Welt

teacher avatar Lucas Ridley, Professional Animator

Schau dir diesen Kurs und Tausende anderer Kurse an

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

Schau dir diesen Kurs und Tausende anderer Kurse an

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

Einheiten dieses Kurses

    • 1.

      Einführung

      1:33

    • 2.

      Erste Schritte

      1:28

    • 3.

      Erstelle den Spielerstart

      4:53

    • 4.

      Verbinde eine benutzerdefinierte spielbare Figur

      4:35

    • 5.

      Richte eine Zustandsmaschine ein

      5:07

    • 6.

      Beende deine Zustandsmaschine

      13:44

    • 7.

      Verbinde Filmsequenzen mit Gameplay Start

      10:35

    • 8.

      Erstelle einen Auslöser des Start-Timers

      12:02

    • 9.

      Erstelle Hindernisse mit Game Logic

      12:02

    • 10.

      Gefahrenbereiche abschließen

      3:53

    • 11.

      Verpacke und teile dein Spiel

      4:51

    • 12.

      Schlussgedanken

      1:41

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

Von der Community generiert

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

220

Teilnehmer:innen

--

Projekte

Über diesen Kurs

Erstelle dein eigenes Videospiel, das du mit Freunden teilen und spielen kannst.

Lucas Ridley, einer der beliebtesten Animationslehrer von Skillshare, hat sich zuerst mit 3D-Animation beschäftigt, als er nach einer Möglichkeit suchte, an Filmprojekten mit realistischen Figuren, fesselnden Settings und fesselnden Handlungssträngen zu arbeiten, ohne einen Ort ausfindig machen zu müssen, Drehgenehmigungen zu erhalten, Schauspieler anzuheuern und teure Ausrüstung zu mieten. Lucas ist ein professioneller 3D-Animator und Filmemacher und konnte an Filmen wie Avengers Infinity War und Disneys Aladdin sowie Videospielen wie The Last Of Us Part 2 und Suicide Squad: Kill the Justice League arbeiten – direkt von seinem Schreibtisch aus. Nachdem er eine erfolgreiche Karriere aufgebaut hat, möchte Lucas euch zeigen, wie man 3D-Animation nutzen kann, um eigene Filme oder Videospiele zu erstellen. 

In diesem Kurs bringt Lucas dir bei, wie du mit Unreal Engine ein komplettes Videospiel mit Spiellogik, einem Timer und Hindernissen erstellst, die jede Videospielfigur zu erobern versucht. Jede Kurseinheit wurde für Animatoren entwickelt, die bereit sind, in die Tiefen der Videospielerstellung einzutauchen. Sie bringt dich einem fertigen Videospiel näher, das du mit deinen Freunden in einem zeitlich begrenzten Hindernislauf spielen kannst.

Unter Anleitung von Lucas als dein Kursleiter wirst du:

  • Einen Spielerstart von Grund auf erstellen 
  • Einen benutzerdefinierten Metahuman-Spieler mit deinem Spiel verbinden.
  • Zustandmaschinen für deine Figur einrichten, wie z. B. Hockend 
  • Eine Intro-Sequenz, einen Timer und Hindernisse wie rotierende Objekte und Gefahrenbereiche hinzufügen

 Außerdem erhältst du einen Blick hinter die Kulissen, wie Lucas als Vollzeit-3D-Animator ein kurzes Hindernislauf-Videospiel gestalten würde. 

Ganz gleich, ob du schon immer davon geträumt hast, professionell Videospiele zu entwickeln, oder ob du einfach nur deine 3D-Animationsfähigkeiten mit einem interaktiven und gemeinsam nutzbaren Projekt auf die Probe stellen möchtest: Du wirst diesen Kurs mit einem maßgeschneiderten Videospiel verlassen, das du in deinem Portfolio, mit einem potenziellen Arbeitgeber oder einfach mit deinen Freunden teilen kannst. 

Um an diesem Kurs teilzunehmen, solltest du über fortgeschrittene Kenntnisse über Unreal Engine verfügen, damit du dich mit der Software leicht zurechtfinden kannst. Neben der Unreal Engine-Software benötigst du auch einen Computer und eine Drei-Tasten-Maus. Wenn du mehr über Videospielanimation in Unreal Engine erfahren möchtest, kannst du den gesamten Lernpfad von Lucas erkunden.

Triff deine:n Kursleiter:in

Teacher Profile Image

Lucas Ridley

Professional Animator

Kursleiter:in
Level: Advanced

Kursbewertung

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

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

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

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

Lerne von überall aus

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

Transkripte

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