Train Fever Converter (BR146)

Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


  • @nuex:
    War (ist?) in Entwicklung, wurde meines wissens aber nie veröffentlicht.


    @starman001:
    In der obj-Datei werden für ein Objekt zunächst alle Vertices, Normalen, UV-Koordinaten und ggf. Tangenten als eine große "Datenliste" gespeichert. Die Flächen werden dann, gruppiert nach Material, aus Indizes zu der "Datenliste" gespeichert. Für jedes weitere Objekt wird eine eigene Liste mit eigenen Flächendefinitionen angelegt, kann aber auch von Programm zu Programm vermutlich variieren.


    Sieh dir auch mal den Wikipedia-Eintrag zu Wavefront obj an (http://de.wikipedia.org/wiki/Wavefront_OBJ) und versuche mal das Beispiel unten nachzuvollziehen oder schau gleichzeitig in deine obj-Datei (einfach mit einem Texteditor öffnen).


    Beispiel Würfel (Kommentare mit # am Anfang):


  • Das wäre natürlich genial !!! @Merk : Biste noch da ?


    @BR416 : Aha, also die Gruppierung ist doch nach Material, in meinen Fall (truespace besonderheit) also noch material und UV-ration..... Das erklärt das ganze schon mal... Blöderweise immer noch schwer den richtigen MTL eintrag zu identifizieren um die zweite Textur zu editieren, bleibt nur trial and error...

  • So, Versuchsmesh im Spiel. Fehler war in der Materialdefinition.null

    Blöderweise immer noch schwer den richtigen MTL eintrag zu identifizieren

    In der aktuellen Testversion wird in der *.msh-Datei jeweils der Name des Materials als Kommentar hinten angefügt. Damit sollte man es leichter Identifizieren können ;)


    Wurde nun ganz anderst gelöst. Es wird nun nur noch der Pfad zu den Materialien als Parameter übergeben (z.B. "vehicle/tain"). Zusammen mit dem in der Datei gespeicherten Materialnamen (Bsp. "mat1") wird nun folgender MTL-Eintrag generiert: "vehicle/train/mat1.mtl"
    Also schon bei der Materialbennenung dies Berücksichtigen, aber das sollte ja möglich sein. (Idee stammt von @DasMatze. Mir ist keine passable Lösung eingefallen, aber die finde ich einfach genial)


    P.S.: v1.2.2 ist raus!

    2 Mal editiert, zuletzt von BR146 ()

  • Ein kleiner Bug hat sich eingeschlichen. Der /mtl Parameter scheint immer den letzten Wert eines Parameters in der Zeile zu nehmen. Bei

    Code
    TFC_BR146.exe /make "LOD0/Wheels1" OBJ MESH  /mtl "BrickFever" /X -Z /Y -X /Z +Y


    macht er also "+Y/Materialname.mtl" daraus. Bei

    Code
    TFC_BR146.exe /make "LOD0/Body_lod0" OBJ MESH  /X -Z /Y -X /Z +Y /mtl "BrickFever"


    hingegen macht er, wie gewünscht, "BrickFever/Materialname.mtl" daraus. Ansonsten alles super!

  • Zitat

    Wurde nun ganz anderst gelöst. Es wird nun nur noch der Pfad zu den Materialien als Parameter übergeben (z.B. "vehicle/tain"). Zusammen mit dem in der Datei gespeicherten Materialnamen (Bsp. "mat1") wird nun folgender MTL-Eintrag generiert: "vehicle/train/mat1.mtl"


    Also schon bei der Materialbennenung dies Berücksichtigen, aber das sollte ja möglich sein. (Idee stammt von @DasMatze. Mir ist keine passable Lösung eingefallen, aber die finde ich einfach genial)


    P.S.: v1.2.2 ist raus!


    Diese Lösung ist perfekt, genau sowas hatte ich im Sinne !!! Mein Converter macht automatisch Material1, Material2 etc. aus den Texturen... Damit kann ich das dann schon mal erkennen !


    Danke für deine Mühe !

  • Mir ist noch etwas aufgefallen: Immer wenn ich versuche eine Normal Map zu nutzen, stürzt das Spiel ab, sobald das Mesh geladen wird. Es liegt nicht am Material, dieses habe ich von einem bestehenden Objekt kopiert. Es liegt auch nicht an der Textur, da selbst die Standard Normal Maps nicht funktionieren. Entweder ist es mein Mesh (welches mit Omich's Converter funktionierte) oder es ist der Converter. Wäre schön, wenn das jemand bestätigen könnte.

  • Ich kann das bestätigen.
    Ich bin auch schon einige male an der NormalMap gescheitert.
    Das wird mit Sicherheit am Mesh selber liegen. Denn wenn ich ein Original TF-Modell in .obj konvertiere, lade, ändere und wieder zurück konvertiere, funktioniert nach einer Anpassung in der .msh auch die NormalMap wieder. Bei neuen Objekten jedoch explizit nicht.

    Ich bin nur dafür verantwortlich was ich schreibe, nicht was andere verstehen "wollen"!


    System: Windows 7 Ultimate 64bit ; AMD Phenom II X4 965 @ 3,4 GHz ; 8 GB DDR3 Ram ; GeForce GTX 660 @ 3 GB GDDR5 Ram (Treiber: 431.36)

  • Ein kleiner Bug hat sich eingeschlichen. Der /mtl Parameter scheint immer den letzten Wert eines Parameters in der Zeile zu nehmen.

    Da habe ich doch tatsächlich eine Zeile vergessen.... Bugfix mit v1.2.3


    Das wird mit Sicherheit am Mesh selber liegen. Denn wenn ich ein Original TF-Modell in .obj konvertiere, lade, ändere und wieder zurück konvertiere, funktioniert nach einer Anpassung in der .msh auch die NormalMap wieder. Bei neuen Objekten jedoch explizit nicht.

    Die eine Anpassung ist vermutlich der Pfad zur Materialdatei? Deine Aussage lässt mich schließen, dass es nicht am Converter liegt? Sie steht ja quasi im Gegensatz zu DasMatze's Aussage drüber (mit Omich's Converter solls ja gehen, mit meinem nicht?). Da bin ich grad bissl verwirrt... :huh:


    Edit: Ich habe jetzt mal schlau gemacht. Es liegt das daran, dass ich keine Tangenten erstelle. Nur ohne geht es nicht:

    Modern bump mapping (also known as normal mapping) requires that tangent plane basis vectors be calculated for each vertex in a mesh.

    4 Mal editiert, zuletzt von BR146 () aus folgendem Grund: Infos ergänzt

  • Bisher wurden immer Smoothing Groups ignoriert. Habe das jetzt mal geändert. Im Anhang ist eine Testversion, die das können sollte. Da ich allerdings noch an anderer Stelle gerade rumbastel, kann es sein, dass es auch nicht korrekt funktioniert... Daher auch nur eine Testversion ;) .


    Wird für ein Material mehrere Smoothing Groups gefunden, wird der Dateiname um "_Smooting" + Gruppennummer (ggf. "Off", wenn keine Glättung mehr sein soll) ergänzt.

    Edit: Version fehlerhaft

    2 Mal editiert, zuletzt von BR146 ()

  • Nachdem wir heut im TS ein wenig zusammen entwickelt haben, hier die aktuellste Version. Sie sollte Normal Maps* und Smoothing beherrschen.


    *Normal Maps allerdings besitzt einen Bug: Der Alpha-Kanal wird nicht erkannt. Könnt ihr den Bug bestätigen? Wenn jemand einen Tipp hat, woran das liegt, bitte melden! Mir gehen die Ideen aus. Außerdem wäre es hilfreich, wenn jemand einen Würfel mit funktionierender Normal Map mit Alpha im obj-Format als auch im *.msh/*.msh.blob-Format (am besten als Zip hir an den Thread mit ran) mir zukommen lassen kann. Ich brauch was zum Vergleichen, um raus zufinden, was evtl. falsch berechnet wird...

    Einmal editiert, zuletzt von BR146 () aus folgendem Grund: Datei entfernt - ist nun im Downloadbereich zu finden!

BlueBrixx