*Note: I created the most of the tutorials using the Roboblitz and Gears of War editors. Based on the engine, and the version, some properties specified may be in slightly different locations than what is displayed in the screenshots.

If you need to learn how to create a basic map I would reccomend:
For UT99, UT2K3 & UT2K4: the Unreal Wiki.
For UT3: Waylon's Tutorials.



Actor Factory/Actor Factory Ex





Actor Factories & Actor Factory Ex sind im allgemeinen dazu da, um KI gesteuerte Objekte im Level zu spawnen. Sie können aber auch andere Items spawnen.

Die wesentlichen Unterschiede zwischen Actor Factories und Actor Factoy Ex's sind:

• Actor Factories können nur die Kontrolle über ein KI Objekt übernehmen. Werden mehrere gespawnt, wirken sich die Referenzen auf diese nicht weiter aus. Das heißt, dass jegliche Aktion, die Objekt zugewiesen wird, sich auch auf nur ein Objekt auswirkt, auch wenn sie mit einer anderen Objekt Variable verbunden wurde. Deshalb scheint es nur sinnvoll zu sein, wenn nur 1 Objekt kontrolliert werden soll.

• Actor Factory Exes bieten die individuelle Kontrolle über jedes gespawnte Objekt an. Deshalb sinnvoll, falls es eine Vielzahl an KI Objekten separat zu kontrollieren gilt.

• "Spawn Count" Limit: Bietet eine obere Grenze der Anzahl an gespawnten Objekten an.

• "Spawned/Spawned #" kann dazu benutzt werden, um eine bessere Kontrolle über eine spezielle Referenz zu bekommen.

Diese Screensthos sind von einer Actor Factory und von einer Actor Factory Ex, jedes mit einem SpawnCount von 2, was in den Einstellungen zugewiesen wurde.





Lasst uns nun die Ins und Outs der Kismetelemente genauer betrachten:

• Spawn Actor: Spawnt einen Actor. Hier trifft das Signal des Objekts in die Factory ein.

• Enable: Die Factory ist standardmäßig aktiv. Sollte sie deaktiviert werden (disable) kann sie an diesem Verbindungspunkt wieder aktiviert werden.

• Disable: Deaktiviert die Funktionalität dieser Factory. Selbst wenn ein Signal eintrifft, wird es nicht verarbeitet

• Toggle: Ich bin ziemlich sicher, dass es eine Schalter-Funktion von Enable/Disable ist, der unabhängig des Zustandes auf den anderen Umschaltet. Wenn es jemand genau weiß, bitte dem Autor mitteilen ;)

• Finished: Wenn die Factory ihr Programm abgearbeitet hat, geht an diesem Node ein Signal raus.

• Aborted: Ich bin mir nicht sicher was das bedeutet, wahrscheinlich wird hier ein Signal ausgesendet, wenn der Ablauf der Factory irgendwie gestört wurde.

• Spawned: Kann wie der Finished Node benutzt werden, ein Signal wird ausgesendet, sobald ein Objekt gespawned wurde.

Jetzt wo wir so eine Factory haben, was können wir damit tun? Fügen wir die Variablen dafür hinzu.



• 1) Markiere einen PathNode in der Testmap und öffne das Kontextmenü. Du wirst einen Eintrag "New Object Var Using Pathnode_0" finden. Dies sagt Kismet, eine neue Objektvariable zu erstellen und den Actor PathNode_0 damit zu referenzieren. So verbindest du Objektvariablen mit Actoren in deiner Map. Zu dem "New Event Using PathNode_0" werden wir in einem anderen Tutorial kommen.

• 2) Verschiebe es mit gedrückter STRG-Taste unter den "Spawn Point" Node der Actor Factory, wie du einen Actor in der Map verschieben würdest.

• 3) Verbinde es mit dem "Spawn Point" Node, indem du eine Linie von dem lila Dreieck unter dem Eintrag "Spawn Point" der Actor Factory zur Object Variable ziehst und dort die Maustaste loslässt.

• 4) Für die Actor Factory Ex werden wir ein zweites Objekt brauchen, daher wirst du die erste Object Variable duplizieren, indem du STRG+D drückst. Das neue Objekt schiebst du wieder mit gedrückter STRG-Taste unter den Eintrag "Spawn Point" der Actor Factory Ex. Wieder verbindest du den Node "Spawn Point" mit der Objektreferenz. Jetzt sollte das etwa so aussehen:



• 5) Jetzt können wir mit einigen Einstellungen in den Actor Factories etwas genau beim PathNode_0 spawnen. Aber wir wollen dem gespawnten Objekt hinterher noch ein paar Kommandos geben, daher geben wir diesem Objekt eine eigene Objekt Variable, damit wir auf die Referenz in Kismet zugreifen können.
Um das zu bewerkstelligen, werden wir eine leere Objekt Variable erstellen, die sich um das später gespawnte Objekt kümmern wird, und diese mit den Actor Factories verbinden.
Wir werden also mit New Variable -> Object -> Object wie im Screen darunter eine solche Variable erstellen.



• 6) Hast du das geschafft, dupliziere das Objekt und verbinde beide mit den "Spawned" Nodes jeder Actor Factory, bis es hinterher so aussieht:



Lasst mich kurz innehalten und nochmal zum Punkt kommen: Das Pathnode_0 Objekt ist das "Wohin?" von dem, was die Actor Factory spawnen soll. Das leere "???" Objekt ist das "Was?" was gespawnt werden soll, wenn wir mit Kismet die Kontrolle darüber erlangen wollen

• 7) Dieser Schritt betrifft nur die ActorFactory. Wie du sehen kannst, haben wir noch einen freien "Spawn Count" Node an der Actor Factory. Lasst uns also einen Integerwert dafür erstellen, in etwa so:



Und verbinde diesen mit dem "Spawn Count" Node der Actor Factory:



Ändere dann den Wert der Intergervariable zu "1", etwa so:



Das bedeutet, dass die Actor Factory eine Anzahl von "1" an PathNode_0 des Objektes, welches mit der Objektvariable "???" referenziert wird, spawnen wird.

Anm.: Das "Spawn Count" ist bei der Actor Factory Ex nicht als Node vorhanden, sondern diesen Wert gibt es in dessen Einstellungen. In der Actor Factory gibt es auch ein solches Feld, wo der "Spawn Count" wert fix eingetragen werden kann. Wird wie im obigen Beispiel eine Variable für den Spawn Count benutzt, wird der dort vorhandene Wert den Wert in den Einstellungen überschreiben.
Einstellungen:

Lasst uns nun einen Blick auf die Einstellungen der Actor Factories werfen:



• bCheckSpawnCollision: Hier wird überprüft, ob das gespawnte Objekt mit irgendeinem anderen Objekt am Spawnpunkt kollidieren würde.

• bEnabled: Stellt ein, ob die Factory am Anfang aktiviert oder deaktiviert ist?

• bOutputObjCommentToScreen: Gibt das Objektkommentar auf dem Bildschirm aus, wenn das entsprechende Event eingeht

• Factory: Hier wird aufgelistet, was die Factory abarbeiten wird. Wir werden später darauf zurückkommen.

• ObjComment: Dieser Kommentar wird im Text über der factory in Kismet angezeigt. Ich finde es sehr sinnvoll das zu kommentieren, was dort gespawnt wird.

• PointSelection: Normal, Random oder Reversed? Bin mir nicht sicher was das heißt.

• Spawn Count: Anzahl der Objekte die gespawnt werden?

• Spawn Delay: Die Verzögerung zwischen Eingang des Signals und Spawn des Objekts?

• SpawnPoints: Wenn mehrere Objekte als Ziele zugewiesen wurden, wird hier alles eingetragen, was an diesen Node angeschlossen ist.

• Target: Hier werden die Objekte die gespawnt werden mit den Objektreferenzen verbunden und als Liste ausgegeben.

Lasst uns nun auf den Factory-Eintrag etwas näher eingehen.
Wenn der Factoryeintrag markiert ist, wird ein kleiner blauer Pfeil erscheinen. Klicke darauf, um ein Menü zu öffnen, das eine Liste an möglichen Objekten anzeigt, die durch diese Factory gespawnt werden können:



Wenn du auf das kleine graue Quadrat links neben dem blauen Pfeil klickst, wird das die Factroyliste leeren.

Es gibt so viele mögliche Objekte die auf diesem Wege gespawnt werden können. Jedes einzeln zu erklären würde den Umfang dieses Tutorials sprengen. Außerdem sind sie ziemlich selbsterklärend, weshalb das Thema hier beendet wird.