Nicht eingeloggt
Registrieren

UE3 - Intro To Kismet

Einleitung:

Auf den ersten Blick kann so eine leere Kismet Seite echt abschreckend wirken. Aber mit ein wenig Übung wirst du schnell den nötigen Ehrgeiz entwickeln, die leere Seite zu füllen und deine Ideen umzusetzen.
Kismet ist das Instrument, mit dem der User Mover erstellen kann, Script events, Partikeleffekte an und ausstellen, vielleicht sogar die KI kontrollieren und vieles mehr.
Man kann sich Kismet als ein GUI (graphical User interface) vorstellen, welches Zugang zum code bietet, der die Engine steuert. Dabei helfen kleine Kreise und Rechtecke, die dem User die Möglichkeit geben, simple oder komplexere Sequenzen aufzubauen, um das Spiel kräftiger auf den Spieler einwirken zu lassen.

Vorausgesetztes Wissen: Wie man eine simple Testmap erstellt (BSP, Licht, Pfadnetzwerk und Playerstart).

Das Ziel dieses Tutorials ist es, den Leser in die Grundlegenden Komponenten und Navigationen zu führen, am Ende werden wir eine extrem simple Kismet Sequenz erstellen.

Also lasst uns anfangen...

 

Übersicht:

koverview.jpg

Das Kismet Hauptfenster: Es ist in 3 Bereiche unterteilt: Das Hauptfenster (Main Window), den Einstellungsbereich (Properties Window) und der Sequenzbereich (Sequences Window). Diese haben folgende Funktionen:

Es ist möglich, die Anordnung der Bereiche seinen eigenen Wünschen anzupassen.

 

Menüleiste:

kbar.jpg

Die Kismet Menüleiste:

Kontextmenü:

kcontext.jpg

Das Kismet Kontextmenü: Um auf das Kontextmenü zuzugreifen, reicht ein Rechtsklick auf eine freie Fläche im leeren Hauptbereich. So werden alle Kismet-Objekte erzeugt.

Formen & Farben:

shapes01.jpg

Kismet Objekte erscheinen in einigen speziellen Formen und Farben, an denen folgendes erkennbar ist:

colors01.jpg

Wenn du die beiden Screenshots einen Moment lang betrachtest wird dir auffallen, dass an manchen Außenrahmen unten kleine lila Dreiecke rauskommen. Das bedeutet, dass Objektvariablen (weil die ja auch lila sind) an diese Verbindungen gehängt werden können.

 

Verbinden/Trennen & Ein-/Ausschalten von Kismet-Elementen

Verbinden:

  1. Klicke mit der linken Maustaste auf den "Out"-Eintrag und halte die Taste gedrückt.
  2. Beim Ziehen des Mauszeigers erscheint eine Linie, die an den "In"-Eintrag eines anderen Elementes gezoge wird.
Du kannst Verlinkungen vom "In" oder "Out" Eintrag auch kopieren und an andere Anschlüsse Einfügen. Dafür rechts-klicke einfach auf eine Verlinkung, um an die Optionen zu kommen.

linkbreak.jpg

Einschalten:

Ausschalten:

linkdisable.jpg

Kismet-Elementen Objekte aus dem Level zuweisen:

Um eine neue Objektreferenz zu erstellen...:

  1. Wähle ein Objekt im Level aus
  2. Rechtsklicke in Kismet und wähle den entsprechenden Eintrag aus dem Kontextmenü aus.

assign01.jpg

Um einen neuen Actor einem bereits existierenden Kismet-Element zuzuweisen...:

  1. Wähle den Actor aus, der dem Element zugewiesen werden soll
  2. Rechtsklicke auf den Eintrag in Kismet und wähle "Assign to...".

assign02.jpg

Im Prinzip sind die Einträge in den beiden Screenshots die Selben. Ich habe den Trigger nur beiden zugewiesen.

 

Eine einfache Sequenz:

Unsre einfache Sequenz wird eine Nachricht sein, die angezeigt wird, wenn das Level startet. Ich gehe einfach mal davon aus, dass mein Leser (Du) weiß, wie er eine kleine Testmap mit Licht und Playerstart (und Rebuild!) macht. Das ist nötig, damit man die Nachricht sehen kann. Sollte dies nicht der Fall sein, empfehle ich, erstmal die Tutorialsektion nach Einsteigertutorials zu durchsuchen.

  1. Rechtsklick -> "New Event" -> "Level Startup".
    levelscreate.jpg
  2. Rechtsklick -> "New Action" -> Misc -> Log.
    logcreate.jpg
  3. Verbinde die beiden Elemente, indem du eine Linie zwischen "Out" des Level Startup Elements und dem "In" Eintrag des Log-Elements ziehst.
    linked.jpg
  4. Ändere die Einstellungen des Log-Elements, indem du einfach daraufklickst. Füge ein Objektkommentar - In diesem Fall "Tutorial!" - hinzu. Um sicherzugehen, dass der Log auch ausgelöst wird, werden wir noch ein Häkchen bei "bOutputObjCommentToScreen" setzen, damit der Kommentar auf dem Bildschirm angezeigt wird.
    logprop.jpg

Und das war's auch schon. Wenn die Map gestartet ist, wird der Spieler spawnen und ein "Tutorial!" wird im Chat-Bereich in der HUD erscheinen.

 

Sollten die Objektkommentare nicht auf dem Bildschirm ausgegeben werden, kann es sein, dass dein Spiel so eingestellt ist, dass es diese absichtlich unterdrückt. Es gibt aber einige Möglichkeiten, diese anzuschalten. (Beachte, dass du hierbei Änderungen an den Game-ini-Files durchnehmen musst! Lege immer Sicherheitsbackups an!

  1. Finde die DefaultEngine.ini bzw. UTEngine.ini - Datei. Diese ini kann je nach Spiel an unterschiedlichen Orten liegen und unterschiedlich heißen.
    Öffne die Datei und suche (STRG + F) nach dem Begriff "Kismet". Einer der ersten Ergebnisse wird "bOnScreenKismetWarnings=FALSE" sein, den du auf TRUE ändern musst, damit die Meldungen angezeigt werden. Speichere die ini Datei und schau ob es funktioniert.
  2. Sollte es nicht funktionieren, füge zusätzlich diese Zeile dazu: "bEnableKismetLogging=TRUE".
  3. Das sollte zwar funktionieren, ist aber nicht empfohlen, da es auch ein "cooked" File sein könnte, abhängig welches Spiel es ist. Suche ggf. noch mal nach einer game-spezifischen *Engine.ini suchen, wobei der Teil bei * vom jeweiligen Spiel abhängig ist. Solltest du welche finden, führe die oben beschriebenen Änderungen dort auch durch.
  4. Sollte das auch nichts bringen, kannst du die Map im Ingame-Browser spielen. Dabei werden alle Log-Nachrichten im Log des GenericBrowser aufgezeichnet, vorher muss aber auch ein Häkchen bei "bIncludeObjectComment" gesetzt werden.
  5. Sollte selbst das nichts bringen bleibt nur noch ein Weg: Anstatt eines Logs, nehme einen Emitter und setze ihn dorthin, wo man ihn sehen kann.Versehe ihn mit einem An- und Ausschaltbaren Effekt, der ausgelöst ist, wenn du mitbekommen willst, wann eine Stelle in den Aktionen passiert wurde. Vergiss nicht das "AutoActivate" in den Emittereinstellungen zu deaktivieren.

 

Dieses Tutorial ist eine Übersetzung von ArcadiaVincennes.
Das original englischsprachige Tutorial befindet sich HIER