Level wechsel mit Lara Start Position

  • Kleines Tutorial über den Level wechsel.

    Inhaltsverzeichnis

    Vorwort

    Beim Levelbau im Tomb Raider Level Editor kommt es schnell zu Fehlern und Problemen, wenn man sich der maximalen Anzahl an Triggern oder Objekten, die in einem Level zugelassen sind, nähert.
    In diesem Fall ist es meist die beste Lösung, den Level aufzusplitten, d.h. in einzelne Abschnitte bzw. Einzellevel zu unterteilen. Somit braucht man im "alten" Level keine Fallen zu entschärfen oder auf Rätsel zu verzichten, weil man Objekte wieder entfernen musste, um die Limits einzuhalten.
    Doch auch für Anfänger im Levelbau, die eventuell vorhaben, eine Levelserie zu erstellen, kann dies Tutorial eine kleine Hilfe sein.
    Das ganze soll anhand von mehreren Beispielen für verschiedene Ansprüche erklärt werden. Soll Lara wieder in Level 1 zurückkehren können, nachdem sie einmal Level 2 betreten hat? Soll sie eventuell einen Level auf einem Fahrzeug sitzend verlassen? Soll sie Waffen, Schlüssel oder Puzzle-Objekte mit ins nächste Level nehmen?
    Diese Fragen sollen mit dieser Anleitung geklärt werden. Das Tutorial beschränkt sich zunächst auf die Grundlage, dass es sich bei den Levels, zwischen denen gewechselt wird, um Levels mit Custom-Wads (mit TRWEST oder WADMerger selbsterstellte Wads) handelt.
    Anregungen und Verbesserungen sowie Klagen bei Unklarheiten (oder auch Lob), auf jeden Fall aber ein Feedback, können gerne per email an mich gewandt werden: karlo002@gmx.de

    WAD/Script Aufbau


    Was beim Script- und WAD-Erstellen zu beachten ist:

    Bereits beim Erstellen der Wads sollte unbedingt darauf geachtet werden, dass Puzzle-Objekte und Schlüssel, die Lara später vom einen ins nächste Level mitnehmen soll, bei allen Levelwads in den gleichen Slots platziert werden. Ob Lara nun einen Puzzle- oder Schlüsselgegenstand im ersten Level einsammelt und erst im nächsten Level benutzt oder ob sie ihn gar erst einige Level lang mit sich trägt und er erst im vierten oder fünften Level zum Einsatz kommt: Bei allen Wads dieser Level gehört das Objekt in den gleichen Slot!
    Wird ein Level einfach nur – wie oben bereits erwähnt – gesplittet und es wird für den zweiten Level lediglich ein umbenanntes, aber ansonsten vollkommen identisches Wad verwendet, stellt das natürlich kein Problem dar.
    Doch auch die Scripteinträge sind hierbei (wie immer) immens wichtig!
    Dazu werfen wir einen Blick auf den Original-Scripteintrag des Spielbaren Tutorial Levels (Name des dazugehörigen Wads: tut1)


    Uns interessieren zunächst einmal nur die Zeilen, die mit den Worten Puzzle oder PuzzleCombo beginnen. Sie stellen eine Aufzählung der im Level vorhandenen Puzzle-Objekte dar. Die erste Zahl nach dem "=" – Zeichen in jeder Zeile beschreibt den Slot, in dem sich das Puzzle-Objekt im Wad befindet bzw. in welchen Slot man das jeweilige Puzzle_Item_XY bei der Waderstellung gepackt hat, wobei XY für eine beliebige Zahl zwischen 1 und 12 (für Puzzle-Objekte, die nur aus einem Teil bestehen) oder zwischen 1 und 8 (für Puzzle-Objekte, die aus zwei Teilen kombiniert/zusammengefügt werden) steht.
    Wird eine Zeile mit dem Begriff PuzzleCombo angeführt, so bedeutet dies, dass es sich bei dem Puzzle-Objekt nur um einen der beiden zu kombinierenden bzw. zusammenzufügenden Teile des "Gesamtobjekts" handelt. Das ist z.B. hier der Fall:



    In Editor-Sprache heisst dies, das sich im Wad die Objekte PUZZLE_ITEM3_COMBO1 (1), PUZZLE_ITEM3_COMBO2 (2) und das zusammengefügte (kombinierte) PUZZLE_ITEM3 befinden.Die Reihenfolge, in der Puzzle-Objekte, deren Einzelteile oder auch Schlüsselobjekte eingetragen sind, ist egal. Man muss nur beachten, dass zusammengehörenden Puzzle-Objekten die gleiche Nummer zugewiesen ist.
    Die Programme WADMerger und TRWEST belassen beim Kopieren in ein neues Wad die Puzzle-Objekte in den Slots, in denen sie sich auch bei den Wads, aus denen sie gezogen werden, befinden. Das heisst also auch, dass man beim Platzieren des Cartouche – Puzzles lediglich die drei oben angegebenen Zeilen in den Scripteintrag zu seinem eigenen Customlevel übernehmen muss – unverändert.
    Die vielen Zahlen und $-Zeichen in jeder Zeile müssen mit übernommen werden. Sie stellen Informationen für das Spiel dar, z.B. geben sie an, wo sich ein Objekt im Inverntory befindet, wie es sich dreht etc.
    Sollte man allerdings beabsichtigen, zwei Puzzle-Objekte, die in ihren Ursprungswads jeweils beide z.B. in Slot 2 stecken, in sein Wad zu kopieren, muss erstens bereits beim Verschieben der Objekte für eines ein neuer Slot gewählt werden und zweitens diese Slot-Änderung auch beim Kopieren des dazugehörigen Scripteintrages vorgenommen werden.
    Nehmen wir also an, wir haben mir einem Wadbearbeitungsprogramm die Puzzle-Objekte Eye Of Horus (aus dem Settomb-Wad, Slot 1) und Sun Talisman (aus dem Karnak-Wad, ebenfalls Slot 1) platziert.
    Beide dieser Teile sind zusammengefügte Puzzle-Objekte, haben also jeweils auch wieder 3 Zeilen im jeweiligen Levelscripteintrag. Wie auch im Tomb-Raider-Leveleditor Manual beschrieben, behandeln wir diese Objekte jetzt jeweils wie ein einzelnes Objekt, das bereits zusammengesetzt von Lara aufgehoben wird.

    Damit sich die Puzzle_Items nicht überschreiben, verschieben wir das Objekt des Eye Of Horus (also das PUZZLE_ITEM1, das PUZZLE_HOLE1 und das PUZZLE_DONE1) zunächst ohne weiteres aus dem Settomb-Wad in unser selbst erstelltes. Die Teile des Sun Talisman (aus dem Karnak-Wad) allerdings müssen wir bei unserem Custom-Wad in andere Slots packen, zum Beispiel in den Slot 5.Nachdem dies erledigt ist, müssen wir die Scripteinträge (komplette Zeilen) dieser Puzzles aus dem Settomb- und Karnak-Wad auch in den Scripteintrag unseres Levels kopieren. Diese Zeilen sehen in den jeweiligen Einträgen der beiden Level folgendermassen aus:



    Fertig. Das war es soweit zum verschieben gleichnamiger bzw. "gleich-Slot-iger" Puzzleteile. Wie geht man vor, wenn man Puzzle-Objekten andere Namen verpassen möchte?
    Dazu schliessen wir direkt an das vorangegangene Beispiel an und nehmen uns das Eye Of Horus-Objekt vor. Wir ändern den Namen des Puzzle-Objekts (nach dem Komma hinter der Slot-Zahl, hier 1) im Script.txt unseren Vorstellungen entsprechend ab.



    Wichtig

    Diese Änderung müssen wir auch in der English.txt vornehmen. Wir speichern die veränderte Script.txt und öffnen die English.txt–Datei. Hier ist ganz wichtig, dass man keine Zeilen hinzufügt, sondern nur andere, bereits vorhandene, ersetzt. Wir suchen uns den Eintrag Eye Of Horus in der English.txt und ersetzen ihn auch hier mit unserer neuen Bezeichnung Auge des Horus. Ganz wichtig hierbei ist, dass auf Gross- und Kleinschreibung geachtet wird. Der Name des Puzzle-Objekts muss genauso geschrieben werden wie in der Script.txt zuvor. Danach speichern und DAT-Dateien erzeugen. Fertig. Im Spiel wird nun die Beschreibung Auge des Horus im Inventory erscheinenen.
    Wie geht man beim WAD-Bau vor?
    Man sollte sich schon im vornherein Gedanken machen, welche Objekte, Waffen oder Fahrzeuge Lara von welchem in welches Level mitnehmen soll, da sich z.B. ein Puzzle-Objekt vom Zeitpunkt des Aufsammelns bis zum Zeitpunkt des Einsatzes - ob nun innerhalb von zwei Levels oder ob mehrere Level sogar noch dazwischenliegen, die ganze Zeit
    1.im Level-WAD und
    2.im Scripteintrag der betroffenen Level (siehe oben)
    befinden muss.

    Beispiel:
    Wird ein PUZZLE_ITEM4 in Level 1 aufgesammelt und bis in Level 5, wo es eingesetzt werden muss, im Inventar behalten, muss sich zumindest das Objekt PUZZLE_ITEM4 bei allen fünf Levels im Wad befinden. Zusätzlich müssen ins Wad des fünften Levels noch die Objekte PUZZLE_HOLE4 und PUZZLE_DONE4 gepackt werden.
    Achtung! Will man mehrere Puzzle-Objekte des gleichen Typs (z.B. den Sun Talisman) in einem Abenteuer verwenden (z.B. wenn Lara in den ersten drei Levels jeweils einen Talisman findet und alle drei dann im vierten Level benutzt), so lässt sich das ohne weiteres bewerkstelligen.
    Aufgesammelte KEY-Objekte (Schlüssel) allerdings werden im Inventory nur einmal angezeigt, selbst wenn man fünf Stück aufgesammelt hat. Nach einmaliger Benutzung sind dann alle weg!
    Möchte man z.B. fünf goldene Schlüssel aus dem KEY-Wad in seinem Abenteuer zum Einsatz bringen, so muss man sie bereits beim Erstellen des Wads als verschiedene Key-Items definieren bzw. in verschiedene Slots packen und jedem eine eigene Zeile im Script verpassen.
    Spezielle Objekte, die zusammengehören und in den Levels, zwischen denen gewechselt wird, vorhanden sein sollten
    1.Für den Fall, dass Lara den Level auf dem Motorrad verlässt:
    In den Wads zu beiden Leveln (oder auch mehreren, falls Lara z.B. das Motorrad im ersten Level findet, den zweiten Level komplett auf dem Motorrad bestreitet und erst im dritten wieder absteigen und zu Fuss weiterlaufen soll), werden die Objekte MOTORBIKE und VEHICLE_EXTRA benötigt. Das MOTORBIKE ist das Gefährt und VEHICLE_EXTRA stellt Laras Sitzanimation dar. Damit Lara nach dem Wechsel vom ersten in das zweite Level immer noch auf dem Motorrad sitzt, sollte das Motorrad im zweiten Level in der Nähe des LARA-Objekts bzw. der LARA_START_POSITION (Erläuterung dazu später) platziert werden. Trotz einiger anderslautender Gerüchte gehört das MOTORBIKE-Objekt aber unbedingt mit in den Raum, in dem Lara auch den Level beginnt.
    Die Levelplanung bzw. -achitektur sollte so aussehen, dass es Lara gar nicht anders möglich ist, als den vorangegangenen Level auf dem Motorrad zu verlassen, da ja – falls sie den ersten Level doch zu Fuss verlässt – im nächsten gleich ein anderes Motorrad bereitstehen würde, was eventuell nicht im Sinne des Erbauers liegt.
    2.Für den Fall, dass Lara zwar eine Waffe erst im zweiten Level findet, aber damit wieder in den ersten Level zurückkehren kann
    Für diesen Fall werden die Waffen- und Munitionsobjekte, sowie die dazugehörigen Animationen (z.B. SIXSHOOTER_ANIM oder CROSSBOW_ANIM, je nach Waffe) in allen Levelwads benötigt.
    3.Für den Fall, dass ein Level zwischendurch ohne Horizont auskommen könnte und er somit nicht benötigt wird
    Zunächst wird hierfür das Objekt HORIZON aus dem entsprechenden Wad entfernt und danach die Zeile "Horizon= ENABLED" im Script folgendermassen abgeändert: "Horizon=DISABLED". Obwohl es zunächst nützlich erscheinen mag, auch den Eintrag "Layer1=160,160,192,7", der ja für den animierten Wolkenhimmel da ist, aus dem Script zu löschen, kann ich persönlich nur davon abraten, da es dadurch zu unschönen Fehlern bei der Textdarstellung im Invertar kommen kann (Erfahrungswert).


    Was darf man denn bitte schön von Level zu Level beliebig austauschen?

    Beliebig austauschen von Level zu Level lassen auf jeden Fall Gegner, Fallen, Animatings und Statics-Objekte. Hier besteht keinerlei Gefahr eines Absturzes – im Gegenteil. Da die Slots für menschliche Gegner bei den TR-Wads ja sehr begrenzt sind, ist es gerade interessant, wenn im Verlauf eines mehrere Level übergreifenden Abenteuers verschiedene Feinde von Level zu Level im BADDY- oder TROOPS-Slot stecken. Achtung! Zu einigen BADDY-Slot-Gegnern gehören sogenannte MESHWAP-Objekte, die sich unbedingt mit im Wad befinden müssen!

    1.Jetzt geht’s ans Triggern – Finish Trigger, Lara-Objekte und anderes...

    Um die nun folgende Anleitung zum Platzieren von bestimmten Objekten und Triggern, sowie deren OCB- und weitere Einstellungen zu verdeutlichen, habe ich hier zunächst einen kleinen Plan erstellt, der skizzenhaft ein 3-Level-Abenteuer darstellt. Obwohl es auf den ersten Blick so aussieht, als wäre es ein aus drei Räumen bestehender Einzellevel, sollen die gestrichelten Linien jeweils das Ende eines Levels darstellen. Wir gehen bei den anschliessenden Erklärungen davon aus, dass die Levels in der Reihenfolge, in der sie auch in der Skizze aufgereit sind, im Script eingetragen wurden (also Level 1 an erster, Level 3 an letzter Stelle).

    Hier also der Plan:


    Nun werde ich in zwei einzelnen Erklärungen erstens auf den Übergang vom ersten in das zweite Level und zweitens auf den Übergang vom zweiten in des dritte Level eingehen. Die Nummern und Zahlen bei den OCB’s der benutzen Objekte und Trigger-Eingabeflächen müssen natürlich bei Euren Abenteuern dementsprechend umgeändert werden. Es wird empfohlen, sich beide Erläuterungen durchzulesen!

    Beispiel 1.)
    Es existiert nur EINE Verbindung zwischen den beiden Level. Wenn nur eine Verbindung zwischen den beiden Levels besteht, geht man folgendermaßen vor:
    Im ersten Level wird ein Lara-Objekt an der Stelle, an der das Abenteuer beginnt, platziert. Man muss keine OCB-Einstellungen oder sonstiges daran durchführen.
    An der Stelle, an der Lara den Level verlassen soll, platzieren wir einen als "Trigger for Finish" definierten Trigger und tragen im Trigger-Menü im Feld NEBEN "Finish" die Zahl 2 ein (siehe Screenshot).



    Des besseren Verständnisses des weiteren Verlaufs dieser Erklärung halber lassen wir Lara wie auf der Planskizze den ersten Level durch einen schmalen Gang verlassen, an dessen Ende der eben erwähnte Trigger platziert wird. Die "2" im Trigger-Menü steht für die Position des als nächstes zu ladenenden Levels im Script. Level 2 steht an zweiter Stelle im Script, also die "2".

    DAVOR, also auf einem Square, das mehr "in Richtung Level" (wie auf der Skizze) liegt, wird ein LARA_START_POSITION-Objekt platziert. An dieser Stelle beginnt Lara bei einer Rückkehr aus Level 2 den ersten Level wieder. Bei der Platzierung des Objekts sollte beachtet werden, dass das trichterförmige Nullmesh-Objekt Laras Blickrichtung darstellt. Soll heissen: Lara wird beim Start des ersten Levels nach ihrer Rückkehr aus Level 2 in Richtung des stumpfen Endes des Objekts schauen.
    Jetzt ist sicherlich auch klar, warum dies Nullmesh-Objekt nicht hinter oder auf dem gleichen Square wie der Finish-Trigger platziert werden darf – Lara würde beim erneuten Betreten des ersten Levels entweder sofort wieder zurück in den zweiten Level befördert bzw. käme aufgrund des schmalen Ganges gar nicht an dem Finish-Trigger vorbei, wenn sie wieder "in Richtung Level" laufen würde.Nach der korrekten Positionierung der LARA_START_POSITION öffnen wir das OCB-Menü des Objekts und tragen in das untere Eingabefeld eine 1 ein. Warum eine 1? Das erfahrt ihr in der Erklärung für...
    ...den zweiten Level. Hier wird ebenfalls ein Lara-Objekt platziert. Dabei sollte man aber beachten, dass HINTER Lara mindestens noch ein Square frei ist, soll heißen: Wenn Lara Level 2 in einem schmalen, nur ein Square breiten Gang betritt, muss hinter ihr mindestens noch ein begehbares, freies Square sein (für den Finish-Trigger, wie wir gerade gelernt haben).

    Im Falle eines Zwei-Level-Abenteuers kann ein Wechsel nur zwischen diesem zweiten und dem oben beschriebenen ersten Level stattfinden.
    Hinter dem Lara-Objekt platzieren wir also einen weiteren Trigger, den wir ebenfalls als "Trigger for Finish" definieren. Im rechten oberen Eingabefeld geben wir diesmal die Zahl "1" ein, denn der erste Level hat seinen Eintrag an erster Stelle im Script. Doch damit ist die Einstellung des Finish-Triggers diesmal noch nicht erledigt! Im Eingabefeld TIMER des "Trigger for Finish" geben wir ebenfalls die Zahl "1" ein.Warum das? Nun, jetzt kommen wir zu dem Punkt, weswegen man sich beide dieser Erklärungen durchlesen sollte.

    Die "1" im TIMER-Feld steht für das LARA-START-POSITION-Objekt im ersten Level. Würden wir hier eine "0" (wie standardmäßig) stehen lassen, würde Lara nicht am Ende des ersten Levels (bei der LARA_START_POSITION mit dem OCB-Eintrag 1) beginnen, sondern den ersten Level da beginnen, wo das LARA-Objekt platziert wurde. Es würde so anmuten, als ob das Abenteuer wieder von vorne beginnt – und das wollen wir ja nicht.Man kann sich also merken: Der Eintrag hinter FINISH beschreibt den Level, in den gesprungen wird, die Zahl bei TIMER setzt fest, bei welchem Objekt gestartet wird ("0" heißt IMMER beim Lara-Objekt, jede weitere fortlaufende Zahl ("1", "2", "3" etc) heisst, es wird bei einer LARA_START_POSITION mit einem dementsprechenden OCB-Eintrag begonnen.)
    Soweit wäre die in beide Richtungen begehbare Verbindung zwischen Level 1 und 2 fertiggestellt.
    Ganz am Ende, also da, wo nun das Abenteuer abgeschlossen wird und man wieder zum Titelbildschirm zurückgeführt werden soll, platziert man einen weiteren Trigger, den man ebenfalls als "Trigger for Finish" definiert und im rechten, oberen Eingabefeld mit der Zahl "99" (für den Titelbildschirm) versieht. Wenn Ihr alles so macht, wie beschrieben, ist der reibungslose Ablauf des Levelwechsels garantiert und ihr landet am Ende des Abenteuers wieder sanft auf dem Titelbildschirm anstatt hart auf dem Desktop...

    Beispiel 2.)
    Es existieren MEHRERE Verbindungen zwischen zwei Levels
    Weil es auch auf der Plan skizze oben der Fall ist, wird in dieser Erklärung auch von Level 2 und 3 die Rede sein, zwischen denen sich mehrere Verbindungen befinden, damit die Orientierung leichter fällt.
    In Level 2 platzieren wir zunächst dort ein Lara-Objekt, wo der Level begonnen wird. Lara muss sich also erst einmal bis zu einem der beiden Ausgänge nach Level 3 durchkämpfen. Wie schon in der Erklärung für EINE Verbindung zwischen zwei Leveln (s.o.) beschrieben, versehen wir diese "Verbindungsstellen" wieder mit jeweils einem "Trigger for Finish" und einem LARA_START_POSITION-Objekt, das näher "in Richtung Level" liegt wie der Finish-Trigger (siehe Skizze)
    Den Finish-Trigger, der von Level 2 wieder nach Level 1 führt, lassen wir der Übersichtlichkeit halber in dieser Erklärung außer Acht – er ist irrelevant!
    Inzwischen ebenfalls bekannt sein sollte, dass wir in den Trigger-Menüs der beiden Finish-Trigger hinter FINISH (also im oberen rechten Eingabefeld) die Zahl "3" eintragen, da sich der als nächstes zu ladende dritte Level auch an dritter Stelle im Script befindet. Und auch im Feld Timer wird diesmal – zumindest bei einem der beiden Trigger – wieder eine "1" eingetragen. In unserem Beispiel geben wir jetzt dem OBEREN Finish-Trigger (siehe Skizze) diesen Eintrag hinter TIMER. Bei dem anderen bleibt "0" stehen.
    Doch auch den beiden LARA_START_POSITIONs müssen wir je einen OCB-Eintrag verpassen. Wir öffnen also nacheinander die OCB-Menüs der beiden Nullmesh-Objekte und geben dem OBEREN Objekt den Eintrag 1 und dem UNTEREN Objekt den Eintrag 2. Das sind jetzt also die Zahlen, die nachher beim Zurückkehren aus dem dritten Level von den dortigen Finish-Triggern angesprochen werden. Hier sind wir fertig, also nix wie ab zum Endspurt in den...
    ...dritten Level. Hier platzieren wir zunächst ganz getreu der obigen Skizze zwei Finish Trigger an den Ausgängen. In den Trigger-Menüs tragen wir beim OBEREN Finish-Trigger die Zahl "2" hinter FINISH ein und schreiben in das Textfeld hinter TIMER die Zahl "1".

    Das heißt also, dass dieser Finish-Trigger zurück zum ZWEITEN Level, der sich ja an zweiter Stelle im Script befindet, führt und Lara dort an der Position der LARA_START_POSITION mit dem OCB-Eintrag "1" anfängt. Dem unteren als "Trigger for Finish" definierten Trigger verpassen wir hinter FINISH im rechten oberen Eingabefeld die Zahl "2" und hinter TIMER im Textfeld die Zahl "2". Auch hier gilt: dieser Finish-Trigger bringt Lara zurück in Level "2" (FINISH-Eintrag) an die Stelle der LARA_START_POSITION mit dem OCB-Eintrag "2".
    Zum Schluss platzieren wir noch die LARA_START_POSITION am oberen Durchgang und verpassen ihr den OCB-Eintrag "1". Wir erinnern uns zurück: dem Finish-Trigger im zweiten Level, der zu dieser LARA_START_POSITION führen soll, haben wir beim Feld TIMER den Eintrag "1" verpasst.

    Somit wäre das "Verlinken" dieser beiden Level über mehrere Durchgänge auch erfolgreich durchgeführt.


    4. Feste Editor-Regeln / Ergebnisse meiner Tests:


    Zum Schluss noch stichpunktartig die Dinge, die der Editor dest vorschreibt und die man beachten sollte:
    Die OCB-Einträge der LARA_START_POSITIONs müssen von der Zahl 1 beginnend aufwärts durchnummeriert werden, also pro Level neu bei "1" beginnend. Man darf ihnen nicht die Zahl "0" im OCB zuweisen, weil das die Nummer des LARA-Objekts ist. Ich habe beim Beispiel für mehrere Verbindungen zwischen den Levels im Level Nummer 2 selbst probiert, die OCB-Einträge "5" und "8" (natürlich mit dementsprechenden Verweisen bzw Einträgen in die Finish-Trigger von Level 3) einzutragen doch bei mir hat es nicht geklappt.
    Es ist egal, ob der Levelverbindung, die Lara als erstes erreicht, auf der "anderen Seite" bzw. im nächsten Level ein LARA-Objekt oder eine LARA_START_POSITION zugeprdnet ist. Es kommt in dem Moment ja nur auf die Einträge im Finish-Trigger-Menü an. Ein LARA-Objekt MUSS allerdings immer vorhanden und auch als "Position, an der Lara einen Level beginnt" definiert sein. Man könnte also auch theoretisch am Leveleingang von Level 2 (s.o.) eine LARA_START_POSITION platzieren und an eine der beiden Stellen, an der Lara aus Level 3 zurückkehren kann, das LARA-Objekt packen.


    Credits

    Alter Eintrag von Karlo002 aus der Knowledge Base der Levelbase.

    6.154 mal gelesen