UDK - Erstellen von Ereignissen mit Unreal Kismet

Heute werden wir uns mit Kismet von UDK beschäftigen und einen Blick auf die Entwicklung von Ereignissen werfen, was sie sind, wie wir sie erstellen können und wie wir sie verwalten können. Sie lernen, wie Sie nahezu alle Arten von Ereignissen in UDK erstellen und verwalten können, um vollständige, komplexe und vollständig skriptbasierte Ebenen zu erstellen, beginnend mit der einfachen Ebene, die wir in diesem Lernprogramm erstellen.

Einführung in die UDK-Events

In UDK ist ein Ereignis eine bestimmte Situation, die Sie definieren (offensichtlich in Unreal Kismet), was Konsequenzen für das Spiel oder andere Spielelemente mit sich bringt. Sie können Ereignisse überall auf einer Ebene ohne Einschränkungen erstellen. Sie können sie in drei verschiedene Gruppen einteilen: vorkompilierte Ereignisse, Triggerereignisse oder InterpActor-Ereignisse. In diesem Tutorial erfahren Sie alles darüber, wie ein Ereignis erstellt und bearbeitet wird.


Vorkompilierte Ereignisse

Schritt 1

Vorkompilierte Ereignisse: Wenn Sie das Unreal Kismet (das grüne K oben im UDK-Fenster, in der Nähe des Symbols des Inhaltsbrowsers und des Matinee-Symbols) öffnen, klicken Sie mit der rechten Maustaste auf ein leeres Feld des Kismet-Fensters, und Sie werden darunter "Neues Ereignis": Sie sehen viele einsatzbereite Ereignisse, die beispielsweise als "Schauspieler", "AI" oder "Pfand" zusammengefasst sind. Schauspieler, KI und Bauer sind in diesem Fall der auslösende Teil eines Ereignisses, und ohne sie beginnt das Ereignis überhaupt nicht. Ein Beispiel: Wenn Sie möchten, dass ein Ereignis beginnt, wenn ein Feind stirbt, müssen Sie unter "Bauer" gehen, da ein Gegner als Bauer bezeichnet wird, und wählen Sie "Tod".


Schritt 2

Erstellen Sie für unseren Zweck eine 512 x 512 x 256 Hohler Würfel.


Schritt 3

Fügen Sie nun ein Punktlicht in den Raum ein, indem Sie die Taste gedrückt halten L Taste auf der Tastatur, und klicken Sie mit der linken Maustaste in den Raum, den wir gerade erstellt haben (den Cube).


Schritt 4

Bewegen Sie das Licht in die Mitte des Raums und bauen Sie dann die Beleuchtung neu auf (mit oder ohne Lightmass, das ist nicht wichtig.)


Schritt 5

Erledigt? Nun können wir mit unserem ersten UDK-Event beginnen, in diesem Fall ein vorkompiliertes Event. Das am häufigsten vorkompilierte Ereignis, das von einem UDK-Codierer verwendet wird, ist das Ereignis "Level Loaded". Wie Sie sich vorstellen können, beginnt dieses Ereignis mit dem Laden des Levels. Beginnen wir also damit: Gehen Sie zu Unreal Kismet, klicken Sie mit der rechten Maustaste auf eine leere Stelle und gehen Sie zu Neues Ereignis> Stufe geladen.


Schritt 6

Jetzt sollten Sie einen Knoten namens "Level Loaded" in Ihrem Kismet haben. Wenn dies der Fall ist, können Sie jetzt sehen, dass dieser Knoten drei Ausgänge hat, oder besser drei Bedingungen, um das Ereignis zu aktivieren: Wenn der Pegel geladen und sichtbar ist, zu Beginn des Pegels oder wenn ein Pegel zurückgesetzt wird. Diese Bedingungen sind ziemlich selbsterklärend, der einzige Unterschied zwischen "Loaded and Visible" und "Beginn des Levels" ist eine kleine Verzögerung der Sekunde gegenüber der ersten. Beim dritten handelt es sich um ein Neuladen des Levels, aber wir kommen jetzt nicht mehr auf diese Funktion.


Schritt 7

Wir werden eine Art Alarm auslösen, der den Spieler auffordert, sich auf die Ankunft eines Feindes vorzubereiten. Um dies zu erreichen, erstellen wir einen weiteren Knoten, indem Sie (immer mit Rechtsklick) zu gehen Neue Aktion> Stimme / Ansagen> Ansage abspielen.


Schritt 8

Klicken Sie nun auf diesen Knoten, und schreiben Sie in die Textleiste für Ankündigungen: "Bereiten Sie sich vor! Ein Roboter kommt, um Sie zu töten!" Damit fordern wir UDK auf, in die Mitte des Monitors einen Text zu schreiben, der den Spieler darauf hinweist, dass ein Roboter ihn töten will. Er muss sich also auf den Kampf vorbereiten.


Schritt 9

Erstellen Sie jetzt weitere 6 Play Announcement Nodes wie zuvor.


Schritt 10

Schreiben Sie im letzten Text unter Announcement Text "Take the Shock Rifle und der Kampf wird beginnen!".


Schritt 11

In den anderen Knoten verwenden wir einen Sound-Countdown, der in den UDK-Assets enthalten ist. Gehen Sie also in den "Content Browser" und schreiben Sie in die Suchleiste "Countdown". Ein Zehn-Soundnode-Wave wird eingeblendet und der "Countdown 5" ausgewählt..


Schritt 12

Kehren Sie nun zu Kismet zurück und klicken Sie auf den ersten leeren Ankündigungsknoten. Gehen Sie in die Ansagesoundleiste und klicken Sie auf den grünen Pfeil rechts. Der Name des SoundNode Wave sollte in der Leiste angezeigt werden. Was Sie gerade getan haben, ist, UDK zu sagen, dass Sie den Sound mehrmals (fünfmal) abspielen müssen, um einen Countdown zu erstellen.


Schritt 13

Machen Sie jetzt also, was Sie gerade mit dem vorherigen Knoten getan haben, mit den vier verbleibenden Play Announcement Nodes. Denken Sie daran, dass Sie zuerst die Anzahl für den Countdown im Inhaltsbrowser (den vierten, den dritten, den zweiten und den ersten) auswählen müssen, dann auf den Knoten in Kismet klicken und dann im Ansagetonsignal auf den grünen Pfeil auf klicken füge es ein.


Schritt 14

Erledigt? Gut. Nun ist es Zeit, das Ereignis mit den Knoten zu verbinden, die wir erstellt haben. Verbinden Sie den Ausgang von "Beginn des Pegels" mit dem ersten Ankündigungsknoten.


Schritt 15

Dann von der Ausgabe Ihres ersten Ankündigungsknotens zur Eingabe des zweiten Ankündigungsknotens usw. (wie unten gezeigt).


Schritt 16

Wenn das Level beginnt, haben wir eine Reihe von Ansagen, die den Spieler beraten. Wenn wir sie jedoch so belassen, wie sie sind, wird nur eine Ansage auf dem Bildschirm angezeigt, und der Spieler erhält nicht alle Informationen, die wir ihm geben wollen . Um alle anzuzeigen, müssen wir eine Verzögerung zwischen unseren Ankündigungsknoten festlegen. Klicken Sie also mit der rechten Maustaste auf die Ausgabe (das schwarze Rechteck) des ersten Ankündigungsknotens und klicken Sie auf "Set Activate Delay". Stellen Sie im angezeigten Fenster die Verzögerung auf 2,0 und klicken Sie auf OK.


Schritt 17

Wiederholen Sie den vorherigen Schritt für die Verbindungen zwischen den anderen Knoten, setzen Sie jedoch dieses Mal die Verzögerung auf 1,0, weil da der Countdown ist!


Ereignisse auslösen

Schritt 1

Auslöserereignisse: Hierbei handelt es sich um bestimmte Ereignisse, die zum Auslösen eines Teils eines Elements verwendet werden, das während des Spiels nicht angezeigt wird und als "Auslöser" bezeichnet wird. Auslöser sind Zylinder, aber keine richtigen Zylinder. Sie haben einen Radius und eine Höhe, sind aber kein Pinsel oder etwas, auf das Sie ein Material anwenden können. Der Radius und die Höhe dieser Zylinder beschreiben den Bereich, in dem ein Spieler, ein Bauer oder etwas anderes das jeweilige Ereignis aktivieren kann. In diesem Fall sind Spieler oder Spielfiguren nicht direkt für den Beginn eines Ereignisses verantwortlich, sondern lösen es durch Kontakt mit dem definierten Bereich des Zylinders des Auslösers aus.


Schritt 2

Denken Sie daran, dass Sie in der letzten Ankündigung geschrieben haben: "Nehmen Sie das Schockgewehr?"? Nun, ich denke, es ist an der Zeit, einen in dein Niveau zu setzen. Aber zuerst setzen wir einen Auslöser ein, der uns hilft, den Bereich zu definieren, in dem der Spieler das nächste Ereignis aktivieren wird, und wo wir unseren Raketenwerfer starten werden. Klicken Sie mit der rechten Maustaste auf die Etage, gehen Sie zu "Schauspieler hinzufügen" und wählen Sie "Auslöser hinzufügen". Nun werden Sie feststellen, dass ein seltsames Symbol aufgetaucht ist, ein scheinbarer Schalter mit einem roten Rechteck, das sich um einen grünen Zylinder legt.


Schritt 3

Wie ich bereits sagte, ist der Zylinder der Bereich, der definiert, ob Kontakt mit dem Spieler besteht oder nicht, und ein Ereignis aktiviert. Lass es größer werden. Klicken Sie mit der rechten Maustaste auf den Auslöser, gehen Sie zu "Eigenschaften" und ändern Sie unter "Zylinderkomponente" den Radius und die Höhe des Zylinders nach Ihren Wünschen 60-60.)


Schritt 4

Wahrscheinlich wie bei mir ging der Zylinder Ihres Abzugs in den Boden. Schieben Sie es nach oben und kehren Sie nach Kismet zurück.


Schritt 5

Klicken Sie mit der rechten Maustaste auf ein leeres Feld in der Nähe der letzten Ankündigung und gehen Sie zu Neue Aktion> Schauspieler und wählen Sie "Actor Factory".


Schritt 6

Klicken Sie auf diesen Knoten und klicken Sie in der Factory-Leiste auf den blauen Pfeil links, und wählen Sie "UTFactoryPickup" aus. Klicken Sie dann auf "Factory", um es zu erweitern, und wählen Sie in der Inventarleiste "Shock Rifle" aus..


Schritt 7

Wählen Sie dann den Trigger im Level aus und kehren Sie zu Kismet zurück. Klicken Sie mit der rechten Maustaste auf den Eingang "SpawnPoint" und klicken Sie auf "New Object Var using Trigger"..


Schritt 8

Verbinden Sie nun den Ausgang des letzten Ankündigungsknotens mit dem Eingang des Actor Factory-Knotens. Nun, endlich haben wir unser Schockgewehr, das nach der letzten Ankündigung erscheint.


Schritt 9

Jetzt müssen wir einen Gegner spawnen, nachdem der Spieler das Schockgewehr genommen hat. Dazu erstellen wir ein Trigger-Event. Wenn der Trigger in der Ebene ausgewählt ist, gehen Sie zu Kismet und klicken Sie mit der rechten Maustaste auf ein leeres Feld. Wählen Sie dann unter "Neues Ereignis mit Trigger" die Option "Touch" aus. Dies bedeutet, dass das Ereignis aktiviert wird, wenn der Spieler den Bereich des Zylinders betritt. Eine andere häufige Wahl ist "Used". Dies bedeutet, dass der Spieler ein Ereignis aktivieren kann, wenn er sich vor dem Zylinder befindet und die E-Taste drückt. Die anderen sind kleinere Entscheidungen, die bei Triggern nicht häufig verwendet werden.


Schritt 10

Erstellen Sie nun einen weiteren "ActorFactory" -Knoten, aber wählen Sie in der Factory-Leiste "UTActorAI". Setzen Sie in den Factory-Eigenschaften die ControllerClass: auf "UTBot", die PawnClass: auf "UTPawn" und überprüfen Sie die "GiveDefaultInventory" -Eigenschaft.


Schritt 11

Geben Sie ihm dann einen Namen (ich überlasse Ihnen die Entscheidung) und verbinden Sie das Ereignis "Trigger Touch" mit "Actor Factory". Klicken Sie nun mit der rechten Maustaste auf die Ausgabe "Spawned" und wählen Sie "Create New Object Var"..


Schritt 12

Klicken Sie in Ihrem Level auf der gegenüberliegenden Seite Ihres Triggers mit der rechten Maustaste auf die Etage, gehen Sie zu "Add Actor" und wählen Sie "Add Pathnode"..


Schritt 13

Kehren Sie nun zu Kismet zurück, klicken Sie mit der rechten Maustaste auf "Spawn Point" und wählen Sie New Object Var using Pathnode aus. Schließlich haben Sie Ihr erstes Auslöserereignis erstellt und lassen Ihren Feind erst dann laichen, wenn der Spieler die Waffe genommen hat. Das einzige, was bleibt, ist, dem Feind ein Ziel zu geben.


Schritt 14

Klicken Sie in Kismet mit der rechten Maustaste und gehen Sie zu Neue Aktion> Sonstiges und wähle "Trace".


Schritt 15

Verbinden Sie den Ausgang "Fertig" von ActorFactory mit dem Eingang "Trace", und verbinden Sie dann den Starteingang von "Trace" mit der Objektvariablen von ActorFactory "Spawned"..


Schritt 16

Klicken Sie nun mit der rechten Maustaste auf ein leeres Feld und gehen Sie zu Neue Aktion> KI und wähle "Start Firing At".


Schritt 17

Klicken Sie dann mit der rechten Maustaste auf ein leeres Feld und gehen Sie zu Neue Aktion> KI und dieses Mal wählen Sie "Stop Firing".


Schritt 18

Verbinden Sie den Ausgang "Nicht blockiert" mit "Start Firing At" und "Hindernis" mit "Stop Firing"..


Schritt 19

Verbinden Sie den Ausgang von "Start" und "Stop Firing" mit dem Eingang von "Trace" (siehe Abbildung).


Schritt 20

Stellen Sie ihre Ausgabeverzögerung auf .5.


Schritt 21

Verbinden Sie den Zieleingang von "Start" und "Stop Firing" mit der Objektvariablen des Spawn-Objekts.


Schritt 22

Klicken Sie nun mit der rechten Maustaste auf eine leere Stelle und gehen Sie zu Neue Variable> Spieler, und wähle "Spieler".


Schritt 23

Verbinden Sie den "Fire At" -Eingang mit der Spielervariable. Plötzlich haben Sie einen Bot (einen Feind) erstellt, der im Abzugszylinder erscheint und dann nach dem Spieler sucht. Und wenn er von etwas behindert wird, schießt er nicht, und wenn er nicht behindert ist, kann er frei auf den Spieler schießen.


Schritt 24

Wenn Sie nun Ihr Level ausprobieren, werden Sie feststellen, dass der Gegner manchmal vor dem Ende des Countdowns erscheint. Dies geschieht, weil der Trigger bereits aktiviert ist und nicht auf das Ende der vorherigen Kismet-Sequenz wartet. Um dies nur zu aktivieren, wenn der Countdown abgeschlossen ist, gehen Sie zu Kismet, wählen Sie "Trigger Event Touch" und deaktivieren Sie "Enabled" in den Eigenschaften.


Schritt 25

Klicken Sie dann mit der rechten Maustaste (wie immer in Kismet) und gehen Sie zu Neue Aktion> Umschalten und wähle "Toggle".


Schritt 26

Verbinden Sie nun den Ausgang des letzten Spielankündigungsknotens mit dem Eingang "Turn On" des Umschaltknotens und den Ausgang "Event" von "Toggle" mit dem "Trigger Touch Event". Jetzt haben Sie ein Auslöserereignis, das aktiviert wird, wenn die Sequenz der Wiedergabeankündigung beendet ist.


InterpActor-Ereignisse

Schritt 1

InterpActor-, StaticMeshActor- und Brush-Events: Diese Events ähneln den Trigger-Events. Tatsächlich werden diese Events immer durch Kontakt mit einem Bereich aktiviert, jedoch nicht mit einem zylindrischen Bereich, sondern mit einem benutzerdefinierten Bereich in Bezug auf den InterpActor (oder StaticMeshActor) oder Pinsel) ausgewählt. Die einzige große Änderung, abgesehen von den verschiedenen Bereichen, mit denen Sie Kontakt aufnehmen können, ist, dass der Auslöser während des Spiels sichtbar ist und Sie während des Spiels physischen Kontakt damit herstellen können.


Schritt 2

Endlich sind wir bei InterpActor Events angekommen. Für diese Art von Event erstellen wir eine Art Unterteilung zwischen den Ebenen und teilen sie in zwei Teile auf, aber auf eine einzigartige Weise! Gehen Sie also zum "Content Browser" und suchen Sie nach "thinwire". Wenn die Suche abgeschlossen ist, doppelklicken Sie auf "Thinwire16", klicken Sie mit der rechten Maustaste in Ihr Level und wählen Sie "InterpActor hinzufügen"..


Schritt 3

Suchen Sie nun nach "Connector" und wählen Sie das erste Ergebnis Ihrer Suche aus. Fügen Sie diesen InterpActor zweimal hinzu.


Schritt 4

Passen Sie diese drei Elemente wie in der Abbildung unten an, um den Raum in zwei Teile zu unterteilen. (Skalieren Sie dazu den dünnen Draht Y durch 1.2)


Schritt 5

Wenn diese Elemente noch ausgewählt sind, drücken Sie F4 um die Eigenschaften zu öffnen.


Schritt 6

Gehen Sie nun zu "Kollision" und setzen Sie "Kollisionstyp" auf "Alle berühren"..


Schritt 7

Sie haben gerade drei InterpActor-Levels mit einem Kollisions-Typ auf Touch All gesetzt. Dies bedeutet, dass in diesem Fall ein Ereignis aktiviert wird, wenn der Player oder eine andere Person die Drähte oder Anschlüsse berührt. Nun müssen wir dieses Ereignis erstellen! Wählen Sie die drei von uns erstellten Akteure aus, gehen Sie zu Kismet, klicken Sie mit der rechten Maustaste auf ein leeres Feld und wählen Sie "Neues Ereignis mit InterpActor?", Und wählen Sie "Touch"..


Schritt 8

Klicken Sie mit der rechten Maustaste in Kismet, gehen Sie zu Neue Aktion> Schauspieler und wähle "Gesundheit ändern".


Schritt 9

Wählen Sie den "Modify Health" -Knoten aus und setzen Sie die Schadensmenge auf 100 (Leben des Spielers) Sie können den Damage Type auch auf Crushed oder Telefragged setzen, wenn Sie einen Sound abspielen möchten, wenn der Player den Schaden erhält.


Schritt 10

Klicken Sie nun mit der rechten Maustaste in Kismet und gehen Sie zu Neue Variable> Spieler und wähle "Spieler".


Schritt 11

Verbinden Sie den Eingang "Target" von "Modify Health" mit dieser Variablen.


Schritt 12

Verbinden Sie alle "berührten" Ausgänge der InterpActor-Ereignisse mit dem "Modify Health" -Knoten. Wenn nun jemand die Drähte oder Anschlüsse berührt, stirbt der Player. Nicht so gleichwertig, aber in diesem Level bewegt sich der Feind nicht selbst, er steht nur vor Ihnen und schießt auf Sie, sodass er die Drähte nicht berühren kann. Dabei muss der Spieler vorsichtig sein, wenn er sich selbst bewegt.


Schritt 13

Es gibt immer noch ein Problem, das behoben werden muss, wenn Sie durch Berühren der Drähte oder Anschlüsse und des Respawns den InterpActor berühren, der Sie gerade getötet hat, und Sie nicht erneut töten wird. Das liegt daran, dass unsere Events nur einmal aktiviert werden. Um dies zu beheben, gehen Sie zu Kismet, wählen Sie alle InterpActor-Ereignisknoten aus und gehen Sie zu "Sequenzereignisse"..


Schritt 14

Diese Eigenschaften sind im Startknoten jedes Ereignisses gleich: "Maximaler Trigger-Zähler" bedeutet, wie oft das Ereignis aktiviert werden kann. "Trigger Delay" bedeutet, wie lange eine Aktivierung vor der nächsten dauert. "Aktiviert" bedeutet offensichtlich, dass das Ereignis aktiviert ist, wenn es aktiviert ist, andernfalls ist es inaktiv. "Priorität" ist nützlich, wenn viele Ereignisse zum gleichen Zeitpunkt beginnen und schließlich "Nur Spieler- oder Client-Seite" bedeutet, wer dieses Ereignis aktivieren kann. Stellen Sie zu unserem Zweck den "Max Trigger Count" auf 0 (unendlich).


Schritt 15

Schließlich ist das Level fertig. Speichern Sie also Ihre Levelbeleuchtung und -pfade, und Sie können das Level ausprobieren!


Schritt 16

Klicken Sie nun mit der rechten Maustaste und wählen Sie "Neuer Zustand"..


Schritt 17

Verbinden Sie den fertigen Ausgang mit dem Eingang von "Is Alive" und verbinden Sie den Ausgang "True" mit "Trace" und "Start Fire At" und "Stop Fire" mit dem Eingang von "Is Alive". Verbinden Sie auch den Spieler "Is Alive" mit dem Objekt "Spawned". Jetzt haben Sie den Fehler behoben (versuchen Sie es einfach!) Und Sie sind bereit, Ihr Level zu spielen!