Oblivion:NPC-Erstellung

Aus Skript-Wiki
Wechseln zu: Navigation, Suche

Allgemeines

Dieses Tutorial soll die Grundlagen der NPC-Erstellung etwas erleuchten. Wir werden einen neuen Gegner-Charakter erstellen und diesen in einen Dungeon platzieren.

Dieses Tutorial geht nicht auf Dialoge oder Quest-Erstellung ein.

Erstelle einen neuen NPC

In diesem Tutorial wollen wir nun einen speziellen Boss-NPC für unsere Höhle "Creepy Cave" aus dem Dungeon-Tutorial erstellen. Daher laden wir wieder unser Plugin "CreepyCave" und dort die Boss-Höhle "CreepyCave02" und lösche dort "LL1BanditBossLvl100" (wenn du das Plugin noch nicht gemacht hast, oder schon wieder gelöscht hast, geht natürlich auch jede andere Höhle. Erstelle ein neues Plugin).

Es ist meist hilfreich, wenn man bereits vorhandene NPCs als Vorlagen für neue nimmt. Für unser Beispiel suchen wir unter Actors->NPC das Objekt "BanditBossFemale1". Doppelklicke es, um das NPC-Fenster zu öffnen.

Fenster-NPC.jpg

Wichtig! Bevor du irgendetwas veränderst, ändere die ID in einen anderen einzigartigen Namen. Damit vermeidest du, das irgendwelche versehentlichen Änderungen für den existierenden Charakter gelten und dieser dann vielleicht nicht mehr richtig funktioniert. Wenn du "OK" klickst, nachdem du die ID geändert hast, wirst du gefragt, ob du einen neuen Charakter erstellen willst (Kopie) oder den Charakter umbenennen willst. Mit "OK" erstellen wir einen neuen Charakter.


Editieren der NPC-Einstellungen

Erklären wir nun, was die einzelnen Felder auf der linken Seite zu bedeuten haben.

  • ID - Editor ID für diesen NPC. Muss einmalig sein. Ich habe einfach eine 4 angehängt.
  • Name - NPC Name, der auch im Spiel angezeigt wird. Sollte in jedem Fall ausgefüllt werden
  • Script - Skripte können an einen NPC angehängt werden. Dieser Charakter bekommt aber keine.
  • Class - Die Klasse, die der Charakter haben soll. Unser Bandit ist aber eine spezielle Klasse. Um Details über vorgefertigte Klassen zu bekommen, wähle "Character/Class" aus dem Programm-Menü.
  • Summonable - Bleibt frei
  • Offset - Hier kann man angeben, um wie viel höher oder niedriger der Charakter-Level in Bezug zu dem des Spielers liegen darf.
  • PC Level Offset - Hiermit schaltet man das Offset ein, so dass der NPC sich dem Spieler-Level anpasst. Unser NPC soll einen Level höher sein.
  • Calc Min/Max - Hier kann man einen Mindest- und Höchstlevel für den Charakter eingeben. Das kann hilfreich sein, wenn man zum Beispiel einen Dungeon mit einem Mindest-Level erstellen möchte. Gibt man hier also als "Calc Min" 10 ein, würde ein Level 1 Spieler keine Chance gegen den Gegner haben. Für unseren NPC lassen wir die Werte aber auf 1 und 0, was heißt, das der NPC sich immer auf dem Level des Spielers befindet.
  • Race - Die Rasse, die der NPC haben soll. Aus der Dropdown-Liste kann man aus einer der Rassen wählen.
  • Female - Hier kann man den Charakter "weiblich" definieren. Der Körper verändert sich dann in einen Frauenkörper.
  • Death Item - Hier kann man einstellen, welches besondere Item der NPC nach seinem Tode hinterlässt. Dieses Item kann nicht vorher "gestohlen" werden. Das ist z.B. gut für Sachen, die man einfach nicht "lebend" entfernen kann, wie z.B. das Deadra-Herz, das ja nur nach dem Ableben entnommen werden kann.
  • Essential - Wird nur bei speziellen NPCs gebraucht und wird durch ein Script kontrolliert. Wird dieses Feld aktiviert, kann der NPC nicht getötet werden und wird beim Angriff höchstens KO geschlagen. Dieses ist vor allen Dingen für Quest-Geber wichtig, damit diese nicht ableben und die Quest unvollendet bleiben muss.
  • Respawn - Ist dieses Feld aktiviert, wird der NPC wiederbelebt, wenn die Zelle neu geladen wird. Bei diesem Boss-Gegner wollen wir das und aktivieren das Feld.

Dir wird auffallen, das einige Werte unter "Stats" inaktiv sind. Das liegt daran, dass wir "PC Level Offset" aktiviert haben und diese Werte nun vom Programm gesteuert und berechnet werden.

Für uns ist nun der "Faction"-Reiter interessant. Wir belassen die "BanditFaction" hier, brauchen aber noch eine weitere. Dazu müssen wir eine weitere Faction in dieses Fenster ziehen. Hierfür öffnen wir das Menü Character->Factions.

Nun such dir eine weiter Faction aus. Am besten keine, die der Spieler angehören könnte (MageGuild, FightersGuild). Ich nehme die NenalataFaction. Diese ist "Evil" und "Hidden from PC". Wir ziehen die Faction einfach vom Factions-Fenster in den Faction-Reiter des NPCs. So einfach geht das.


Editieren des Aussehens

Klicke auf den "Face"-Tab. Dieser Tab bietet uns einige grundlegende Möglichkeiten in Form von Alter-, Hautfarbe- und Haar-Schiebereglern. Zusätzlich können wir unseren Haarstil, –farbe und Augenfarbe ändern oder zufällige Gesichtszüge generieren lassen.

Fenster-npc-face.jpg

Die "Lock"-Radiobuttons ermöglichen es uns, die Schieberegler manuell zu verändern und dann den "generate"-Button zu verwenden, um alle anderen Eigenschaften des Gesichts zufällig verändern zu lassen. Eine Anmerkung zur Haarfarbe: sehr helles Haar kann verlockend sein, passt aber größtenteils nicht zum Fantasy-Stil von [ob:Oblivion|Oblivion]]. Widerstehe der Versuchung! Versuche es mit dieser Technik, um neue Haarfarben zu erstellen:

  • drücke "Select Color"
  • wähle eine helle Farbe, die du magst
  • rechts gibt es einen vertikalen Balken mit einem Pfeil als Schieberegler
  • verschiebe den Pfeil fast ganz nach Schwarz
  • drücke OK, um die Vorschau zu sehen

Normalerweise genügt es, ein Gesicht zufällig erstellen zu lassen und dann weiterzumachen, besonders für Gegner wie diesen Boss-NPC. Für verfeinertes Tuning gibt es jedoch noch den "Face Advanced"-Tab.


Fenster-npc-face-advanced.jpg

Dieser Tab eröffnet einem Myriaden an Möglichkeiten und ist sogar umfangreicher wie der Ingame-Editor für das Gesicht. Du kannst einmal das NPC-Fenster mit "OK" schließen und dann wieder öffnen. Anschließend wechselst du wieder zum "Face Advanced"-Reiter und experimentierst etwas herum. Wähle einen Eintrag aus der Liste und bewege den Slider an der Linken Seite. Du wirst sehen, wie sich Teile des Kopfes verändern. Manches kann den Kopf arg verunstalten. Du kannst aber auch den Kopf drehen. Gehe mit dem Mauszeiger auf den Kopf. Mit der linken Maustaste "greifst" du ihn und kannst ihn herumschwenken. Wenn du jetzt aber mit der rechten Maustaste klickst, kannst du Teile des Kopfes "greifen" und quasi manuell verändern. Das geht meist noch viel leichter und schneller, kann aber auch ganz schön in die Hose gehen. Wenn der Bandit nun aussieht wie ein Schimpanse mit Mumps, klicke "Cancel" und alle Einstellungen werden verworfen (deswegen solltest du eben das Fenster einmal kurz schließen). Eigentlich eine gute Methode zum Herumexperimentieren.

Mit "Copy & Paste" (Kopieren und Einfügen) kannst du Gesichtseinstellungen auch auf andere NPCs übertragen. Das ist vielleicht dann interessant, wenn du einem vorhandenen NPC das Gesicht eines anderen NPCs auflegen willst (wenn du z.B. einen männlichen NPC weiblich machen willst und die Gesichtseinstellungen nicht manuell eingeben willst).

In diesem Fenster findest du außerdem die Wechsel-Optionen "Control Type": Hier kannst du entscheiden, ob du hier die Beschaffenheit des Gesichtes verändern willst ("Geometry") oder die Textur ("Texture").

In der Auswahl "Symmetry Type" kannst du dich entscheiden, ob du symmetrisch oder asymmetrisch arbeiten willst. Diese Einstellung gilt nur, wenn du im "Geometry"-Modus arbeitest. Wenn du "Symmetry" wählst, werden alle Einstellungen angezeigt, die sich auf Beide Gesichtshälften bezieht (empfohlen). Wählst du "Asymmetry" werden die Einstellungen angezeigt, die sich nur auf eine Gesichtshälfte bezieht bzw. für unterschiedliche Stellen. Damit kann man dann besondere Merkmale am Kopf einstellen, was aber eher seltener genutzt wird.

Für unseren Charakter haben wir die Augen (Brow Ridge Inner Up/Down)etwas verändert, soll ja ein Bandit und keine "nette Dame" sein. Außerdem den Mund (mouth-Happy/Sad) auf -10 gezogen. Für diesen Gegner, den der Spieler quasi nur ein paar Sekunden zu Gesicht bekommt (wenn überhaupt), sind weitere Einstellungen eigentlich unnütz. Bei NPCs, mit denen der Spieler auch redet (und somit auf "Nahaufnahme" geht), kann man ruhig mehr ins Detail gehen.


Ändern des Inventars und der Zaubersprüche des NPCs

Inventar

Öffne nun den "Inventory"-Tab:

Fenster-npc-inventory.jpg

Du wirst eine Menge Gegenstände, die mit LL anfangen, in dieser Liste finden. Das ist die Standard-Vorsilbe für gelevelte Listen. Da wir einen Vorlagen-NPC verwenden, müssen wir hier nichts hinzufügen – sein Inventar enthält alle Ausrüstung, die er benötigt, um dem Spieler einen herausfordernden Kampf und lohnende Kriegsbeute zu liefern. Wenn dieser NPC jedoch einen bestimmten Gegenstand tragen soll (Notizen oder Schlüssel zum Beispiel), müsstest du den Gegenstand aus dem Objekt-Fenster in diese Liste ziehen.

Man beachte auch, dass man ein hypothetisches Spieler-Level eintragen und "Preview Calculated Result" drücken kann. Dadurch öffnet sich ein Popup-Fenster mit einer Liste an Gegenständen, die der Editor per Zufall aus der Liste gewählt hat. Das mehrmalige Ausführen dieses Tests ist eine gute Möglichkeit, um dein Inventar zu testen, ohne das Spiel dafür starten zu müssen.

Zauberliste

Als nächstes öffnen wir den "SpellList"-Tab:

Fenster-npc-spells.jpg

Diese Liste ist leer, aber lass uns diesem Boss einige grundlegende Veränderungs-Fähigkeiten geben, da er in der Schule dieser Magie ein wenig bewandt ist (die Info findet man im Stats-Tab).

Navigiere im Objekt-Fenster zu Magic->LeveledSpell und ziehe die LL1AlterationMinorLvl100-Spruchliste auf den NPC. Das bereitet ihn auf einen Kampf mit einigen Veränderungs-Sprüchen, passend zum Spielerlevel, vor. Nun kann sie sich mit ein paar Veränderungs-Zauber auf den Kampf vorbereiten.


Ändern der grundlegenden KI und Pakete

Schließlich wollen wir diesem NPC noch etwas mehr wie das Standardverhalten mitgeben. Drücke den "AI"-Button, um das AI-Fenster zu öffnen.

Tut-npc-ai.jpg

Wir beschäftigen uns nur mit dem Fensterteil der AI-Attribute und der AI-Paket-Liste. Die anderen Einstellungen sind für Verkaufs- und Trainer-NPCs.

Wir können die voreingestellten AI-Attribute des Original-NPCs beibehalten. Aggression und Confidence (Zuversicht) auf 100 bedeutet, dass er sich mit jedem Feind anlegt und nie davon rennt. Du kannst mit diesen Werten herumspielen, um verschiedene Verhaltensweisen zu erreichen und z.B. die Confidence senken, damit der NPC eher mal vor einem Kampf flieht. Das Energy-Level und die Responsibility (Verantwortung) führen zu anderen AI-Verhaltensweisen und müssen für diesen NPC nicht angefasst werden.

Wir werden nun die "Packages" ändern. Zunächst löschen wir alle vorhandenen Pakete und fügen gleich neue hinzu. Die Vorsilbe der Pakete ist "aaa". Dieses sind "Basis-Pakete", die mit jeder Kreatur oder jedem NPC genutzt werden können.

Mit den letzten dreien ist der Bandit in der Lage zu essen und zu schlafen.

Öffne nun im Programmmenü "Creatures->Pakete" und ziehe die folgenden Pakete in die Paket-Liste.

  • aaaCreatureInterior512
  • aaaCreatureExterior1500
  • aaaEat10x2
  • aaaEat20x2
  • aaaSleep22x8

Die Namenskonvention für die letzten drei gibt auch eine Zeitinformation. Die erste Zahl ist eine Zeit nach Militärsprache und die zweite Zahl ist die Dauer. Unser NPC wird also um 10 Uhr morgens und 8 Uhr abends zwei Stunden lang essen und ab 10 Uhr abends acht Stunden schlafen. Dieses Verhalten gibt dem Spieler die Möglichkeit, leichter heranzuschleichen und ihn und seinen Lebensraum auszurauben, ohne ihn direkt konfrontieren zu müssen.

Die AI arbeitet die Liste von oben nach unten ab und wählt das erste Paket aus, dessen Bedingung erfüllt ist. Stelle also sicher, dass die Wander-Pakete am Ende der Liste sind. Da sie an keine Bedingungen (wie Zeit oder Dauer) gebunden sind, würde die AI immer eins davon auswählen, was bedeutet, dass der NPC nie essen oder schlafen würde, wenn diese Pakete unter den Wander-Pakete in der Liste sind.

Speichern und Testen

Nochmals: stell sicher, dass du die ID geändert hast, bevor du auf OK drückst, weil du ansonsten den schon vorher dagewesenen NPC überschreibst, den wir als Vorlage genommen haben.

Jetzt bist du soweit, den NPC in das Zimmer CreepyCave02 (oder wo immer du willst) zu ziehen. Es ist sinnvoll, sie wegen ihres Schlaf-Pakets in die Nähe des Bettes zu setzen und du könntest für sie auch weiteres Essen ins Zimmer stellen.

Du kannst auch essen in ihr Inventar legen und die Menge auf "-1" (Minus eins) setzen, was bedeutet, das ihr niemals das Essen ausgeht. Das ist hilfreich, damit die NPCs nicht die ganze Umgebung nach Essen absuchen und somit unerwünschte Verhaltensweisen hervorrufen.

Das wars! Du kannst dieses Plugin speichern und wie üblich testen. Du hast jetzt einen speziellen Boss nur für deinen Dungeon und kannst alle Einstellungen, über die wir etwas gelernt haben, verändern, um das Spielerlebnis zu perfektionieren.


Links