Oblivion:Grundlegendes Patrol Tutorial: Unterschied zwischen den Versionen

Aus Skript-Wiki
Wechseln zu: Navigation, Suche
(Übersetzter Text eingefügt)
 
K
Zeile 6: Zeile 6:
  
 
== Einstellen des Packages ==
 
== Einstellen des Packages ==
Das allererste was wir machen werden ist, einen NPC zu erstellen, der unsere Packages bekommt. Öffne den NPC "BanditMeleeMale2" und gib ihm die neue ID "MyPatrolTemplate01".(Warum wir das machen wird später erklärt)
+
Das Allererste, was wir machen werden, ist einen [[ob:NPC|NPC]] zu erstellen, der unsere [[ob:Package|Packages]] bekommt. Öffne den NPC "BanditMeleeMale2" und gib ihm die neue ID "MyPatrolTemplate01".(Warum wir das machen, wird später erklärt)
Öffne nun das [[ob:AI|AI-Menü]] dieses [[ob:NPC|NPCs]]. Wir können die Banditen-Packages entfernen, jedoch ist es sinnvoll ein einfaches Wander-Template am Ende jeder Package-Liste zu behalten. Entferne jetzt also ''BanditSleep4x4'' und ''BanditGruntWanderExterior''.
+
Öffne nun das [[ob:Package WindowI|Package Window]] (AI) dieses [[ob:NPC|NPCs]]. Wir können die Banditen-Packages entfernen, jedoch ist es sinnvoll, ein einfaches Wander-Package am Ende jeder Package-Liste zu behalten. Entferne jetzt also ''BanditSleep4x4'' und ''BanditGruntWanderExterior''.
  
 
Öffne nun aus der Toolbar das Package-Menü. ''(Character>>Packages)''  Suche das Package ''GuardPatrolBeginPatrol''. Dies dient als Standard-Package für alle Patrols die mit unserer Methode erstellt werden.
 
Öffne nun aus der Toolbar das Package-Menü. ''(Character>>Packages)''  Suche das Package ''GuardPatrolBeginPatrol''. Dies dient als Standard-Package für alle Patrols die mit unserer Methode erstellt werden.
 
Bevor wir allerdings weiter machen, benötigen wir Platz für unser Patrol.  Im Nachhinein hätte nach Vilverin zum Beispiel sehr gut ein Patrol gepasst, lasst uns diesen Fehler also nun beheben. Lade es aus der Zellenliste und wirf einen Blick in die Hauptkammer.
 
Bevor wir allerdings weiter machen, benötigen wir Platz für unser Patrol.  Im Nachhinein hätte nach Vilverin zum Beispiel sehr gut ein Patrol gepasst, lasst uns diesen Fehler also nun beheben. Lade es aus der Zellenliste und wirf einen Blick in die Hauptkammer.
<blockquote>Es gibt ein paar Dinge, die beim Erstellen eines Patrol-Pfades beachtet werden sollten. Vermeide eine Route, die den NPC durch Fallen oder andere gefährliche Gebiete führt.  Bedenke auch, dass jeder Gegner auf dem Weg an das Level des NPCs angepasst sein sollte.  Du solltest außerdem eine Route wählen, die lang genug ist um den Spieler das Ping-Pong-Verhalten nicht bemerken zu lassen, was ein Patrol nämlich künstlich wirken ließe.</blockquote>
+
<blockquote>Es gibt ein paar Dinge, die beim Erstellen eines Patrol-Pfades beachtet werden sollten. Vermeide eine Route, die den NPC durch Fallen oder andere gefährliche Gebiete führt.  Bedenke auch, dass jeder Gegner auf dem Weg an das Level des NPCs angepasst sein sollte.  Du solltest außerdem eine Route wählen, die lang genug ist, um den Spieler das Ping-Pong-Verhalten nicht bemerken zu lassen, was ein Patrol nämlich künstlich wirken ließe.</blockquote>
Die Route, die ich gewählt habe, wird durch zwei ''[[ob:xmarker|xmarker]]''-Objekte markiert. Ich nenne sie ''MyPatrolBegin'' und ''MyPatrolEnd'' um die Übersicht zu behalten und platziere sie wie auf [[constwiki:Image:PatrolTut_img_1.jpg|diesem]] Bild. Ich habe außerdem die Route dort markiert. Diese Xmarker sind jedoch ohne ein Package recht sinnlos, also lasst uns das nun erstellen.
+
Die Route, die ich gewählt habe, wird durch zwei ''[[ob:XMarker|XMarker]]''-Objekte markiert. Ich nenne sie ''MyPatrolBegin'' und ''MyPatrolEnd'' um die Übersicht zu behalten und platziere sie wie auf [[constwiki:Image:PatrolTut_img_1.jpg|diesem]] Bild. Ich habe außerdem die Route dort markiert. Diese [[ob:XMarker|XMarker]]sind jedoch ohne ein Package recht sinnlos, also lasst uns das nun erstellen.
  
 
Klicke im Patrol-Fenster auf ''New'' und mache Folgendes:  
 
Klicke im Patrol-Fenster auf ''New'' und mache Folgendes:  
Zeile 18: Zeile 18:
 
* Ändere die Art auf ''Travel''
 
* Ändere die Art auf ''Travel''
 
* Markiere die Box ''Must Reach Location''
 
* Markiere die Box ''Must Reach Location''
Wir müssen diesem Package auch ein Ziel geben.  Klick auf den ''Location''-Reiter und markiere den Button ''Near Reference'', dann klick auf ''Select Reference in Render Window'' und doppelklicke den xmarker "MyPatrolEndMarker".  Öffne abschließend den ''Conditions''-Reiter und rechtsklicke in die Liste um eine neue Bedingung zu erstellen.  Wähle ''GetDistance'' aus der DropDown-Liste unten und unter den Parametern wählen wir "MyPatrolBeginMarker". Lasse den Standard "<" und erhöhe den Wert auf 512.
+
Wir müssen diesem Package auch ein Ziel geben.  Klick auf den ''Location''-Reiter und markiere den Button ''Near Reference'', dann klick auf ''Select Reference im [[ob:Render Window|Render Window]]'' und doppelklicke den [[ob:XMarker|XMarker]]"MyPatrolEndMarker".  Öffne abschließend den ''Conditions''-Reiter und rechtsklicke in die Liste um eine neue Bedingung zu erstellen.  Wähle ''GetDistance'' aus der DropDown-Liste unten und unter den Parametern wählen wir "MyPatrolBeginMarker". Lasse den Standard "<" und erhöhe den Wert auf 512.
  
 
Erinnerst du dich an unseren "MyPatrolTemplate01" NPC?  Lass uns das ''GuardPatrolBeginPatrol''-Package und unser neues ''MyPatrolPackage''-Package seiner Liste hinzufügen. Stelle sicher, dass die Packages dieses Reihenfolge haben:
 
Erinnerst du dich an unseren "MyPatrolTemplate01" NPC?  Lass uns das ''GuardPatrolBeginPatrol''-Package und unser neues ''MyPatrolPackage''-Package seiner Liste hinzufügen. Stelle sicher, dass die Packages dieses Reihenfolge haben:
Zeile 24: Zeile 24:
 
* GuardPatrolBeginPatrol
 
* GuardPatrolBeginPatrol
 
* BanditGruntWanderInterior
 
* BanditGruntWanderInterior
<blockquote>Normalerweise platziere ich ein "Torch02"-Objekt im Inventar des NPCs, soweit möglich - es hilt, sie aus der Umgebung hervorzuheben und die Bewegung zu verdeutlichen.</blockquote>
+
<blockquote>Normalerweise platziere ich ein "Torch02"-Objekt im Inventar des NPCs, soweit möglich - es hilft, sie aus der Umgebung hervorzuheben und die Bewegung zu verdeutlichen.</blockquote>
<BLOCKQUOTE>Anderes Verhalten hinzuzufügen ist einfach.  Platziere einfach andere Packages über dem Patrol-Package(schlafen, lesen, etc.) und benutze die Tageszeit-Einstellungen.  Dein NPC wird erst dieser Packges ausführen, und dann zum Patrol-Package kommen, wenn keine andere Aktivität ausgeführt wird.</BLOCKQUOTE>
+
<BLOCKQUOTE>Anderes Verhalten hinzuzufügen ist einfach.  Platziere einfach andere Packages über dem Patrol-Package (schlafen, lesen, etc.) und benutze die Tageszeit-Einstellungen.  Dein NPC wird erst dieser Packges ausführen, und dann zum Patrol-Package kommen, wenn keine andere Aktivität ausgeführt wird.</BLOCKQUOTE>
 
Du kannst den NPC nun platzieren und testen, aber es ist wichtig, dass er an der Position von MyPatrolBeginMarker gesetzt wird.  Lass uns sehen wie das funktioniert.
 
Du kannst den NPC nun platzieren und testen, aber es ist wichtig, dass er an der Position von MyPatrolBeginMarker gesetzt wird.  Lass uns sehen wie das funktioniert.
  
Zeile 52: Zeile 52:
 
* [[ob:CombatStyle|CombatStyle]]
 
* [[ob:CombatStyle|CombatStyle]]
 
* No Persuasion Flag
 
* No Persuasion Flag
Lasst uns also die ''LL1BanditMelee100''-List als Grundlage verwenden. Öffne es und ändere die ID auf "''MyPatrolList''", und stelle das Template auf "''MyPatrolTemplate01''" ein. Klicke OK und erstelle das neue Objekt an der Position von ''MyPatrolBeginMarker'' und entferne den alten NPC, falls du ihn zu Testzwecken dort hingestellt hast.
+
Lasst uns also die ''LL1BanditMelee100''-List als Grundlage verwenden. Öffne es und ändere die ID auf "''MyPatrolList''", und stelle das Template auf "''MyPatrolTemplate01''" ein. Klicke OK und erstelle das neue Objekt an der Position von ''MyPatrolBeginMarker'' und entferne den alten [[ob:NPC|NPC]], falls du ihn zu Testzwecken dort hingestellt hast.
  
  
 
== Testen und verbessern==
 
== Testen und verbessern==
Das Testen ist ganz einfach, indem ihr einfach den Editor schließt und das Verhalten des NPCs in der Zelle beobachtet. Der häufigste Fehler ist, die falschen Marker und Condition/Location zu wählen.  Denkt auch daran, wenn ihr Marker verschiebt, dass der NPC mit verschoben wird.  Wenn es Probleme gibt, den NPC auf den richtigen Weg zu bringen, können vorhandene Path-Knotenpunkte per Rechtsklick in blaue, vorgezogene Knotenpunkte verwandelt werden.
+
Das Testen ist ganz einfach, indem ihr einfach den Editor schließt und das Verhalten des [[ob:NPC|NPCs]] in der Zelle beobachtet. Der häufigste Fehler ist, die falschen Marker und Condition/Location zu wählen.  Denkt auch daran, wenn ihr Marker verschiebt, dass der [[ob:NPC|NPC]] mit verschoben wird.  Wenn es Probleme gibt, den NPC auf den richtigen Weg zu bringen, können vorhandene Path-Knotenpunkte per Rechtsklick in blaue, vorgezogene Knotenpunkte verwandelt werden.
  
Das wars. Mit dieser Methode lassen sich ganz einfach NPCs mit Patrol-Package erstellen und somit die Spielwelt lebendiger gestalten.  
+
Das war es. Mit dieser Methode lassen sich ganz einfach [[ob:NPC|NPCs]] mit Patrol-Package erstellen und somit die Spielwelt lebendiger gestalten.  
  
 
Viel Glück!
 
Viel Glück!

Version vom 16. September 2008, 17:53 Uhr

Einleitung

Patrols(dt. Rundgang/Patrouille) können ein unglaublich nützliches Mittel sein, um Bereiche lebendiger zu gestalten. Dieses Tutorial soll eine einfache Methode darstellen, wie sich ein simpler Zwei-Punkte-Patrol("Ping-Pong") gestalten und ins Spiel einbringen lässt.

Du solltest grundlegendes Wissen über NPCs, Packages, und Pathgrids besitzen.


Einstellen des Packages

Das Allererste, was wir machen werden, ist einen NPC zu erstellen, der unsere Packages bekommt. Öffne den NPC "BanditMeleeMale2" und gib ihm die neue ID "MyPatrolTemplate01".(Warum wir das machen, wird später erklärt) Öffne nun das Package Window (AI) dieses NPCs. Wir können die Banditen-Packages entfernen, jedoch ist es sinnvoll, ein einfaches Wander-Package am Ende jeder Package-Liste zu behalten. Entferne jetzt also BanditSleep4x4 und BanditGruntWanderExterior.

Öffne nun aus der Toolbar das Package-Menü. (Character>>Packages) Suche das Package GuardPatrolBeginPatrol. Dies dient als Standard-Package für alle Patrols die mit unserer Methode erstellt werden. Bevor wir allerdings weiter machen, benötigen wir Platz für unser Patrol. Im Nachhinein hätte nach Vilverin zum Beispiel sehr gut ein Patrol gepasst, lasst uns diesen Fehler also nun beheben. Lade es aus der Zellenliste und wirf einen Blick in die Hauptkammer.

Es gibt ein paar Dinge, die beim Erstellen eines Patrol-Pfades beachtet werden sollten. Vermeide eine Route, die den NPC durch Fallen oder andere gefährliche Gebiete führt. Bedenke auch, dass jeder Gegner auf dem Weg an das Level des NPCs angepasst sein sollte. Du solltest außerdem eine Route wählen, die lang genug ist, um den Spieler das Ping-Pong-Verhalten nicht bemerken zu lassen, was ein Patrol nämlich künstlich wirken ließe.

Die Route, die ich gewählt habe, wird durch zwei XMarker-Objekte markiert. Ich nenne sie MyPatrolBegin und MyPatrolEnd um die Übersicht zu behalten und platziere sie wie auf diesem Bild. Ich habe außerdem die Route dort markiert. Diese XMarkersind jedoch ohne ein Package recht sinnlos, also lasst uns das nun erstellen.

Klicke im Patrol-Fenster auf New und mache Folgendes:

  • Gib ihm die ID MyPatrolPackage
  • Ändere die Art auf Travel
  • Markiere die Box Must Reach Location

Wir müssen diesem Package auch ein Ziel geben. Klick auf den Location-Reiter und markiere den Button Near Reference, dann klick auf Select Reference im Render Window und doppelklicke den XMarker"MyPatrolEndMarker". Öffne abschließend den Conditions-Reiter und rechtsklicke in die Liste um eine neue Bedingung zu erstellen. Wähle GetDistance aus der DropDown-Liste unten und unter den Parametern wählen wir "MyPatrolBeginMarker". Lasse den Standard "<" und erhöhe den Wert auf 512.

Erinnerst du dich an unseren "MyPatrolTemplate01" NPC? Lass uns das GuardPatrolBeginPatrol-Package und unser neues MyPatrolPackage-Package seiner Liste hinzufügen. Stelle sicher, dass die Packages dieses Reihenfolge haben:

  • MyPatrolPackage
  • GuardPatrolBeginPatrol
  • BanditGruntWanderInterior
Normalerweise platziere ich ein "Torch02"-Objekt im Inventar des NPCs, soweit möglich - es hilft, sie aus der Umgebung hervorzuheben und die Bewegung zu verdeutlichen.
Anderes Verhalten hinzuzufügen ist einfach. Platziere einfach andere Packages über dem Patrol-Package (schlafen, lesen, etc.) und benutze die Tageszeit-Einstellungen. Dein NPC wird erst dieser Packges ausführen, und dann zum Patrol-Package kommen, wenn keine andere Aktivität ausgeführt wird.

Du kannst den NPC nun platzieren und testen, aber es ist wichtig, dass er an der Position von MyPatrolBeginMarker gesetzt wird. Lass uns sehen wie das funktioniert.


Wie es funktioniert

Ein kleiner Einblick in die Hintergründe der Packages kann dir die Funktionsweise dieser Methode und unseres AI-Packages näherbringen.

Wenn du dir das GuardPatrolBeginPatrol-Package ansiehst, wirst du sehen, dass es nichts weiter als die Anweisung ist, wieder an den Ausgangspunkt des NPCs(wo er im CS erstellt wurde) zurückzukehren, mit einem "Must Reach Location". Es gibt keine Bedinungen, also wird dieses Package immer ausgeführt, wenn es einem NPC zugewiesen ist.

Aber da MyPatrolPackage in der Liste darüber steht, wird es dementsprechend auch vorher ausgeführt. Die Bedingung GetDistance MyPatrolBeginMarker < 512 wird also im ersten Frame ausgeführt, wenn der NPC geladen ist, da MyPatrolBeginMarker gleich mit der Ausgangsposition des NPCs ist. Das geht so weiter bis der NPC 512 Einheiten von seiner Ausgangsposition entfernt ist, warum kehrt er also nicht zurück, bevor er seinen Zielort erreicht hat?

Wegen dem "Must Reach Location"(dt. "Muss Ort erreichen"). Obwohl der NPC zurückkehren "möchte", sobald er mehr als 512 Einheiten von seinem Ausgangsort entfernt ist, wird er das nicht machen, bis er den MyPatrolEndMarker erreicht hat und seine AI-Liste neu analysiert.

Diese Methode kann auch benutzt werden um komplexere, Mehr-Punkte-Patrols zu erstellen, indem weitere Packages zwischen dem ersten Patrol-Package und dem GuardPatrolBeginPatrol-Package erstellt werden.


Templates benutzen

Häufig möchte man mehr Abwechslung als nur einen NPC, der in einem Dungeon herumläuft, und Templates(dt. Vorlage) sind die Möglichkeit diese Abwechslung zu erreichen, auch ohne neue NPCs oder Kreaturen in Leveled Lists zu erstellen. Wir können nämlich einfach eine neue Version einer Standard-Leveled List machen und unseren NPC als Template(Vorlage) dafür nutzen.

Leveled Lists übernehmen die folgenden Punkte ihrer Templates:

Lasst uns also die LL1BanditMelee100-List als Grundlage verwenden. Öffne es und ändere die ID auf "MyPatrolList", und stelle das Template auf "MyPatrolTemplate01" ein. Klicke OK und erstelle das neue Objekt an der Position von MyPatrolBeginMarker und entferne den alten NPC, falls du ihn zu Testzwecken dort hingestellt hast.


Testen und verbessern

Das Testen ist ganz einfach, indem ihr einfach den Editor schließt und das Verhalten des NPCs in der Zelle beobachtet. Der häufigste Fehler ist, die falschen Marker und Condition/Location zu wählen. Denkt auch daran, wenn ihr Marker verschiebt, dass der NPC mit verschoben wird. Wenn es Probleme gibt, den NPC auf den richtigen Weg zu bringen, können vorhandene Path-Knotenpunkte per Rechtsklick in blaue, vorgezogene Knotenpunkte verwandelt werden.

Das war es. Mit dieser Methode lassen sich ganz einfach NPCs mit Patrol-Package erstellen und somit die Spielwelt lebendiger gestalten.

Viel Glück!