[7] 7.1 Special: Shared Textures

Eddi22
[7] 7.1 Speziell oder ein Exkurs: Shared Textures (auf Empfehlung von BigBurger)

Wieder einmal richte ich mich mit einem Tutorial an euch. Zuvor ein paar kleine Worte: Ohne BigBurger wäre dieses Tutorial nicht entstanden, aber ich denke es ist mit Abstand das wichtigste Tutorial, dass es in dieser Sammlung geben wird. Wer es versteht, wird auch den Sinn von RCT3 verstehen und wird in Zukunft seine Sets anders fertigen. Und weiß vielleicht dann auch schon, wie er Texturen aus dem Spiel, wie z.B. das Atlantis-Set, ins Spiel bekommt.

Nun ist das Wort "Shared Textures" schon ein ziemlich kompliziertes Wort. Übersetzung: "Geteilte Texturen"

Wie immer erst einmal in einfachen Worten. Bisher haben wir die Texturen immer an die Objekte gebunden, bzw. immer einzeln an die Objekte geheftet. Oft ist es dabei vorgekommen, dass es auch mal einige Texturen gab die doppelt oder sogar mehr als dreifach im Set auf verschiedenen Objekten zu finden waren. Also auch doppelte und dreifache Arbeit. Denken wir an einfache Wände. 10 verschiedene Wände und die betreffende Textur ist 10mal auf verschiedene Objekt gelegt worden. Ergebnisbeweis: RoadCafeItalySet1 von mir. Es ist dank der Shred Textures von 58,8 MB auf 16,3 MB geschmolzen. Oder gepackt, von 50 MB auf 8,8 MB. Das spricht denke ich eine deutliche Sprache.

Da wäre es doch sinnvoller die Objekte zwar ganz normal zu importieren, aber die Texturen von einem weiteren Ordner aus einem "Pool" herauszufischen und sie zu setzen. Also übersetzt, mehrere Objekte teilen sich ein und dieselbe Textur. Sie sind zwar auch früher identische Texturen gewesen, aber eben auch mehrmals im Set, da bei jedem Klick auf CREATE OVL die Texturen an das Objekt gebunden werden. Zukünftig kann man für 20 Wände mit der selben Textur auf eine Textur zugreifen, die auch nur einmal geladen werden muss.

Das würde dann einen 20zigsten Teil ausmachen. Minimiert die Ressourcen und lässt das Set kleiner werden.

Die große Frage ist nur: Wie kann ich das erreichen?

Dazu benötigen wir die Shared Textures, einen Ordner "shared" und ein wenig Aufmerksamkeit bzw. Lesestoff. Den sollt ihr nun bekommen.

Da ich bereits ein wenig Post bekommen habe und BigBurger sich viel Mühe gegeben hat sich darüber Gedanken zu machen, werde ich als erstes genau seine Gedanken hier posten:

Original BigBurger Erklärung:
Der Vorteil ist der, dass man eine Textur nicht immer wieder erneut bei jeder OVL importieren muss, sondern sie einfach aus dem Shared-Textures-Cache laden kann. Außerdem spart man Unmengen an Speicherplatz in Style\Themed und der Aufwand ist wirklich minimal. Man muss viel manuell machen, aber im Großen und Ganzen ist es nicht wirklich schwer.

So, wie geht das nun?

Vorbereitung I
- Zuerst öffnest du, wie gewohnt, den Importer
- Gebe nun etwas unter Prefix und Theme Name Name ein. Bespielsweise "Eddi" (prefix) "Road Cafe" (Theme Name). Das ist wichtig, weil der Importer später automatisch Namen für deine Texture-OVL angeben will. Diese Funktion wird nur so funktionieren.



(Einschub Eddi: Dabei sind die Namen die ihr vergebt völlig frei wählbar. Das Set wird später dann aus diesen beiden Namen entstehen. Vielleicht kann man hier dann auch schon geschickt den Setnamen vergeben, denn der wird als Ordner später gespeichert.)

Vorbereitung II
- Mache dich nun, wie eigentlich immer, an die Text Strings
- Nun kümmerst du dich um die Icon Textures.
- und später dann auch im die Icon References.

(Einschub Eddi: Das kennt ihr ja bereits: Vergabe der PNGs. Also den kleinen Icons usw. Also wie aus dem anfänglichen Importer-Tutorial)

Die Texture OVL
- Klicke nun im Importer-Hauptfenster auf Scenery. Es öffnet sich der Scenery Manager.
- Klicke hier auf Add, so dass sich ein Fenster mit dem Namen Edit Scenery Settings #1 öffnet.
- Klicke auf Create OVL, um zum gleichnamigen Fenster zu gelangen.



- Klicke bei den Textures auf +. Wähle eine Textur aus und füge die entsprechenden Eigenschaften hinzu (Recolor, Alpha, etc...).



- Achte nun auf den Button Create Texture OVL. Wenn du jetzt noch LODs und Objekte hinzufügen würdest, käme wie gewohnt der Button Create Scenery OVL. Das lassen wir aber. Auch wichtig ist der Teil unten rechts, genannt References. Dies wird später bei den anderen OVL-Dateien noch eine wichtige Rolle spielen.
- Klicke auf Create Texture OVL. Der Importer fragt nun nach, ob du wirklich eine Texture OVL erstellen willst.



Bestätige dies mit Ja.
- Ändere den Namen der Textur-OVL nicht. Sie funktioniert nach dem Schema "[Prefix][Theme Name]-texture". Speicher sie unter diesem Namen ab!



- Speichere das *.scn-File (Diskette) unter einem beliebigen Namen ab. Dies ist wichtig, wenn ihr den Importer neu startet.





(Einschub Eddi: Das Schema kennt ihr nun. Wenn ihr mehrere Texturen habt, solltet ihr (so mach ich es) unter [Prefix][Theme]-texture, für "texture" den Namen der betreffenden Textur eingeben. Dann könnt ihr sie jederzeit wiederfinden.)

Die eigentliche Scenery OVL
- Gehe zurück zum Scenery Manager, ohne irgendetwas als Objekt zu importieren!
- Klicke auf Add und anschließend auf Create OVL.
- Ihr seht nun eure Shared Texture bei den Texturen. Der Importer lädt sie aus dem sogenannten Texture - Cache. Dieser wird automatisch geleert, sobald ihr den Importer schließt. Ohne das *.scn-File, das wir eben gespeichert haben, hätten wir also keinen Zugriff mehr auf unsere Texture OVL.
- Füge zuerst unter Textures alle normalen Texturen hinzu. Wenn du keine hast, überspringe diesen Schritt einfach.
- Klicke beim Fenster namens Models auf das +. Fügt eure *.ase hinzu, ladet die Shared Texture und nehmt sonstige Einstellungen vor.
- Nun kommen die LODs dran. Klicke dazu einfach auf das A (für Automatic).
- Der Importer weiß nun aber immer noch nicht, wo er die Texture OVL später finden kann. Unten rechts bei den References. Hier kannst du auf deine Shared Texture(s) verweisen. Die Eingabe lautet derzeit: ../shared/Eddi'sRoad Cafe-texture.

Ein paar Worte dazu...

".." ist quasi Style\Themed. Schreib das nicht hin und belasse es bei den zwei Punkten! (Einschub Eddi: Wichitg!)

"shared" ist frei veränderbar. Das ist der Ordner, den ihr später manuell in Style\Themed\[Set] anlegen müsst. Hier kommen die Texture OVLs rein! Solltet ihr shared in z.B. Shared Textures ändern, muss der Ordner Shared Textures heißen. Belasst es aber am besten bei shared, um euch Arbeit zu sparen (ihr müsstet es jedes Mal in einen anderen Namen umtippen).

(Einschub Eddi: Das ist sowas von wahr. Lasst den Namen bei shared und nortiert euch bereits im Vorfeld einen Ordner mit shared der später kopiert und gespeichert werden muss.)

"Eddi'sRoad Cafe-texture" ist eure Texture-OVL, die ihr benutzt habt ohne Dateinamenserweiterung (schönes Wort ). Solltet ihr eure OVL unter einem anderen Namen abgespeichert haben, oder mehrere verwendet haben (was den ersten Fall zur Folge hätte), müsstet ihr auch hier den Namen manuell umtippen.

- Klicke schließlich auf das + um die Reference hinzuzufügen. Bei mehreren References wiederholt ihr den Vorgang einfach.
- Create Scenery OVL klicken und normal weiter machen.

(Einschub Eddi: Viele Texturen, viele Shared Textures. Soll heißen, wenn ihr eine Textur mindestens zweimal verwendet, dann solltet ihr eine Shared Textures anlegen. Warum? Weil ihr dadurch einmal die volle Textur im Set spart und vorallem die Ressourcen des Spiels spart.

Legt dazu für jede Textur eine Shared Textures an. Damit habt ihr Zugriff auf alle Texturen aus einem Pool. )


Installation
Wenn ihr alle Objekte importiert habt, klickt ihr, wie gewohnt, auf INSTALL. Ihr bekommt ein positives Feedback (wenn ihr euch an das hier gehalten habt). Wenn ihr nun nach Style/Themed geht und in den Ordner eures Sets guckt, seht ihr nichts von einem Ordner "shared". Diesen müsst ihr selbst erstellen (nicht vertippen!). In diesen Ordner kommen nun alle Texture OVLs hinein, die ihr unter diesem Verzeichnis verwendet habt.


(Einschub Eddi: Habt ihr die Shared Textures fertig gestellt, dann kopiert sie gleich in einen Ordner mit dem Namen shared. Dann habt ihr die Gewährleistung, dass euch nichts durch die Lappen geht. Wenn er nämlich fehlt, dann habt ihr keine Texturen. Das Spiel stürzt nicht ab, ihr habt dann nur überall Frösche auf der Textur. RCT3-erzeugend... )


Tja und das war es schon. Nichts einfacher als dieses finde ich. Danke dir BigBurger insbesondere für die Arbeit, die Mühe und die Geduld. Ich experimentiere noch etwas. Allerdings kann ich jetzt bereits sagen, dass sowohl Alpha-Texturen, als auch Animationen einwandfrei funktionieren. Ferner danke ich auch WabigBear vom Atari-Forum, der es bereits mehrmals ansprach bei diversen Anlässen und Test meiner Sets, dass sie zu groß sind und das Spiel Speicherprobleme bereitet.

In diesem Sinne, wenn ihr Fragen habt, schreibt BigBurger oder mir. Ich denke wir werden so schnell wie möglich Lösungen präsentieren.

Gruß

Euer

Eddi