Benutzer-Werkzeuge

Webseiten-Werkzeuge


Vobs

Ein Vob ist ein „virtuelles Objekt“. Es hat eine Position und Orientierung im Raum und kann durch ein explizit wählbares „Visual“ visualisiert werden. Die Welt wird mit Vobs bevölkert. Jedes Vob gehört einer Klasse an, die die Eigenschaften und Fähigkeiten dieses Objektes festlegt (z.B. oCNPC oder zCTrigger). Eine genauere Auflistung bietet das Spacer-Dokument zu den Vob-Klassen.

Beispiele einiger Vobs:

  • einzelne Bäume und Büsche
  • Sound- und Lichteffekte
  • Partikeleffekte (z.B. Feuer)

Dann gibt es not interaktive Vobs:

  • Items
  • Nebel- und Musikzonen
  • Betten, Drehräder, Leitern
  • Ereignisfelder und Ereignisfilter

Die Hauptarbeit im Spacer beschäftigt sich mit dem Einfügen, Löschen und Modizieren von Vobs in der Welt. Das Modifizieren umfasst das Positionieren in der Welt sowie die Änderung der Vob-Eigenschaften, die je nach VobKlasse unterschiedlich sind.

Die Vob-Hierarchie in der Welt

Die Objekte in der Welt werden in einer Hierarchie gespeichert. Die meisten Vobs werden wohl als einzelnes Objekt in der Welt „liegen“. Doch einige Vobs sollte man als „Kind“ anderer Vobs einfügen.

Ein gutes Beispiel hierfür ist eine Feuerstelle: Das Hauptvob stellt ein mit Steinen umrahmtes Gluthäufchen dar. An dieses Vob hängen wir nun einen Partikeleffekt (Feuer) als KindVob (ChildVob). Ein Feuer raucht in der Regel und strahlt Licht aus. Daher hängen wir zwei weitere Vobs als Kinder an das FeuerVob: Einen Rauch-Partikeleffekt und ein Licht-Vob. Insgesamt sieht die Hierarchie dann wie folgt aus (die Visualnamen sind erfunden):

  • zCVob: FeuerstellenVob (Visual: „feuerstelle.3ds“)
    • zCVob: FeuerVob (Visual: „feuer.pfx“)
      • zCVobLight: LichtVob (kein Visual)
        • zCVob: RauchVob (Visual: „rauch.pfx“)

Der Vorteil einer solchen Hierarchie ist, dass die KindVobs automatisch bewegt werden, wenn man das ElternVob bewegt. Verschiebe ich also das FeuerstellenVob an eine andere Stelle, so brauche ich mich nicht um die Positionierung von Feuer, Rauch und Licht kümmern. Auf die gleiche Weise sind die Fackeln in der Welt modelliert, so dass bei der Bewegung des Fackelschafts automatisch die als KindVob angehängten Feuer- und LichtVobs mitbewegt werden.

Siehe auch → Vobtrees

VOBs im Spacer

Der Objekt-Dialog


Als zentraler Dialog für (fast) alle Operationen mit Vobs dient der Objekt-Dialog. Er besitzt drei Seiten:

  1. CREATE: Der Objektbaum zur Auswahl der gewünschten Vobklasse, um dann ein Objekt dieser Klasse in die Welt einzufügen.
  2. MODIFY: Die Eigenschaften eines selektierten Objektes in der Welt können auf der MODIFY-Seite geändert werden.
  3. : Die dritte Seite findet Verwendung, wenn die BoundingBox spezieller Vobs (Trigger, Sound) verändert werden soll.

Die Objekt-Liste


In der Objekt-Liste werden alle Vobs der geladenen Welt aufgelistet. Dabei bleibt die Hierarchie erhalten.

Jeder Levelbaustein (zCVobLevelCompo) wird in der Liste aufgeführt. Jeder Vob eines solchen Levelbausteins ist in speziellen Ordnern (mit dem Namen der jeweiligen Vob-Klasse) einsortiert. Besitzt der Vob weitere KindVobs, so werden diese entsprechend angezeigt (ggf. auf das Pluszeichen klicken).

Mit einem Doppelklick auf ein Vob in der Objekt-Liste springt man im Hauptfenster zu dem gewählten Vob (diese Funktion funktioniert erst ab Spacer-Version 1.5 korrekt).

Neu eingefügte Vobs haben anfangs ein grünes Icon (Kreis) vorangestellt, alle anderen haben ein rotes Icon.

Spezielle Objekt-Dialoge


Für einige VobKlassen gibt es spezielle Dialoge, die man über die Objekt-Toolbar aktivieren kann. Dies sind vor allem die vier Buttons, die mit einem roten Pfeil in der rechten oberen Ecke markiert sind:

  • Soundobjekte (zCVobSound)
  • Lichtobjekte (zCVobLight)
  • Spezielle Vobs: Wegpunkte, FreePoints, Partikeleffekte und Decals
  • Kamerafahrten

Die weiteren Dialoge bieten folgende Möglichkeit:

  • Zonen (eher unwichtig)
  • Ereignis-Trigger
  • Suchen & Ersetzen

Sichtbare und unsichtbare Vobs

Eine wichtige Eigenschaft von Vobs ist sein „Visual“. Ein Visual regelt die Darstellung des Vobs. Dabei gibt es verschiedene Arten von Visuals:

  • Meshes
  • Partikeleffekt
  • Textur (Decal)

Das Mesh

Besitzt ein Vob als Visual ein Mesh (3ds), so wird es als das dreidimensionales Objekt dargestellt, das durch das Mesh beschrieben wird. Ein Mesh besteht aus aneinander gereihten Polygonen, die wiederum durch Vertices (ihre Eckpunkte) definiert sind.

Wichtig! Bei Meshes gibt es eine Einschränkung: Maximal darf ein „normales“ Mesh 2048 Verteces besitzen. Eine Ausnahme spielt das Visual einer Levelkomponente (zCVobLevelCompo), das keiner solchen Beschränkung unterliegt. Allerdings können Levelkomponenten nur am Ursprung der Welt eingefügt und auch nicht bewegt oder rotiert werden. Deshalb muss das Mesh einer Levelkomponente (z.B. der Turm von Xardas) bereits an den korrekten Koordinaten im 3D-Editor positioniert werden.

Die zSpy-Meldung 'Degenerated Polygon' ist übrigens nicht tragisch, da diese autom. aus den Vob-Meshes entfernt werden, sollte aber vom Ersteller des Meshes beachtet werden: Ein 'Degenerate Polygon' ist ein Polygon/Triangle, das den Flächeninhalt 0 besitzt (beispielsweise durch kolineare Vertices).

Partikeleffekte

Partikeleffekt-Vobs werden über Scripte erzeugt. Die entsprechenden Datei befinden sich im Ordner _work\\data\\scripts\\system\\pfx. Der Name einer PFX-Instanz kann als Visual angegeben werden, wobei ein „.pfx“ angehängt werden muss.

DECALs

DECALs sind zweidimensionale Meshes, zur Darstellung von zweidimensionalen Strukturen. Beispiele hierfür sind Spinnenweben, Vorhänge, Bilder an der Wand und mehr. Die Meshes werden automatisch erzeugt und die als Visual angegebene Textur darauf gemappt.

Unsichtbare Vobs

Es gibt neben all den offensichtlichen Vobs auch eine Reihe unsichtbarer Objekte. Dabei treten diese durch Effekte oder Ereignisse in Erscheinung. Ein LichtObjekt ist nicht direkt sichtbar, sondern macht sich nur durch die Beleuchtung seiner Umgebung bemerkbar. Ähnlich verhält es sich mit Soundobjekten. Musikzonen bestimmen, welche Hintergrundmusik in einem Levelbereich gespielt wird und Triggerfelder reagieren auf Berührung mit NPCs. Ein bekanntes Beispiel sind auch die Wegpunkte, die miteinander verknüpft das Wegenetz erzeugen.

All diese Objekte sind im Spacer sichtbar, wenn man die sogenannten „HelperVobs“ anzeigen läßt. Dies geschieht über die Objekt-Toolbar: .

Diese Helpervobs für Lichter, Sounds, Wegpunkte und mehr sind Meshes, die im Ordner _work\data\meshes\_intern zu finden sind und den Namen der entsprechenden Vobklasse tragen (mit vorangestelltem „invisible_“):

  • invisible_zCVobSpot.3ds (im Bild: a)
  • invisible_zCVobLight.3ds (b)
  • invisible_zCVobStartpoint.3ds ©
  • invisible_zCWaypoint.3ds (d)
  • invisible_zCVobSound.3ds (e)

Eigene Vobs

Man kann auch im Spacer eigene Vobs einfügen.

Damit dies möglich ist, muss man eine neu erstellte .3ds Datei Texturiert haben (siehe Spacer-Texturieren) und diese Datei dann in den Ordner : Gothic II\\_work\\data\\Meshes\\Items\\(z.b.: Neue Vobs, wobei es auch geht wenn man es einfach nur in den Ordner Items speichert) speichern.

So nun muss man nur noch im Spacer die entsprechende Visual des entsprechenden Vobs in einem zVob eingeben (z.b.: visuale: neues vob.3ds) und schon ist das neue Vob in der Welt.
Am Ende platziert man das Vob noch an der Stelle wo man es haben will und speichert die Welt ab.

Anmerkung:

Wenn man eine neue .3DS Datei hat muss man diese dem Empfänger zukommen lassen, da sie sonst, trotz des Einfügens in der .Zen, nicht bei dem Empfänger angezeigt werden kann.

Weitere Vob-Klassen

spacer/vobs.txt · Zuletzt geändert: 2016/02/15 21:42 von zollaidal