Benutzer-Werkzeuge

Webseiten-Werkzeuge


Vobtrees

Vorraussetzung für dieses WIKI ist die Kenntnis über das Einsetzen von Vobs mit dem Spacer in die Welt. Wer das noch nicht gelernt hat, möge sich bitte hier informierenVobs erzeugen

1. Was ist ein Vobtree

  • 1.0.0 Ein Vobtree ist eine zusammengesetzte Vobgruppe.
  • 1.0.1 Der Dateiname so einer Gruppe wird mit MY_VOBTREE.ZEN angegeben (Beispielname)
  • 1.0.2 Die von uns erstellten Vobtrees speichern wir vorzugsweise im vorhandenen Ordner VOBTREES.
    • Pfad zum Ordner VOBTREES → _work\data\worlds\vobtrees, Ordnungsfanatiker können sich auch einen eigenen Ordner erstellen „MYVOBTREES“ bspw.
  • 1.0.3 Die Dateistruktur eines Vobrees setzt sich im Normalfalle aus Parent (Hauptvob) und Child/s (Untergeordnetes Vob/s) zusammen. Für unser Übungsbeispiel stellen wir eine FireTree.Zen zusammen. Die FireTree.Zen dürfte eines der meist genutzten Vobrees sein, da ja fast jeder in seiner Mod - Leuchter, Lampen, Fackelhalter ..usw eingebaut hat.
  • 1.Idealerweise so…..: Das ist die Methode die hier im Beispielwiki aufgezeigt wird
  • parent
    • - child1
    • - child2
    • - child3
    • - usw…
  • 2. weniger effektiv so…..:
  • parent
    • - Child/Unterparent1
      • - child/Unterparent2
        • - child/Unterparent3
          • - usw…..

Warum sollte der 2te Baum weniger effektiv sein? Bei Baum 1 kann man jedes Child separat verschieben, ohne ein anderes zu beeinträchtigen, wohingegen man bei Baum 2 jedes Unterparent, des in der Hirarchie darunterliegenden mit verschiebt.

Man könnte also bei Baum 2 das Child/Unterparent1, nicht verschieben, ohne dass sich Child/Unterparent2 und 3 mitbewegen.

Und wenn man etwas austauschen wollte bei Baum 2, könnte man Child/Unterparent1 nicht löschen, ohne dass Child/Unterparent2 + 3 mitgelöscht würden.

2. Vorteile von Vobtrees

  • 2.0.0 Wie oben angesprochen, wenn ich in einem Tempel 30 Fackelhalter hätte, die alle zu bestücken wären mit
    • Fackelhalter
    • Flamme
    • Rauch
    • Licht
    • Sound

müsste man ja mit Normalbespacerung 30 mal den Feuer-Pfx, 30 mal den Rauch-Pfx, 30 mal das Licht….. ist ja schon beim lesen äzend …… einsetzen und jedes Vob immer wieder neu positionieren.

3. VobTree-FireTree.Zen

  • 3.0.0 Genug der (Vor)-worte, wir beginnen grundsätzlich mit dem Mesh, das wir uns als Parent ausgesucht haben. Dazu muss man wissen:
    • dass man mit dem Verschieben des Parent alle Childs mitbewegen kann
    • mit dem Verschieben eines Childs, lediglich dessen Position verändert
  • Ihr könntet euch auch eine FireTree.Zen bauen, die nicht das Mesh des Leuchters enthält. In diesem Falle nimmt man als Parent die Flamme.
    • Vorteil: Ihr könnt den FireTree für jedweden Leuchter benutzen, den ihr in die Welt gesetzt habt. Einfach den FireTree einsetzen und das Parent(Flamme) anklicken und zum ausgesuchten Leuchter schieben.
    • Diese FireTree.Zen kann dann auch für oCMobFire eingetragen werden
    • Nachteil: Ihr müsst immer, wenn ihr den FireTree benutzt, vorher ein Lampen/LeuchterVob in die Welt setzen.

Zur Erinnerung: Wer nicht weiss, wie man Vobs im Spacer setzt- zuerst einmal die Spacergrundlagen studieren.Vobs erzeugen

  • 3.0.1 Wir starten den Spacer und öffnen die zu bearbeitende *.ZEN
    • Wir nehmen uns das ObjektPagesFenster vor, setzen einen Haken bei „Hold“ und stellen jetzt die Zeit auf etwa 12:00. Jetzt wird es, egal wie lange wir arbeiten, nicht regnen im Spacer und auch nicht dunkel werden. 12:00 habe ich gewählt, weil es da eigentlich am hellsten sein müsste.
  • 3.0.2 Wir setzen einen Fackelhalter (OW_MISC_WALL_TORCH_01.3DS) und positionieren selbigen an gewünschter Stelle an der Wand. Das wird unser Parent!
    • Warum nehmen wir den Fackelhalter als Parent?
    • Weil wird dann lediglich den Fackelhalter verschieben müssen und die Childs, - Flamme, Rauch…etc wandern mit und sind bereits perfekt positioniert.

  • Anmerkung: Wer Wert auf Glaubwürdigkeit legt und gutes Ambiente, patziert die Wandeisen des Halters so, dass sie aussehen als wären sie in die Steinfugen hineingeschlagen.
  • Betrachten wir dazu das Object_List_Fenster, wo unser Wandhalter jetzt eingetragen ist.

  • 3.0.3 Wir setzen die Flamme des Feuerpfx auf die Fackel des Fackelhalters (TORCH.PFX). Da wir ja die Flamme als Child des Fackelhalters setzen wollen, gehen wir folgendermassen vor:
    • wir aktivieren den Eintrag cZVob im Spacer_Objectfenster

  • Wir klicken mit der rechten Maustaste auf den nicht aktivierten Fackelhalter. Nicht aktiviert heisst, der Fackelhalter zeigt nicht seine Boundingbox.
  • Ergebnis wenn wir alles richtig gemacht haben
    • Der Fackelhalter zeigt jetzt seine Boundingbox
    • Das kleine Vobfenster erscheint im Spacer_Haupfenster
    • In diesem Fenster ist die Option „Insert (zCVob) as child of (cZVob)“ verfügbar.

  • Wir klicken mit der linken Maustaste auf „Insert (zCVob) as child of (cZVob)“
    • es erscheint das Koordinatenkreuz und zwar das des einzusetzenden Pfx_Vobs und der Schriftzug „zCVob“

  • Betrachten wir wieder das Objekt_List_fenster

  • Unser Baum, das Vobtree ist bereits am entstehen und wir haben schon das Parent und 1 Child erzeugt.
  • Wenden wir uns dem Objektfenster zu und tragen in das File-Fensterchen, ganz unten als Visual „TORCH.PFX“ ein:

  • Wir klicken auf „Apply“ und jetzt sollte unser Feuer-PFX erscheinen.

  • 3.0.4 Wir platzieren die Flamme am oberen Ende der Fackel unseres Fackelhalters
    • Wer nicht weiss, wie man Vobs bewegt und rotiert kann sich hier informieren → vobs_bewegen_und_rotieren
    • Damit das authentisch aussieht, sollte die Flamme das obere Ende der Fackel etwas umschliessen

  • 3.0.5 Wir setzen den Rauch für die Fackel etwas überhalb der gerade gesetzen Flamme. Dazu könnten wir die Schritte 3.0.3 → 3.0.4 wiederholen, lediglich mit dem Unterschied, dass wir als Visual jetzt TORCH_SMOKE.PFX auswählen.
  • Allerdings ist es jetzt etwas schwierig, da sich die etwas grössere Boundingbox des FeuerPfx beim anklicken des Fackelhalters in den Vordergrund drängt und wir beim anklicken dann ein Child des FeuerPfx bekommen würden und nicht ein Child des Fackelhalters.
  • Dieses Problemchen lösen wir folgendermassen:
    • Wir setzen den RauchPfx in die Welt, nicht als Child von irgend einem Vob, sondern ganz für sich alleine, etwas neben den bis jetzt schon teilweise erzeugten Vobtree und ausserhalb jeglicher Boundingbox.
    • Da der Torch_Smoke sehr durchscheinend ist, habe ich jetzt zum besseren verdeutlichen und Thumbnails zu erstellen den Fire_Smoke.Pfx genommen. Ihr solltet aber den Torch_Smoke nehmen, sonst qualmt das wie eine Dampflok!

  • Wir wählen unseren Helper_Smoke im Spacer Hauptfenster an - Der Helper_Smoke ist ausserhalb der Hirarchie unseres Vobtrees (Boundingbox des Smoke muss danach zu sehen sein)

  • Wir kopieren den Smoke mit dem Tastenkürzel strg/c
  • Wir klicken im Spacer Hauptfenster auf unseren Fackelhalter, ziemlich unten, um der Boundingbox der Flamme auszuweichen und jetzt sollte wieder die Boundingbox des Fackelhalters zu sehen sein….
  • oder wir aktivieren unseren Fackelhalter mit Mausklick im Objekt_List_Fenster.

  • Wir benutzen jetzt zum Einfügen des Smokes das Tastaturkürzel strg/v und schon hat sich unser Rauch in den Vobtree eingereiht.

  • Unser Vobtree besitzt jetzt schon 2 Childs
  • Den zuerst erzeugten Smoke HilfsPfx löschen wir jetzt wieder.
  • Anschliessend positionieren wir den Rauch oberhalb der Flamme der Fackel.

Mot welcher der beiden Methoden ihr jetzt arbeitet, mit Kopieren → Einfügen, oder mit Mausklick anwählen um den Vobtree zusammen zubauen, bleibt dem einzelnen und seinem Geschick überlassen.

Wer keine Erfahrung hat mit dem setzen von Licht-Vobs, für den bietet sich folgendes WIKI an → Es werde Licht

  • 3.0.6 Als nächstes setzen wir das Licht dazu. Methode wie oben beschrieben 3.0.3 → 3.0.5
  • Für eine WALLTORCH_FIRESMALL.ZEN wählen wir den Lichtwert/Helligkeitswert 250 (Empfehlung)
  • Für eine WALLTORCH_FIREMEDIUM.ZEN wählen wir den Lichtwert/Helligkeitswert 400 (Empfehlung)
  • Für eine WALLTORCH_FIRELARGE.ZEN wählen wir den Lichtwert/Helligkeitswert 600 (Empfehlung)
  • Wenn ihr ein dynamisches Licht dazu verwendet, dann habt ihr das Flackern der Fackel als Widerschein auf Wand und Boden
  • VORSICHT Allzuviele dynamische Lichter auf engem Raum erzeugen u.U. übelst aussehende Hell-Dunkel Schlagschatten an Polygon-Seitengrenzen. Dieser unerwünschte Effekt wird noch begünstigt, wenn an Polygonen gespart wurde, was oft bei langen, ebenen und geraden Wänden und Böden der Fall ist und daurch „elendlange“ Polygongrenzkanten erzeugt wurden.
  • Dynamische Lichter sind ausserdem performancelastig. Man muss so eine Gratwanderung machen, zwischen Wunschdenken und dem was eben möglich ist.
  • Abhilfe:
    • Weniger dynamische Lichter setzen…..
    • Mesh im 3D Prog bearbeiten und polygonarme Flächen tesselieren

Licht gesetzt, da freut man sich dann auch, wenn die Welt Gestalt annimmt…..

Und einen Blick auf unseren wachsenden Baum im Object_List_Fenster

4. zCVobSound in Vobtree

  • Wer will kann noch ein zCVobSound in den Vobtree einbinden für Flammenknistern der Fackel → vobsound_in_vobtree
  • Zusätzlich kann man auch noch einen Flammenkranz um Fackeln/Kerzen einbauen. Wer das will → VobLensFlare

5. Speichern Vobtree

  • 5.0.0 Jetzt ist es an der Zeit den Vobtree zu speichern. Der Pfad zum Speicherordner → _work\data\worlds\vobtrees oder ihr setzt euch einen eigenen Ordner in den Worlds Ordner Bsp. → _work\data\worlds\my_vobtrees
    • Dazu aktivieren wir:
      • entweder das Parent mit der linken Maustaste (Es zeigt sich die Boundingbox des Fackelhalters) und klicken dann mit der rechten Maustaste in die Boundingbox des Parents, worauf sich folgendes Fenster öffnet:

  • In diesem Fenster (oberhalb) ziehen wir die Maus auf die Option „Vob“ (ohne zu klicken) und erhalten folgendes Roll-Out-Fenster (unterhalb):

  • oder aber wir klicken unser Parent gleich mit der rechten Maustaste an, erhalten dann allerdings das Fenster, um ein neues zusätzliches Child zu setzen:

firetree_04.jpg

In beiden Fällen können wir über → Vob → Rollout → Save Vobtree unseren Vobtree speichern!

  • Wir klicken jetzt auf die Option „Save Vobtree“ und ein weiteres Fenster öffnet sich:
    • Die Titelleiste trägt die Bezeichnung „Speichern unter“
    • Der Spacer hat uns automatisch zum Ordner Vobtrees geführt
    • Wir geben den Dateinamen ein, in unserem Fall „WALLTORCH_FIRETREE_MEDIUM“
    • Der Dateityp, eine Zeile unter Dateiname ist bereits festgelegt „*.Zen“

  • Wenn wir jetzt auf „Speichern“ klicken, haben wir das tatsächlich geschafft.
  • An dieser Stelle würde ich jetzt pragmatischerweise und anschliessend das Lichtvob des Vobtrees anklicken, den Lichtwert/Helligkeitswert erhöhen und mir sofort und unkompliziert eine: WALLTORCH_FIRETREE_LARGE.ZEN ….
  • und einmal den Lichtwert niedriger setzen und eine: WALLTORCH_FIRETREE_SMALL.ZEN erzeugen.

Wer hat der hat und das kostet kein Geld und wenn ihr eueren Vobtree in grösseren oder kleineren Räumen einsetzen wollt, dann habt ihr das parat.

6. Laden Vobtree

  • 6.0.0 Wir laden unser Vobtree, indem wir ganz oben im Objektfenster auf die Zeile Vob klicken

  • 6.0.1 Wir klicken mit rechter Maustaste auf eine freie Stelle im Spacer Hauptfenster und erhalten folgendes Fenster:

  • 6.0.2 Wir bewegen unseren Mauszeiger zum Eintrag Vob (etwas unterhalb der Mitte des Fensters - nicht ganz oben die „fett“ geschriebene Option Vob) und erhalten ein neues Rollout Fenster

  • 6.0.3 Wir wählen die Option „Insert Vobtree

  • 6.0.4 Wir wählen unsere *.Zen und klicken auf „öffnen“

Die *.Zen erscheint im Spacer, wir klicken das Parent an und können jetzt die Zen positionieren. Kollision würde ich bei einer Wandlampe nicht einschalten, bei einem Standleuchter aber schon. Aber bitte nur das Leuchtermesh mit Kollision versehen, nicht alle Teile der FireZen.

Bei Vobtrees mit mehreren Meshes müsst ihr selbst abwägen, welchem ihr Kollision zuschreibt.

7. Kleine Tips

  • 01 Wie teleportiere ich mich im Spacer zu einem bestimmten Vob/Mob/Vobtree etc.. mit dem ObjektListFenster?
    • Indem ich im ObjektListFenster einen Doppelklick auf das entsprechende Objekt mache.
  • 02 Wie teleportiere ich ein im Spacer vorhandenes Objekt an die Position der Spacercamera?
    • Indem ich das Objekt aktiviere und dann den unten angemerkten Button in der senkrechten Buttonleiste des Spacers betätige

  • 03 Wie aktiviere ich ein bestimmtes Vob/Mob/Vobtree etc.. mit dem ObjektListFenster, so dass es seine Boundingbox zeigt und bearbeitbar/verschiebbar/löschbar etc… wird?
    • Indem ich im ObjektListFenster einen Klick unterhalb des Objektes mache, das ich aktivieren möchte und anschliessend die Pfeiltaste nach oben drücke.
  • 04 Wie setze ich z.B. 5 Wandlampem ganz exakt auf eine bestimmte Höhe?
    • Indem ich die 1. Wandlampe auf die gewünschte Höhe setze.
    • Die anderen 4 Wandlampen (2-3-4-5) setze ich an ihre von mir ausgewähle Position, ohne mir jetzt Gedanken über die exakte Höhe zu machen.
    • Wandlampe 1 anklicken und dann im Objektfenster oben auf den Ordner Internals klicken, der sich dann folgendermassen öffnet:

  • Wir klicken in diesem Verzeichnisbaum auf die Zeile mit dem Vorzeichen < > und das Objektfenster verändert sich folgendermassen:

  • Unten erscheinen jetzt 3 neue Fenster mit den exakten 3 Positionskoordinaten des angewählen Objektes.
  • Wir benötigen den mittleren Wert, das ist die Höhe des Objektes über „NULL“
  • Wir rechtsklicken auf die Zahl und wählen im erscheinenden Rollout die Option kopieren
  • Lampe 2
    • Wir wählen Lampe 2 an und verfahren wie oben beschrieben. Wenn sich bei Lampe 2, die 3 Fenster geöffnet haben, setzen wir den kopierten Wert von Lampe 1 in das mittlere Fenster und betätigen den Button „Apply“.
    • Die Lampe 2 bewegt sich jetzt sofort auf exakt die gleiche Höhe wie Lampe 1.
    • Vorgang für die verbliebenen Lampen 3-4-5 wiederholen.

Anmerkung: Ich würde das aber nicht grundsätzlich so installieren. In einem Höhlengang z.B. würde ich die Lampen mit Absicht etwas höhendifferenziert einsetzen, wohingegen im Prunksal von König Rhobar die Lampen ganz exakt zu positionieren wären.

Ingametest

2016/02/13(dlz)

spacer/vobs/vobtrees.txt · Zuletzt geändert: 2016/02/15 19:52 von zollaidal