Ressourcen-Icon

NPCs erschaffen und sie das Sprechen lehren

Nun wissen wir bereits, wie man ein eigenes Haus erstellen kann, wie man eigene Gegenstände erstellen kann und noch einiges mehr. Doch nun wollen wir doch noch einen NPC erstellen und ihn zumindest dazu bringen, mit dem Spieler zu sprechen. Dieses Tutorial befasst sich nicht mit den Tagesabläufen, den Handels-/Traings-/... Menus oder Quests, sondern nur mit der simplen Erschaffung eines NPCs und mit der Zuordnung einiger Dialoge.

1. Vorbereitungen

Nachdem wir das CS geöffnet haben sollten wir uns erst einmal darüber klar werden, wo unser NPC leben soll und ob er eine bestimmte Bedeutung haben soll. In diesem Tutorial wollen wir einen Fischer in Weye erstellen, dem Dorf am Ende der großen Brücke zur Kaiserstadt, in dem wir im obigen Tutorial von Lord Dagon auch unser Haus erstellt haben. Er soll uns mit einem Text über sich begrüßen, soll uns einen bestimmten Text über Weye erzählen und uns ein allgemeines Gerücht mitteilen. Wir gehen also nach Weye und öffnen das Haus, am besten das Interior.

2. Den NPC erschaffen

Wir gehen nun im „Object Window“ auf „Actor -> NPC“ und erstellen dort einen neuen NPC (Rechtsklick „New“). Es ist unumgänglich, den neuen NPC genau auf diese Weise zu erstellen! Wenn wir bei einem vorhandenen NPC die ID ändern (wie es bei Objekten ja problemlos geht) und so einen neuen erstellen, gibt das heftige Probleme mit den Dialogen. Also unbedingt auf „New“ einen neuen erstellen! Wir geben ihm wie gehabt eine ID und geben ihm einen Namen.

2.1 Die Grundinformationen des NPCs

Mein NPC heißt Fischer Greg. Das Feld „Script“ lassen wir so, wie es ist, nämlich auf „NONE“. Würden wir wollen, dass unser Fischer z.B. erst dort ist, wenn die Story fertig ist, müssten wir ein Script schreiben und es ihm zuordnen, doch das lassen wir lieber.
Bei „Class“ wählen wir die Charakterklasse aus, also z.B. Krieger, Dieb, Kampfmagier, Barde oder was auch immer. Mein Fischer Greg wird „Farmer“ (Bauer). Das Häkchen bei Summonable lassen wir weg.
Als nächstes müssen wir das Level unseres Charakters einstellen. Wir können ihm ein Standardlevel geben, z.B. Level 5. Alternativ könnten wir auch das Häkchen bei LevelOffset aktivieren. Wenn wir den LevelOffset aktivieren heißt das, dass sich das Level des NPCs an das des Spielers anpasst. Dies ist aber eigentlich nur für Banditen, Wachen oder Kreaturen sinnvoll. Für normale NPCs würde ich den LevelOffset nicht verwenden. Wenn wir ihn aber auswählen, dann können wir bei Offset (dort wo vorher Level stand) einen beliebigen Wert einstellen. 5 würde bedeuten, dass der NPC immer fünf Level höher ist als der Spieler, -3 dass er immer drei drunter ist und 0, dass er dasselbe Level hat. Darunter können wir noch einstellen, dass sich das Level des NPCs nur in einer bestimmten Spanne bewegt, z.B. dass er immer ein Level von 7-18 hat. Ich gebe meinem Fischer Greg das Level 5, ohne LevelOffset.
Bei „Race“ wählen wir die Rasse aus (Greg ist ein Kaiserlicher, also Imperial), das Häkchen bei „Female“ macht ihn weiblich, ohne Häkchen ist er ein Mann (Fischer Greg ist natürlich ein Mann). „Combat Style“ legt die Art fest, mit der der NPC kämpft - bei mir ist es „Default“, der Standardkampfstil. Unter „Death Item“ können wir ein Leveled Item auswählen, dass der NPC zusätzlich zu den Sachen in seinem Inventar bei seinem Tod bei sich trägt - bei mir ist es „LL0GoldLeveled10“, d.h. eine kleine Zufallsmenge Gold.

2.2 Weitere Informationen des NPCs

Den unter „Leveled Item“ liegenden Button lassen wir ganz in Ruhe. Kommen wir zu den Häkchen: „Quest Item“ bedeutet, dass dieser Charakter in seinen Handlungen gegenüber normalen NPCs Vorrang hat, d.h. dem Spieler schneller durch eine Tür folgen könnte als eine normale Wache o.ä.; „Essential“ bedeutet, dass der Charakter nur bewusstlos gemacht werden kann, da er für den Hauptquest unerlässlich ist; „Respawns“ bedeutet, dass er, wenn er tot ist, nach einer Zeit wieder erscheint (für Wachen wichtig, nicht aber für sonstige NPCs); die Bedeutung von „Can Corpse Check“ kenne ich nicht sicher - ich denke aber, dass es bedeutet, dass der NPC Leichen untersuchen und sich an diesen bedienen kann (z.B. einem toten Wild das Fleisch entnehmen); „No Persuasion“ bedeutet, dass man den NPC nicht bestechen oder überreden könnte; „No Rumors“ heißt, dass der NPC das Topic „Gerüchte“ nicht hat - da unserer uns aber ein Gerücht erzählen soll darf hier kein Häkchen sein; „No Level Processing“ bedeutet, dass der NPC im Level nicht fortschreiten kann. Bei „Auto calc stats“ können wir entscheiden, ob die Charakterwerte nach Klasse und Level vorberechnet sein sollen, oder ob wir sie manuell einstellen wollen. Wenn wir wollen, dass der NPC irgendeinen Dienst anbietet (z.B. Training, Reparatur oder Handel) dann darf „Auto calc stats“ nicht aktiviert sein. Man kann auch das Häkchen bei „Atuo calc stats“ aktivieren, damit er die automatischen Werte berechnet, und es dann wieder entfernen - die Werte bleiben erhalten und es ist doch kein Häkchen mehr da.
Ganz unten können wir noch einen Haar- und einen Augentyp auswählen.



2.3 Gilde, Inventar, Zaubersprüche und Gesicht

Nun können wir bei den Tabs wo auch „Stats“ ist die anderen auswählen. Bei „Factions“ können wir aus dem Fenster, das wir durch „Character -> Faction“ kriegen eine Gilde reinziehen (oder mehrere) und unseren Greg dort Mitglied sein lassen. Mein Greg ist kein Gildenmitglied.
Unter „Inventory“ können wir sein Inventar einrichten. Meiner kriegt einen Bogen, 40 Pfeile, einen Lederharnisch, eine Hose und ein paar Schuhe, außerdem 30 Gold. Dazu ziehen wir die entsprechenden Sachen aus dem Object Window in das Inventory-Tab-Feld. Bei dem Pfeil klicken wir mit einem Dreifachklick auf die Zahl links und ersetzen sie durch 40, bei dem Gold ersetzen wir die eins durch eine 30. Wir können ihm noch mehr geben, z.B. Nahrung, aber mir reicht das:



Bei „SpellList“ können wir dem guten Greg Zaubersprüche, Eigenschaften usw. hinzufügen, ebenfalls per Drag&Drop aus dem „Object Window“. Mein Greg soll mit Magie nichts am Hut haben. Von Animation lassen wir die Finger.
Bei „Face“ und „Face Advanced“ können wir mit dem Gesichtsgenerator, den wir aus dem Spiel kennen (in einer etwas anderen Form) das Gesicht von Greg festlegen. Nun müssen wir Greg nur noch per Drag&Drop aus dem „Object Window“ in die entsprechende Zelle im „Render Window“ ziehen. Nun können wir uns unseren guten Greg ingame einmal anschauen (links sein Gesicht im CS und rechts ingame):

RTEmagicC_NPCs_erschaffen_03.jpg.jpg


2.4 Die Künstliche Intelligenz und Dienste

Nun wollen wir uns noch ein wenig an die Künstliche Intelligenz setzen. Dazu müssen wir im NPC-Fenster links unten auf den Button „AI“ klicken. Es öffnet sich ein Fenster, in dem wir einige Dinge einstellen können.
Zuoberst können wir seine Stimmungsarten einstellen. „Aggression“ bestimmt, wie wahrscheinlich sich Greg in einen Kampf verwickeln lässt. Der Wert orientiert sich am Disposition-Wert (d.h. dem Wert, wie sehr man andere Leute mag, den man durch Bestechen o.ä. beeinflussen kann). Wenn wir hier z.B. 45 einstellen, dann wird er den Spieler angreifen, sobald dieser in seiner Beliebtheit unter 45 gesunken ist (es gilt aber nicht nur für den Spieler sondern für alle NPCs). Ein Wert von 5 oder darunter bedeutet, dass er nie einen Kampf beginnen wird. Ein Wert von 0 bedeutet, dass er sich nicht einmal wehren wird.
„Confidence“ legt fest, wie wahrscheinlich er im Kampf fliehen wird. Je höher, desto standhafter ist er. „Energy Level“ seine Aktivität beim Herumlaufen. „Responsibility“ legt die Seriösität fest. Ein Wert unter 30 bedeutet, dass Greg ein Verbrechen begehen könnte (z.B. Nahrung stehlen); der Wert100 heißt, dass er dem Spieler direkt und ohne eine Wache in der Nähe ein Kopfgeld verpassen kann.
Wenn „Auto calc stats“ inaktiv ist können wir ihn nun Dienste anbieten lassen. Bei „Buys / Sells“ können wir einstellen, womit er handelt (keine Trennung zwischen An- und Verkauf möglich). „Recharge“ bedeutet Wiederaufladen von Gegenständen, „Repair“ bedeutet reparieren und „Training“ was er trainiert (der Wert stellt ein, bis zu welchem Skillwert er maximal trainiert).
Unter „Ai Package List“ können wir unserem NPC seine Tagesabläufe und Handlungen einstellen. Wir wollen uns hiermit nun nicht näher beschäftigen - das würden den Rahmen des Tutorials sprengen. Ich werde auf dieses Thema in einem anderen Tutorial näher eingehen. Das Fenster, das wir nun mit „OK“ bestätigen, sollte ca. so aussehen:



2.5 Den NPC in die Welt setzen

Das soll es nun fürs erste gewesen sein mit der Künstlichen Intelligenz (wie gesagt, in einem anderen Tutorial werde ich näher darauf eingehen) und auch mit der Erstellung unseres guten Greg. Nun müssen wir ihn noch per Drag&Drop in die Welt (in die Zelle „Weye Exterior“ in der Welt „Tamriel“) ziehen, und schon haben wir es geschafft: Greg steht im Dorf Weye, und wartet nur auf den Spieler. Wir können uns das Ganze nun schon einmal ingame anschauen. Im Tutorial geht es nun mit den Dialogen weiter.

3. Dem NPC Dialoge geben

Wie wir oben sehen können hat der arme Greg bisher nur das Topic „Gerüchte“. Begrüßen tut er uns mit einem Standardtext wie „Was wollt Ihr?“. Das wollen wir nun zuerst ändern. Wir wollen ihm eine angemessene Begrüßung geben, und dann noch ein Topic „Weye“ erstellen, damit er uns auch etwas über seine Heimat erzählen kann.

3.1 Einen Quest für Weye erstellen

Zuerst müssen wir einen Quest für das Dorf Weye erstellen. In Oblivion sind alle Dialoge über die Quests geregelt. Wir gehen also in der Menuleiste auf „Character -> Quests“ und klicken in der Leiste links auf „New“. Wir orientieren uns im Folgenden an den Städte-Topic-Quests von Oblivion. Wir geben dem neuen Quest die ID „NQDWeye“. Bei „Priority“ geben wir 11 ein. Bei „Quest Conditions“ erstellen wir „GetIsPlayableRace“. Die anderen Felder lassen wir so, wie sie vorgegeben sind.
Die oben angegebenen Taps sind nun allesamt irrelevant; bis auf „Topics“. Dort können wir nun in der Spalte „Editor ID“ per Rechtsklick „Add Topic“ machen. Dort müssen wir nun wieder einen Rechtsklick machen und dann „New“ klicken. Wir nennen es „WeyeTopic“ und fügen es dann hinzu. Außerdem fügen wir noch das Topic „GREETING“ hinzu - für die Begrüßungen.

3.2 Das Greeting erstellen

Wir klicken nun „GREETING“ an und gehen ins „Info“ Fenster. Dort machen wir dann per Rechtsklick „New“. Im folgenden Fenster geben wir oben unseren gewünschten Text ein (z.B.: „Seid gegrüßt. Ich bin Greg, Fischer. Mein bescheidenes Dasein friste ich hier in Weye.“). Der Rest ist für Scripts oder aber für die Sprachausgabe, was wir hier beides vernachlässigen wollen.
Im unteren Teil könnten wir noch weitere Sachen einstellen. Ganz unten unter „Conditions“ können wir Bedingungen einstellen, z.B. „SameSex“ würde bedeuten, dass der Spieler dasselbe Geschlecht sein muss wie der NPC um die entsprechende Antwort zu erhalten. Dort müssen wir nun einstellen, dass es nur unser Greg sagt. Ansonsten würde uns auch jeder andere NPC in Cyrodiil erzählen, dass er der Fischer Greg ist. Und das wollen wir nicht. Hier kommen wir nun um die „Conditions“ nicht herum. Wir klicken einfach auf „New“. Im Feld rechts davon wählen wir „GetIsID“ aus. Im nächsten steht nun „Invalid“ - wenn wir darauf klicken müssen wir die ID unseres guten Greg auswählen. Bei „Comparison“ lassen wir das „==“ stehen, und bei „Value“ ebenfalls die „1.0000“. Das Ergebnis.
Bei den Häkchen rechts könnten wir noch weitere Sachen einstellen, z.B. „Goodbye“, falls durch die entsprechende Antwortmöglichkeit das Gespräch automatisch beendet wird oder „Say Once“ falls der NPC diese Antwort nur einmal geben soll. Ich wähle „Say Once“ und erstelle noch eine zweite Antwortmöglichkeit („Ihr wisst doch schon, wer ich bin. Greg, der Fischer.“), welche ich genau unter der ersten platziere.
Nun müssen wir die beiden noch in die richtige Reihenfolge bringen. Das CS arbeitet alle vorgegebenen Möglichkeiten von oben nach unten ab. Zum Verschieben brauchen wir die Pfeiltasten (linker Pfeil zum Hochschieben, rechter zum Runterschieben). Es sollte nun ca. so aussehen:



Im Spiel: Beim ersten Anreden benutzt Greg die erste Möglichkeit („Seid gegrüßt. Ich bin...“). Da diese mit dem „Say Once“ versehen ist, wird er sie beim zweiten Mal nicht mehr verwenden, sondern dann die zweite sagen („Ihr wisst doch schon...“), und die nun jedes Mal (außer wenn der Spieler etwas Anderes, wichtigeres, getan hat).

3.3 Das Topic Weye bearbeiten

Doch die Begrüßung ist erst die halbe Miete - denn außer dem Gerücht weiß unser guter Greg uns leider nichts zu erzählen. Nun soll er uns etwas über „Weye“ erzählen, das Dorf in dem er lebt.

Um dafür zu sorgen, dass das Topic auch wirklich im Spiel aktiv wird müssen wir es irgendwie hinzufügen. Das machen wir am einfachsten, indem wir an Gregs erste Begrüßung ein Miniscript anhängen. Wir schreiben einfach in das Fenster „Result Script“ folgendes: „AddTopic WeyeTopic“. Sobald Greg nun also den Spieler so begrüßt wird das Topic „Weye Topich hinzugefügt. Kommen wir nun zum Topic selbst.
Dazu wählen wir „WeyeTopic“ aus. Das Eingabefeld „Topic Text“ ändern wir auf „Weye“ um. Bei Info können wir nun wie gehabt einen Text eingeben. Nun müssen wir wieder „GetIsID“ auf Greg stellen. Wir sollten nun auch noch ein solches Topic für Aelwin Merowald erstellen, den anderen Einwohner von Weye. Wie das geht sollte mittlerweile klar sein (bei „GetIsID“ müssen wir halt „AelwinMerowald“ eingeben).
Nun wollen wir noch eine Antwort erstellen, die beide geben würden, aber nur, wenn sie den Spieler nicht mögen. Wir geben also bei Info einen neuen Text ein (z.B.: „Hier in Weye kommen schon viele sonderbare Leute vorbei, aber Euch dulden wir hier nicht. Also macht, dass Ihr wegkommt!“). Bei Conditions müssen wir nun erst einmal eine „GetIsID“ für Greg einstellen, dann das Häkchen bei „OR“ aktivieren, und nun eine für Aelwin erstellen. Außerdem müssen wir einstellen, dass die beiden den Spieler nicht mögen müssen: „GetDisposition“ und dann rechts „<=“ und „25.0000“ - wenn der Spieler bei einem der beiden die Beliebtheit 25 oder geringer hat, so antwortet dieser wie beschrieben. Dies hat aber auf den anderen keinen Einfluss.

Außerdem wollen wir, dass das Gespräch hiernach beendet wird. Wir müssen das Häkchen bei Goodbye aktivieren. Und zu guter letzt wollen wir, dass der Sprecher den Spieler hiernach noch weniger mag: Wir geben bei „Result Script“ folgendes ein: „ModDisposition player -12“ (Anführungszeichen natürlich weglassen).
Schließlich wollen wir noch etwas machen, was die Leute in der Kaiserstadt über Weye erzählen (z.B.: „Ein kleines Fischerdorf am Festland.“). Wir erstellen bei Info ein neues Topic und geben als Condition „GetInWorldspace“ an. Nun müssen wir per „OR“ auf diese Weise alle Welten hinzufügen, die mit „IC“ anfangen (da dies die Kaiserstadtwelten sind). Dann sagen alle Menschen in der Kaiserstadt auf das Topic genau diese Antwort (wir könnten es natürlich auch aufteilen, sodass z.B. die Menschen auf dem Marktplatz etwas Anderes erzählen als jene in der Universität). Letzten Endes sollte es ungefähr so aussehen:



Wenn wir uns das ganze nun ingame anschauen, sollten wir feststellen, dass Greg uns genau das sagt, was er sagen soll, und auch genau dann, wann er sollte. Dasselbe gilt für Aelwin und die Bewohner der Kaiserstadt (die nun alle das Topic Weye haben sollten). Wir könnten noch viel mehr machen, doch das Geschaffte soll uns fürs Erste genügen. Viel Spaß. So sieht es bei mir am Ende aus:

Autor
ElderScrollsPortal.de
Aufrufe
4.310
Erstellt am
Letzte Bearbeitung
Bewertung
1,00 Stern(e) 1 Bewertung(en)

Weitere Ressourcen von ElderScrollsPortal.de

Aktuellste Rezensionen

G
Anleutung abweichend von meinem TES4DV (nur einBeispiel: Klick auf NPC ergibt keine Auswahl für NEU, sondern gar keine Reaktion) und für Anfänger zu unklar, oberfächlich. Das "Adding Custom NPC’s to the Partners Mod v.1.8" zeigt, wie man es richtig macht.