Skyrim Creation Kit 3: AI Packages (Zeitplan) für deinen NPC (Tutorial)

Dieser Beitrag wurde vor 11 Jahren, 4 Monaten veröffentlicht und ist daher möglicherweise nicht mehr auf den neuesten Stand.

Die AI Packages in Skyrim’s Creation Kit sind ein wunderbares Tool, um selbst erstellten NPC[1] ein Leben zu geben.
Ohne einem AI Package würde ein NPC[1] nur sinnlos in der Gegend herum stehen.

Mit den AI Packages kann man den NPC[1] zeitlich einteilen.
In diesen Tutorial möchte ich ein paar Grundlagen diesbezüglich zeigen.

Bevor wir jedoch weitermachen, hast du dir das letzte Tutorial (Eigenen NPC[1] erstellen) schon angesehen? Dies ist nämlich Voraussetzung!

Als Erstes muss man sich überlegen, was der NPC[1] machen soll, aber auf das „wann“ und „wo“ sollten wir auch nicht vergessen, da diese eine entscheidende Rolle spielen.

Unser NPC[1] soll dann nach diesen Tutorial Selbsständig „zur Arbeit“ gehen, Ins „Wirtshaus“ gehen, Nachts irgendwo Schlafen und dazwischen einfach nur Sandboxen.

Wir machen das ganze in Riverwood, natürlich könnte man den NPC[1] auch auf Weltreise schicken (Arbeit in Norden Skyrim’s, Wirtshaus im Süden, und der Schlafplatz im Westen), aber das wollen wir unseren armen NPC[1] nicht antun. Deswegen gehen wir davon aus, dass unser NPC[1] in Riverwood arbeitet, säuft und schläft.
Als Beispiel nehmen wir den NPC[1], den wir zuletzt erstellt haben und der bis jetzt nur ein SandboxPackage hat.

Also, auf geht’s starten wir wieder Creation Kit (mit all den üblichen Hinweismeldungen) und wir Laden das Plugin, welches wir beim letzten Tutorial erstellt haben.

Suche nach diesen NPC[1] im Object Window und öffne seine Eigenschaften, danach klickst du bei den obigen Tabs auf „AI Packages“.

Da dies der NPC[1] vom letzten Tutorial ist, befindet sich auch bereits ein AI Package darin, dieses werden wir  löschen, da wir komplett neue Packages erstellen werden.

Unser Ziel:
Wenn wir damit fertig sind, soll unser NPC[1] folgende Tätigkeiten an folgenden Orten verrichten:

  • Arbeit: Montag-Freitag von 8-16 Uhr beim Sägewerk von Riverwood
  • „Wirtshaus“/Gaststätte: Täglich von 18-20 Uhr im Sleeping Giant Inn in Riverwood
  • Schlafen: Täglich von 22-6 Uhr vor dem Ortseingang zu Riverwood
  • Hobbytätigkeit: Samstag, Sonntag von 13-16 Uhr bei einer Farm
  • Restliche Zeit/Lückenfüller: Sandboxing in Riverwood
Wir benötigen also insgesamt 5 AI Packages, in denen wir dies festlegen werden.
Marker in CK:
In diesen Tutorial werden wir auch zum ersten mal mit den (bereits vorhandenen) Idle Markers zu tun haben, wir gehen aber nicht ins Detail.
Im CK kann man Idle Markers (und andere Markers) sehen. Die sind dazu da, um NPCs bestimmte Animationen abspielen zu lassen. Arbeitet ein NPC[1] zB auf einer Farm mit einen Idle Marker zum Farmen, dann werden bestimmte Animationen abgespielt, wie zB den Boden mit einen Rechen aufzulockern.

Diese Marker können aber auch für andere Zwecke verwendet werden. So gibt eszB auch Marker, die eineStadtwache an diesen Stellen patrouillieren lassen.

 

 

 

 

In den obigen Bildern sieht man ein paar Marker, die in der Welt von Skyrim (in diesem Fall geht es um Riverwood / Flusswald) verteilt sind.

Normalerweise stören Marker nicht wirklich, aber es gibt auch Markierungen, die ganze Bereiche abdecken.
Es kann also schon mal vorkommen, dass Bereiche, die man Bearbeiten will, sich in einen „Quadrat“ befinden, in so einen Fall ist das Bearbeiten nicht gerade einfach, da man immer das Quadrat anklickt, welches sich an dieser Stelle befindet.
Man kann entweder näher heranzoomen, sodass die Kamera sich ebenfalls „im Quadrat“ befindet (somit könnte man dann auch die Objekte darin anklicken).
Oder man drückt die M-Taste auf der Tastatur, womit man diese Marker ein- und wieder ausschalten kann. (Sollte nichts passieren, dann sicherstellen, dass das Render Window gerade das aktive Fenster ist, sprich: einfach das Render Window anklicken und dann erneut die M-Taste drücken!).
Hier ein Beispiel der störenden Markierungen:
Ich wollte dich hiermit nur wissen lassen, dass man die Marker ein/ausschalten kann, da beim Objekte platzieren diese im Weg sein könnten.Für dieses Tutorial benötigen wir die Marker, daher am Besten eingeschalten lassen bzw. einschalten (M-Taste).
Bäume könnten ebenfalls stören, diese können im Render-Fenster mit der ALT-T Tastenkombination ein-/ausgeblendet werden.

Gut, Nachdem das geklärt ist, können wir ja weiter machen.
Wir öffnen mal unseren NPC[1] und begeben uns in das AI Packages Tab und entfernen dort mit einen Rechtsklick das bereits vorhandene Package.

Und ein weiterer Rechtsklick um ein neues AI Package zu erstellen.

AI Package: Work

Als Erstes benennen wir die ID des Packages, wie immer empfehle ich einen Namen, den man im nachhinein leicht erkennen kann, also nehme ich „FCOFollowerNPCWorkPack„.
Im Tab „Package“ (welches bereits geöffnet ist) wähle ich als nächstes ein Package Template aus. Hierfür eignet sich das Template „SandboxWorking“ recht gut.

Nun hat man auf der linken Seite eine Tabelle und in dessen ersten Zeile sieht man einen Eintrag mit „Location„, diese Zeile auswählen und dann links das Feld „Radius“ mit den Wert „512“ befüllen.
Über dem Feld Radius noch auf den Button klicken, wo wahrscheinlich „Near Editor Location“ steht.

Es öffnet sich ein neues Fenster, welches einem mehrere Auswahlmöglichkeiten zur Verfügung stellt.

Bevor wir jetzt aber weiter machen: Suche im Render Fenster nach der Stelle, des Markers, den du setzen willst! (noch BEVOR du auf „Select Refernce“ klickst!) – Sobald man den Button klickt, kann man die Ansicht im Render-Window nicht mehr ändern, man kann die Aktion jedoch mit einen Rechtsklick abbrechen und anschließend wieder die Ansicht im Render-Window ändern (falls man zu voreilig war).
– Diesen Hinweis bitte bei allen zukünftigen Ortszuweisungen befolgen.

Wir klicken jetzt also auf „Select Reference“ und klicken einen Marker beim Sägewerk an (siehe Bild). Währenddessen ändert sich der Mauszeiger zu einen Fadenkreuz. – Sollte das Fadenkreuz rot gefärbt sein, so ist die Auswahl ungültig, sobald man aber das Fadenkreuz auf eine gültige Referenz zieht (wie zB einen Marker), so wird es weiß.

Nachdem man einen Marker angeklickt hat, wird das Feld unter dem Button „Select Refernce“ automatisch befüllt.
Jetzt einfach mit OK bestätigen, um wieder zum AI Package zurück zu gelangen.

Somit haben wir einmal den Ort ausgewählt, wo sich unser NPC[1] aufhalten soll.

Als nächstes klicken wir im Fenster des AI Package oben auf „Shedule„.
Hier legt man den Tag und die Uhrzeit fest.

Wir wollen, dass unser NPC[1] von 8 bis 16 Uhr, an Werktagen, beim Sägewerk arbeitet.
Also setzen wir folgende Einstellungen

Day of Week: Hier kann man einstellen, an welchen Tagen dieses Package gelten soll. Wir nehmen hier „Weekdays“ (von Montag bis Freitag)
Hour: Hier wird angegeben zu welcher Uhrzeit (Stunde) die Tätigkeit anfangen soll. Wir tragen hier eine 8 ein für 8 Uhr
Duration: Hier trägt man die Dauer (in Stunden) ein, wie lang dieses Package gilt. Wir setzten uns als Ziel, dass unser NPC[1] bis 16 Uhr „arbeitet“, also tragen wir hier 8 Stunden ein.

Bevor wir jetzt aber mit OK bestätigen, klicken wir oben erneut auf „Package“

Es gibt in der Tabelle noch andere Tätigkeiten die euer NPC[1] machen darf (oder auch nicht).
So kann man zB einstellen, ob es dem NPC[1] erlaubt ist zu essen, oder zu schlafen.
Essen soll erlaubt sein, also kann man dies auf „True“ setzen (siehe Bild). Schlafen während der Arbeitszeit soll aber nicht erlaubt sein, daher kann man dies auf „False“ setzen (einfach das Häkchen entfernen).

Allow Idle Markers“ und „Allow Conversation“ sollte ebenfalls erlaubt sein („True„).
Wenn der NPC[1] kein Idle Marker verwenden darf, dann wird dieser auch nicht den Idle Marker verwenden, den wir für ihn ausgesucht haben.
Sollten wir das Reden verbieten („Allow Conversation“), dann kann man den NPC[1] auch nicht als Follower beantragen, geschweige denn sonstige Konversationen anfangen.

Das wollte ich nur mal gesagt haben, bitte auch bei den anderen Packages beachten die wir noch anlegen werden.

So, jetzt darfst du auf „OK“ klicken.

Nächstes Package:

AI Package: Inn („Wirtshaus“)
Das nächste Package gilt für den Abend. Der NPC[1] soll nach der Arbeit und auch an Wochenenden entspannen können, indem er für zwei Stunden ins „Wirtshaus“ geht.

Wir erstellen also mit einen Rechtsklick und anschließend einem Klick auf „New“ ein weiteres, neues Package.

Nun wieder eine eindeutige ID vergeben, als Package Template „Sandbox“ auswählen und anschließend wieder eine Location auswählen, indem man die erste Zeile (links) anklickt und anschließend den Button über „Radius“ anklickt.

Diesmal machen wir es einwenig anders, anstatt dass wir nun einen Ort im Render-Window markieren, setzen wir eine gesamte Zelle manuell.
Statt „Near Reference“ wählen wir diesmal die Option „In Cell“ aus und setzen „RivedrwoodSleepingGiantInn“ als Ort.

Mit OK bestätigen, da wir den NPC[1] in eine Zelle schicken, brauchen wir hier kein Radius setzen, sondern wir können gleich mit den Zeitplan fortfahren, daher klicken wir oben wieder auf „Shedule

Nachdem der NPC[1] die Gaststätte jeden Tag besuchen soll, tragen wir bei „Hour“ 18 ein (für 18 Uhr) und bei „Duration“ tragen wir 2 Stunden ein.
Der NPC[1] ist also von 18-20 Uhr dort.

Das wäre nun auch erledigt.
Machen wir mit den nächsten Package weiter.

AI Package: Schlafplatz

Ok, versuche es nun selbst, ohne dass ich viele Worte schreibe.
Der NPC[1] soll ab 22 Uhr 8 Stunden schlafen und als Schlafplatz nimmt er die „Schlafsäcke“ vor der Ortsgrenze von Riverwood/Flusswald.
Das Package Template, welches wir jetzt brauchen, nennt sich diesmal „Sleep„.

Einzigartige ID vergeben. „Sleep“ als Package Template auswählen.
Location anklicken und als Radius „256“ eintragen und dann darüber den Button anklicken.

Im Render-Window die Kamera zu den gewünschten Ort bewegen und anschließend mit „Select Reference“ den „PatrolIdleMarker“ auswählen, der sich in der Nähe der Betten und des Lagerfeuers befindet.

Sobald der Ort ausgewählt wurde, legen wir in „Shedule“ den Zeitplan fest.

Gut, nun doch eine kurze Erklärung:
Was an diesen Package anders ist, als an den anderen, ist dass er in einen Radius von 256 nach bestimmten Möbelstücken sucht, nämlich Betten.
Als ReferenzMarker namen wir einen Patrol Marker. Dies hat keinen Einfluss auf das restliche Spielverhalten, wir sagen dem NPC[1] nur, dass er „in der Nähe vom“ Patrol Marker (also im Radius von 256) nach Betten Ausschau halten soll, die er dann benutzen kann.

AI Package: Ackern (Farmer)
Das nächste Package ist das „Hobby“ Package.
Der NPC[1] soll an beiden Wochenendtagen auf einer Farm in der Nähe aushelfen indem er dort arbeitet, unser NPC[1] macht solche Tätigkeiten ja sehr gerne. 😉

Also, Neues Package, mit einer neuen, eindeutigen ID.
Als Template wird erneut „Sandbox“ verwendet, als Radius tragen wir 256 ein und klicken anschließend wieder auf den Button darüber.

Wir suchen nun den Platz, bzw. die IdleMarker im Render-Window.
Die Farm befindet sich in Riverwood irgendwo (so ziemlich) in der Mitte des Ortes.

Im Location Fenster klicken wir also wieder auf „Select Reference“ und wählen einen der IdleMarker aus.
Es spielt keine Rolle, welcher dieser IdleMarker gewählt wird, da sowieso alle Marker verwendet werden, die sich im Radius des ausgewählten Markers befinden.

Mit OK bestätigen und anschließend im AI Package oben wieder auf „Shedule“ klicken.

Bei Day of Week wählen wir diesmal Weekends (SS) aus.
Bei Hour tragen wir 13 Uhr ein und die Dauer bzw. Duration beträgt 3 Stunden.

Der Rest bleibt, wie immer, auf Any eingestellt.

Man könnte dies nun auch erweitern und zB sagen, dass dieses Hobby nur im Frühling oder in einen Sommermonat passieren soll, wenn man das so will, dann hat man noch in der Liste Month ein paar Auswahlmöglichkeiten.

Kommen wir nun zu unserem Letzten Package

AI Package: „default Sandboxing“
Grundsätzlich sollte man immer ein „default Sandboxing“ Package anlegen, dies taten wir auch, als wir den NPC[1] zum ersten mal erstellt haben. Es gibt Zeiten, wo der NPC[1] keinen Zeitplan zugewiesen hat und da würde er nur in der Gegend blöd herumstehen und nichts machen (Steht also still da ohne sich zu rühren).
Damit es menschlicher wirkt, geben wir dem NPC[1] für alle restlichen Zeiten, wo er für nichts eingeteilt wurde ein „default Sandboxing“.

In unserem Fall wollen wir, dass unser NPC[1] im Ort spazieren geht und die dortigen vorhandenen Idle Marker verwendet.

Wir erstellen also wieder ein neues AI Package, und wählen wieder „Sandbox“ als Package Template aus.
Den Radius setzen wir diesmal auf 1024 (man kann diesen auch höher stellen, da Riverwood aber eine eher kleine Ortschaft ist, sollte 1024 auch ausreichen).
Wir klicken nun wieder auf den Button über den Radius.

Im Render-Window suchen wir uns nun einen IdleMarker in der Mitte der Ortschaft aus und setzen diesen mittels „Select Reference„.

Im Zeitplan („Shedule„) belassen wir alle Felder bei Any.

Das war’s – damit hätten wir nun alle Packages angelegt, jetzt müssen wir nur noch die Reihenfolge festlegen.

AI Packages, Reihenfolge:


Nun sollte die AI Package Übersicht genauso aussehen wie im obigen Bild.
Falls nicht, dann noch die Reihenfolge mit den Pfeilbuttons über der Liste anordnen.

Es sollten die Packages in der richtigen Reihenfolge eingetragen sein, was zuerst kommt sollte auch als erstes dastehen.

Da die Arbeit das erste ist was der NPC[1] am Tag macht, steht dies auch ganz oben in der Liste.
Der Besuch in der Gaststätte steht an zweite Stelle und die Bettzeiten an dritter Stelle.
Das Hobby (Farming), welches nur an Wochenenden stattfindet befindet sich an vierter Stelle.
Und das „defaultSandbox“ Package sollte immer an letzter Stelle stehen.

Wenn die Reihenfolge nun korrekt ist, kann man mit OK Bestätigen und das Plugin speichern.

Wenn man nun in das Spiel öffnet und nach Riverwood (Flusswald) geht, dann findet man den NPC[1] bei einer dieser 5 Tätigkeiten, je nachdem wie spät es ist (Kann man feststellen indem man zB das „Warte-Menü“ im Spiel aufruft, standardmäßig die Taste „T“).

Das Warten (T-Taste im Spiel) kann auch helfen, wenn ihr den NPC[1] noch nicht seht.
Beim letzten Tutorial haben wir unseren NPC[1] schließlich ganz woanders abgestellt, das heißt, er muss einmal nach Flusswald kommen. Sobald er dies gemacht hat, bleibt er auch in Flusswald.

Nun habt ihr einen Follower, der „lebendiger“ ist, allein dadurch weil er einen Zeitplan hat. Jedesmal wenn ihr den Follower also wieder „dismissed“, also nach Hause schickt, wird er in Riverwood seiner Tätigkeit nachgehen.

DOWNLOAD: Falls du die Datei -die hier im Tutorial zu sehen ist- für Vergleiche verwenden willst, so kannst du diese hier downloaden.

Sollte es weitere Fragen hierzu geben, dann einfach unten in den Kommentaren posten!

 

zur CK-Tutorial Übersichtsseite

Definitionen
1. NPC ( NPC )

Non-playable Character - Nicht spielbarer Charakter: Hierbei handelt es sich um computergesteuerte Charaktere in Spielen. - Das Gegenstück dazu wäre ein "PC" stehend für "Playable Character".

Speichere in deinen Favoriten diesen permalink.
Abonnieren
Benachrichtige mich bei
guest

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

1 Kommentar
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Dreifels
9 Monate zuvor

immer noch sehr brauchbar (2023)