PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [HILFE] Kreaturen erstellen, Spawnpunkte setzen



NACHTSCHRAT
19.08.2011, 09:40
Hallo,

ich möchte um eure Hilfe bitten. Ich will, um meiner Mod den nötigen Feinschliff zu geben neue Spawnpunkte mit neuen Kreaturen setzen, welche ich aus einem Resourcen-Packet habe.

Nun stellt sich mir die Frage wie man Kreaturen überhaupt richtig erstellt? Neben den Ordnern für die Meshes und Texturen der Kreaturen habe ich auch noch einen gewissen "locomotion" Ordner. Ich glaube dieser ist für die Animationen verantwortlich, doch habe ich keine Ahnung wie ich diese dann den Kreaturen zuweisen soll. Zudem habe ich oft was von NavMesh gehört. Was ist das?

Auch bräuchte ich Hilfe zum erstellen von neuen und modifizieren von alten Spawnpunkten.

Meine Bitte: Eine Schritt-Für-Schritt Anleitung für das erstellen neuer Kreaturen ( in meinem Fall wären das einige Zombie-Abarten, FEV-Subject, Floater und Wannamingos) und für das spielen mit Spawns.

Ich bedanke mich schonmal im Vorraus. :)

Boïndil
19.08.2011, 10:19
Man kann grundsätzlich Gegner auf zwei Arten spawnen:
1. indem man die Kreatur direkt in die Welt zieht, wo man sie haben möchte.
2. indem man Aktivatoren mit Script in die Welt setzt.

Das zweite hat den Vorteil, dass man mehr Kontrolle per Script hat, z.B. kann man das Level des Players auslesen und darauf angepasst spezielle Kreaturen spawnen. Oder ich habe z.B. eine Funktion, die Zombies nur in der Nacht spawnt. Zudem kann man auch komplexere Gegner-Gruppen spawnen lassen, muss aber nur einen Aktivator platzieren.

Du kannst einen neuen Aktivator unter World-Objects > Activator erstellen und ihm das schon bestehende Script zuweisen. Diesen aktivator kannst du anschliessend in die Welt ziehen.

Beispiel Spawn-Script zufällige Anzahl Maulwurfsratten

scn wlwActivatorMoleRatMoreScript

short SpawnCreated
short EnemyCount
short EnemyMax
Begin OnLoad
If SpawnCreated == 0 && wlwModeAdditionalSpawns == 1 && GetDistance Player < 12000 && wlwModeSpawnActive == 1
Set EnemyMax To wlwModeEnemyActivatorMin + wlwModeEnemyActivatorMax
Set EnemyCount To (GetRandomPercent + 9) / 10
If EnemyCount < wlwModeEnemyActivatorMin
Set EnemyCount To wlwModeEnemyActivatorMin
ElseIf EnemyCount > EnemyMax
Set EnemyCount To EnemyMax
EndIf
PlaceAtMe wlwSpawnMoleRat EnemyCount
Set SpawnCreated To 1
EndIf
End

Beispiel komplexerer Spawn, eine Kakerlaken-Familie

scn wlwActivatorRadroachPestScript

short SpawnCreated
short EnemyCount
short EnemyMax
Begin OnLoad
If SpawnCreated == 0 && wlwModeAdditionalSpawns == 1 && GetDistance Player < 12000 && wlwModeSpawnActive == 1
Set EnemyMax To wlwModeEnemyBabyMin + wlwModeEnemyBabyMax
Set EnemyCount To (GetRandomPercent + 9) / 10
If EnemyCount < wlwModeEnemyBabyMin
Set EnemyCount To wlwModeEnemyBabyMin
ElseIf EnemyCount > EnemyMax
Set EnemyCount To EnemyMax
EndIf
PlaceAtMe wlwRadRoachWarrior 2
PlaceAtMe wlwRadRoachBaby EnemyCount
Set SpawnCreated To 1
Disable
EndIf
End
Anmerkung: Mit Disable am Schluss wird dieser Aktivator beim nächsten Mal nicht mehr spawnen.

Der ideale Gegner sieht vereinfacht so aus:


LeveledZombie
EncZombie
(1)CreaSchwacherZombie
(5)CreaNormalerZombie
(10)CreaHarterZombie
(15)CreaKnallharterZombie

Die Basis ist eine Kreatur (1)CreaSchwacherZombie mit den Eigenschaften, die du haben möchtest, dafür kannst du z.B. einen Ghul kopieren und dann ein anderes Mesh wählen.
Dann brauchst du Duplikate davon, die immer stärker sind oder durch Farben abweichen.

Diese vier Kreaturen werden einer gelevelten Kreatur zugewiesen, diese wiederum als ActorBase einem LeveledZombie. Wenn du jetzt diesen Zombie in die Welt ziehst oder per Script spawnen lässt, wird der Zombie ausgewählt, der am besten aufs Level des Players passt.
Wenn du den gelevelten Zombie direkt reinsetzst, kannst du beim LevelModifier angeben, ob eher die schwachen oder harten gespawnt werden.

Wie du sicher schon gesehen hast, sind Gegner in Typen eingeteilt, alle Mutanten, Zentauren, Ghule, Blähfliegen.
Für jeder dieser Gruppe gibt es einen Ordner unter meshes/creatures, wo sich eine Datei skeleton.nif befindet.
Im Prinzip sind dann sämtliche Animationen und Meshes, die sich im Skeleton-Ordner befinden, automatisch zugänglich. Wenn du einen Overlord in eine Blähfliege verwandeln möchtest, reicht es zumindest in diesem Aspekt, das Skeleton der Blähfliege zu wählen.
Natürlich sollte man immer den Gegner duplizieren, der am ehesten dem gewünschten ähnelt, z.B. ist ein Zombie eigentlich ein Ghul.

Anschliessend würde ich mal die anderen Reiter einer duplizierten Kreatur überprüfen. Meistens reichen Packages wie DefaultSandBoxEditorLocation256 oder so. Bei AI-Data kannst du auch einstellen, wie agressiv oder mutig eine Kreatur ist.

Wenn ich dich wäre, würde ich mal nachsehen, wie das Bethesda mit Ghulen löst, per Use Info kannst du ja mal nachsehen, wie eine Kreatur CrFeralGhoul1A schlussendlich in er Welt platziert ist.

Aaaaaimbot
19.08.2011, 11:59
Zudem habe ich oft was von NavMesh gehört. Was ist das?

Navmeshes sind das, was in Half-Life und Counter-Strike "Wegpunkte" sind: Informationen für die AI (künstliche Intelligenz der Gegner), wo man langlaufen kann und wo nicht. So welche brauchen einen allerdings eigentlich nur dann zu kümmern, wenn man eigene Dungeons oder Außenzellen erstellen will, also neue Gebiete, oder wenn man in die existierenden neue Gänge einbauen will.


Hilfe zum erstellen von neuen und modifizieren von alten Spawnpunkten.

Vorsicht: Was man auf gar keinen Fall tun darf, ist, existierende (also alte) Spawnpunkte zu löschen. Wenn man das nämlich tut, wird das ganze Spiel instabil und läuft nicht mehr richtig. Existierende Spawnpunkte ändern kann man im "Render Window": da sehen Spawnpunkte entweder wie die betreffende Kreatur aus (z.B. ein CrMoleRat sieht wie eine Ratte aus) oder wie ein großes "M". Die kann man anklicken und im Render Window hin und her verschieben, wenn man ihre Position ändern will, oder darauf doppelklicken, um andere Eigenschaften (z.B. den Level-Modifikator bei gelevelten Kreaturen) zu ändern. Neue erstellen tut man, indem man aus dem Objektfenster unter "Creature" die Kreatur auswählt, die man plazieren will, und ins Renderfenster zieht (dort muß man sie dann vermutlich noch etwas hin und her schieben, um die gewünschte Stelle zu erhalten; wenn man F drückt, wird die Kreatur an der aktuellen Position genau auf den Boden gesetzt).

Wichtig ist zu wissen, daß "normale" und "gelevelte" Kreaturen unterschiedlich funktionieren. "Normale" Kreaturen sind festgelegt, wenn man also z.B. eine CrMoleRat in die Welt setzt, so erscheint an dieser Stelle immer eine Maulwurfsratte. "Gelevelte" Kreaturen sind z.B. LvlSuperMutantGun: wenn man diese im Objektfenster öffnet, so sieht man, daß diese auf "EncSuperMutantGun" oder so ähnlich verweist, eine gelevelte Liste, in der verschiedene Mutanten drin sind. Zieht man ein LvlSuperMutantGun ins Renderfenster, so erscheint dort ein großes M; im Spiel kann dort je nach Zufall und Level des Spielers irgendein in der Liste enthaltener Mutant erscheinen. Über den "Level Modifier" (den findet man, wenn man das M doppelklickt) kann man bestimmen, wie hoch das Level des Mutanten maximal sein kann: "None" = keine Einschränkung (das Level kann dann zwischen 1 und dem momentanen Spielerlevel sein), "Easy" = das Level ist halb so hoch wie das des Spielers, "Normal" = das Level entspricht dem des Spielers, "Hard" = das Level ist 1.25mal dem des Spielers, "Boss" = das Level ist das Doppelte des Spielers. Wenn der Spieler also Level 15 ist und der Level Modifier eines Spawnpunktes steht auf "Boss", so kann dort eine Level-30-Kreatur erscheinen (falls es in der gelevelten Liste eine gibt, ansonsten erscheint die Kreatur mit dem höchsten Level unter 30).


Beispiel Spawn-Script zufällige Anzahl Maulwurfsratten

Achtung: Nicht jeder will vermutlich den "GetDistance Player"-Block da drin haben. Der sorgt nämlich dafür, daß wenn der Spieler weit genug weg ist, dann kommt einfach gar nix (siehe Regulator- bzw. Talon-Killerkommando-Aktivierungs-Skript)! :D

NACHTSCHRAT
20.08.2011, 13:39
Ich bedanke mich schonmal für die Antworten. Sollte ich irgendwo hängen werde ich dementsprechend fragen ;).

EDIT: So, 5 Ghulvarianten, Moskitos, FEV-Subject, Parasiten, Protectron MkII, Kampf-Bot, Berserker-Ameise, Köter, 2-Köpfiger Hund und Mutierter Nachtpirscher in die Spawns miteingemischt und ein wenig in der Welt verteilt. Jetzt folgen Wannamingos und Floater. Bin mal gespannt ob das hinhaut, da ich diesmal nicht weis welche exestierende Kreatur ich als Vorlage nehmen soll :O.

EDIT2: Hat alles wunderbar geklappt, ich danke euch :) <3.