Zentralen Texturordner eines Busses ändern

Das Forum befindet sich im reduzierten Betrieb. Die Addon- und Supportforen bleiben weiterhin verfügbar.
Bitte beachte, dass OMSI nicht mehr weiterentwickelt wird. Ein Teil der Entwickler widmet sich inzwischen der Entwicklung eines neuen Simulators. Weitere Informationen zum LOTUS-Simulator findest Du hier.
  • Guten Tag,
    ist es möglich und wenn ja, wie kann man den zentralen Texturordner eines Busses verändern (von vehicles/(Busname)/textures zu z.b. vehicles/(Busname)/textures2)?


    Grüße
    Kai

  • ist es möglich


    Ja es ist möglich.


    Für jeden Bus gilt im allgemeinen, daß die zugehörigen Texturen im Ordner Texture sind. Wenn du dem Bus eine Textur verpasst hast, die du nicht mitliefern kannst und sich in einem anderen Bus befindet, dann kannst du die entsprechende Textur aus dem anderen Bus trotzdem nutzen, ohne die Textur zu verschieben:


    also statt
    [matl_change]
    Bild.tga
    0
    lights_stand


    mußt du nur den entsprechenden Texturordner eintragen, angeführt von zwei Befehlen zum Zurücksetzen des Ordners:


    [matl_change]
    ../../MAN_SD202/Texture/Bild.jpg
    0
    lights_stand


    Wichtig sind die ersten beiden Eingaben
    Zwei Punkte dann ein Slash (Omsi geht damit aus dem Texture-Ordner des Busses 1 raus in den Bus-Ordner), gefolgt von zwei Punkten und einem Slash (Omsi geht aus dem Bus-Ordner in den Vehicles-Ordner) und dann folgt lediglich der Pfad, wo sich die Textur befindet. In meinem Beispiel im Textur-Ordner des MAN SD 202.


    Das funktioniert mit Objekten, genauso wie mit Texturen und Sounds.


    Befindet sich der Ordner Textures 2 im selben Bus-Ordner, dann genügt auch ein ../


    Beispiel:


    [matl_nightmap]
    ../Texture2/Bild.jpg


    Die Datei "Bild.jpg" ist dann natürlich die entsprechende Datei mit deinem Dateinamen und der entsprechenden Dateiformat (-endung).

  • Danke Tratra, aber ganz so habe ich das nicht gemeint, da habe ich mich wohl zu ungenau ausgedrückt.

    :S


    Ich möchte das ALLE Texturen mit einem Befehl aus einem anderen Texturen-Ordner ausgelesen werden. Ich meine nicht nur 1-2 Texturen, sondern alle Texturen auf einen Schlag.
    Falls das trotzdem nicht geht, ich habe zum Test eine Textur einzeln in einen anderen Ordner kopiert und dann den Pfad wie oben geschrieben geändert. Allerdings haut mir Omsi dann den "Fehler bei Bereichsprüfung" um die Ohren. In der Logfile steht unter Erros, dass die Textur "test/cockpit.jpg" nicht in der Objekt Datei "Gangwahltaster N" aufgeführt wird.

  • Also immer eines nach dem anderen:


    Es gibt keinen Befehl, alle Texturen aus einem anderen Ordner zu nehmen. Jeder Textur wird standard-mäßig aus dem Ordner Texture im Busornder ausgelesen. Das ist Omsi-seitig so festgelegt.
    Das ganze verhält sich wie folgt. Ein Objekt beinhaltet etliche Daten ... unter anderem auch welche Texturen zu dem Objekt gehören. Einfaches Beispiel:


    Wir nennen das Objekt Würfel.o3d und je zwei Flächen werden don einer Textur abgedeckt.
    Bild1.jpg
    Bild2.bmp
    Bild3.tga


    Omsi geht nun von folgendem Sachverhalt aus:
    Die Texturen befinden sich im Ordner "Texture"
    Das Objekt befindet sich im Ordner "model"
    Dazu müßen sich beide Ordner in einem Hauptordner befinden.


    Damit der Würfel im Bus angezeigt wird, muß der Würfel in der model.cfg eingetragen werden:
    [mesh]
    Würfel.o3d


    weitere Sachen müßen nicht eingetragen werden. Denn Position und Texturen, Texturenzuordnung, Ausrichtung und Form stehen in der Modeldatei des Würfel.o3d
    In der model.cfg muß nicht weiter eingetragen werden, damit das Objekt angezeigt wird.


    Da du die Textur aus einem anderen Ordner haben möchtest, muß du in der model.cfg vorgeben wo sich diese Textur befindet. UND das mußt du nicht nur für jedes einzelne Objekt machen, sondern auch für jede einzelne Textur! Es gibt für dich keine andere Möglichkeit, da in keiner Scriptdatei der Texturordner eingetragen werden muß. Auch nicht in der Busdatei.


    Kommen wir zu deinem zweiten Problem:
    Jedes Objekt muß generell mit mindestens einer Textur versehen sein. Du kannst aber ausschließlich nur in einem 3D-Programm dem Objekt eine Textur zuweisen und anpassen.


    In der Befehlsfolge mit [matl_....] kannst du eine Textur ändern [matl_lightmap] oder eine andere Textur auf der Grundtextur auflegen [matl_nightmap].
    Zuerst steht generell IMMER die Grundtextur eingeschrieben werden:
    [mesh]
    Würfel.o3d


    [matl]
    Bild1.jpg


    schreibst du an der zweiten Stelle eine andere textur ein, bekommst du den angezeigten Fehler, weil die Textur unter [matl] nicht die Grundtextur ist.
    Hat der Würfel, wie oben beschrieben 3 Texturen, muß man nur die Texturen eintragen, die man ändern möchte:


    [matl_change]
    Bild1.jpg
    0
    elec_busbar_main


    [matl_item]


    [matl_lightmap]
    Bildx.jpg


    geht die Elektrik an, wird die Textur auf zwei Flächen ausgetauscht. Die Textur leuchtet nicht!


    [matl_change]
    Bild2.bmp
    1
    lights_brems


    [matl_item]


    [matl_nightmap]
    Bildy.bmp


    hier wird auf zwei anderen Flächen des Würfels die Lichttextur auf die vorhandene Textur gelegt. Außerdem ist das Objekt immer hell, auch wenn die Umgebeung komplett dunkel ist. Das Objekt scheint zu leuchten.


    Möchtest du die Textur eines Objektes austauschen, mußt du die Grundtextur in der o3d ändern. Dazu kannst du ein geeignetes Programm benutzen, um die Grundtextur auszutauschen. Oder du veränderst die Textur im Textureordner. Eine andere Möglichkeit hast du nicht. Aber du mußt die genaue Position in der Bilddatei Pixelgenau einhalten!.


    [matl_item]

  • Hallo Gemeinde,


    hab heut auch mal ein kleines (Luxus)-Problem.

    Und zwar bin ich an einer Dresden-Mod für den A40GL (Bremen) dran und dafür brauch ich eine Fahrerklimaanlage.

    Diese hole ich mir vom Urbino II (Chrizzly).

    Wie bringe ich jetzt aber die Klimaanlage im MAN dazu, die Texture vom Urbino II (SU18_II_V_Main.dds) anzuzeigen


    Meine bisherigen Versuche sehen so aus:


    [mesh]

    ..\..\Urbino_II\model\Gelenk_V\Urbino_II_Dachklima.o3d


    [matl]

    ..\..\Urbino_II\texture\SU18_II_V_Main.dds

    0


    ---------------> kein Erfolg



    [mesh]

    ..\..\Urbino_II\model\Gelenk_V\Urbino_II_Dachklima.o3d


    [matl_change]

    ..\..\Urbino_II\texture\SU18_II_V_Main.dds

    0


    ---------------> kein Erfolg


    Nur wenn ich die Texture direkt in den MAN-Textureordner packe funktioniert das (logisch)

    Hat jemand ne Idee???

    Die Lösung ist bestimmt ganz einfach, aber ich bin wohl betriebsblind...X/


    mfg

    Daniel

  • Ich sag's gleich vorweg: Ich kenne mich mit den Model-Einträgen nicht 100%ig aus, aber mal eine etwas "dumme" Idee:


    Probiere mal bei [mesh] den "normalen" Texturpfad einzutragen, wie als würde die Datei eben im "normalen" Texturordner liegen, und dann bei [matl_change] den geänderten Pfad.


    Angaben ohne Gewähr, kann auch sein, dass ich absoluten Blödsinn von mir gebe......

  • I believe what you're looking for is the so-called "free-texture" function (see scenery object SDK for details). It works as follows:

    Code
    1. [mesh]
    2. my_mesh.o3d
    3. [matl]
    4. my_original_texture_path
    5. index, typically 0
    6. [matl_freetex]
    7. my_original_texture_path
    8. my_altered_texture_path

    Where my_altered_texture_path is not a literal path, but a string variable declared in a xxx_stringvarlist.txt, and set by whatever arbitrary script like so:


    "path\to\my\changed\texture" (S.$.my_altered_texture_path)


    For example:


    Code
    1. [mesh]
    2. Erzi\Gangwahltaster_1.o3d
    3. [matl]
    4. a1.jpg
    5. 0
    6. [matl_freetex]
    7. a1.jpg
    8. cockpit_additional_transmission_mode_selector_texture


    If the script then says...


    "..\..\blah1\blah2\some\texture.png" (S.$.cockpit_additional_transmission_mode_selector_texture)


    ...then the Gangwahltaster_1 object will have...


    <OMSI>\Vehicles\blah1\blah2\some\texture.png


    ...applied as its "base" texture, as opposed to its default of...


    <OMSI>\Vehicles\<type>\Texture\a1.jpg .


    Note that the path assigned to the string-var is not anyhow constrained -- it can be the same directory, a parent directory, a child directory, or even an absolute path to a completely unrelated branch of the file system tree (as long as OMSI has read access to that location). Note also that [matl_freetex] works with light-maps and night-maps too, both in simple [matl] and in [matl_change] contexts.