Erstellen von Child Objekten für Repaints

  • Hier lernt ihr wie man Childobjekte für Loks im Train Simulator erstellt
    Was sind Childobjekte überhaupt?

    Beim Repainten, stößt man ab und zu auf die Problematik, dass das Mapping, also die Zuordnung, welcher Teil der Textur auf welchem Teil des Modells liegt, ein Repaint nicht zulässt. Dies lässt sich nicht ändern, und somit gestaltet sich das erstellen mancher Repaints relativ schwer. Hier können Childobjekte Abhilfe schaffen. Ein Childobjekt ist ein Objekt, meistens eine einfache Flache Platte, die als eigenes Objekt im Parent, der entsprechenden Lok, an der dies anzubringen ist, verlinkt ist.


    Was für externe Software brauche ich?

    Benötigt werden zum einen das Open-Source Programm Blender, von dem die Datei "blender-2.79b-windows64.zip" heruntergeladen werden sollte. Zusätzlich brauchen wir den IGA Exporter. Eine Google Suche kann bei der Installation von Add Ons in Blender helfen. ;)
    Zusätzlich sollte man ein Bildprogramm alla Paint.NET, GIMP (meine Empfehlung), oder natürlich Photoshop besitzen.


    Erstellen der Textur


    Beim erstellen der Textur, die später angebracht werden soll, müssen einige Dinge beachtet werden. Die Textur muss eine Auflösung auf beiden Achsen haben, die einer 2er Potenz entpricht (Also 2, 4, 8, 16, 32, 64, 128, etc.). Außerdem muss das Bild als *.tga abgespeichert werden. Bei den Exportoptionen als TGA beim jeweiligen Bildprogramm sollten die Standarteinstellungen beibehalten werden.


    Erstellen der Ordnerstruktur


    Zunächst haben wir zwei Möglichkeiten, wie wir unsere Ordnerstruktur aufbauen wollen. Die erste Option wäre, sich einen eigenen Provider und Product Ordner zu erstellen. Bei dieser Option erstellen wir im Source Ordner im Railworks-Verzeichnis (Normalerweise unter "C:\Program Files (x86)\Steam\steamapps\common\Railworks") den Ordner mit dem Autor (z.B. engine2) und in diesen Ordner einen weiteren (beispielsweise "Childs-BR185"). Hier erstellen wir einen Ordner "textures". In diesen legen wir nun die vorher erstellte Textur hinein. Nun gehen wir eine Ebene hoch in der Ordnerstruktur(in dem Fall der Ordner "Childs-BR185"), und fügen dort die drei *.txt Dateien "IGS_ExpModFile.txt", "IGSExpModFile2.txt" und "IAExpModFile2.txt" ein, die mit dem Exporter kommen.


    Die andere Möglichkeit wäre direkt im Verzeichnis der zu verändernden Lok zu Arbeiten, also im Source Pfad den Ordner von Provider und Produkt des jeweiligen Fahrzeugs einzutragen. In diesem legt man dann ein Verzeichnis "Childs" an, wo man die Texturen und *.txt Dateien wie oben beschrieben ablegt.


    Erstellen des Objektes in Blender

    (Hinweis: Hierfür sollten Blender Kenntnisse vorhanden sein. Das Internet hilft euch wie immer aus.)

    In Blender starten wir nun in der Standard Szene, und löschen alle Objekte. Dazu drücken wir zweimal A auf der Tastatur und dann auf X um die Objekte zu löschen. Nun drücken wir Shift + A -> Mesh -> Plane. Nun drücken wir N um ein Fenster rechts einzublenden. Dort können wir die Koordinaten eintragen. Der Exporter benutzt metrische Einheiten, also kann man, sofern man diese besitzt, das Objekt nach metrischen Einheiten platzieren. Es empfiehlt sich hier schon das Objekt richtig zu platzieren, da ein anpassen in der *.xml Datei relativ unschön ist. Nachdem das Objekt richtig platziert wurde, gehen wir im rechten Bereich auf den 4. Reiter von Rechts, auf das Material Tab. Dort klicken wir auf "New". Anschließend gehen wir auf den Reiter eins weiter Rechts auch auf New. Im kleinen Feld, in dem "Texture" steht tragen wir nun "TrainDecal.fx" ein. Über dem Namensfeld befindet sich eine Liste, bei dem die ausgewählte Textur blau hinterlegt ist. Wir klicken nun auf das Schachbrettsymbol darunter. Es erschein wieder der Button "New" den wir anklicken und bei dem Namen belassen. Unter dem Tab Image, welcher bei Bedarf ausgeklappt werden muss, klicken wir auf "Open", und wählen unsere *.tga Datei aus. Nun drücken wir die Taste TAB und gelangen in den Edit Mode. Das sehen wir auch in der unteren Leiste. Daneben zu sehen ist ein weißer Kreis , auf den wir nun klicken, und "texture" auswählen. In der oberen rechten Ecke des 3D Fensters sehen wir 3 Striche. on dort aus ziehen wir mit gedrückter Maustaste Richtung Mitte des Bildschirms. In der linken unteren Ecke des neuen Fensters klicken wir nun auf den Würfel, und wählen "UV/Image Editor" aus. An der unteren Leiste finden wir wieder Knöpfe "New" und "Open" daneben ist ein Bild-Symbol, auf das wir klicken, und unsere *.tga Datei auswählen. Mit der Maus hovern mir nun in das linke Fenster, drücken U und wählen "Unwrap" aus. Die Punkte im rechten Fenster müssen nun entsprechend angepasst werden. (G drücken zum verschieben, R zum drehen, S zum Skalieren). Es empfiehlt sich, die *.blend Datei auch in dem Source Ordner abzuspeichern. Unter dem Dialog "File" in der oberen linken Ecke gehen wir nun auf "Export -> TS20xx IGS (.igs)" Dort wählen wir wieder den Ordner aus, in dem sich die drei Textdateien befinden, die wir hereinkopiert haben. Sollte alles Funktioniert haben, finden wir im dementsprechenden Ordner eine *.igs Datei, mit dem Namen, den wir beim Export angegeben haben.


    Exportieren des Objekts und der Textur

    Zuerst müssen wir die Textur in ein Format umwandeln, dass der "Blueprint Editor", mit dem wir gleich die Blueprints erstellen werden, verarbeiten kann. Dazu gibt es ein Bordmittel, zu finden im Railworks-Hauptverzeichnis, was auf den Namen "RWAceTool.exe" hört. Dieses öffnen wir, und wählen dort "Single Image Conversion" aus. Als Input wählen wir unsere *.tga Datei, und klicken auf Convert. Kurz danach sollte die Meldung "Converted!" zu sehen sein, was heißt, dass der Vorgang erfolgreich war. Das Programm können wir nun schließen, und in den Source navigieren. Im Textures Ordner sollten wir nun eine zur *.tga Datei gleichnamige *.ace Datei auffinden.


    Anschließend öffnen wir den Blueprint Editor, den man im Railworks-Hauptverzeichnis auffindet unter dem Namen "BlueprintEditor2.exe". Hilfe zu diesem Programm kann hier gefunden werden. In dem Programm navigieren wir zu unserem Ordner, in dem die "*.igs" Datei liegt. Wir rechtsklicken die Datei, und wählen im Kontextmenü die Option "Create scenery blueprint" aus. Hier müssen wir lediglich unter "Browse information" die "Category" auf "Misc" stellen, und die Haken bei "Valid in scenarios" setzen.


    Mit Strg+S speichern wir das ganze, und wählen anschließend die *.xml Datei aus. Dann drücken wir F7.
    Unten im Output Fenster sollten wir kurz danach eine Meldung "Export Succeeded" sehen.


    Das Objekt sollte jetzt im TS auffindbar sein unter der Kategorie "Misc". Wir können es schon einmal testweise platzieren.


    Einbinden des Objektes in eine Lok


    Mit dem TS-Bordmittel serz.exe, zu finden im Railworks-Hauptverzeichnis, öffnen wir nun die *.bin Datei der Lok, der wir das Child-Objekt hinzufügen wollen. Die entstandene *.xml Datei öffnen wir nun mit irgendeinem Editor (meine Empfehlung: Notepad++ oder Sublime Text 3). Nun scrollen wir ganz herunter. Etwas weiter oben sollten sich Konstrukte wie diese finden:



    Ein solches kopieren wir uns, und fügen es darunter ein. (Darauf achten, dass nichts überschrieben wird, und die Einrückung passt). In der zweiten Zeile des Konstrukts tragen wir den Namen ein, beispielsweise "TXL Logo Child". Ein paar Zeilen darunter muss nun der Pfad zur *.bin Datei eingetragen werden, dort muss man drauf achten die Endung *.xml zu verwenden.


    In der Matrix darunter interessieren und nur die 3 vorletzten Zeilen. Dort tragen wir als Werte überall 0 ein.


    Nun speichern wir die Datei ab, und konvertieren sie zurück. Wenn wir nun die Lok platzieren sollte das Child zu sehen sein.


    Was mache ich wenn das Child nicht sichtbar ist?

    Zunächst mal ist der Grund meistens relativ banal, warum ein Childobjekt nicht zu sehen ist. Oft befindet sich das Child im Lokkörper, und ist so nicht zu sehen. Auch wenn wir das Child sehen, aber es an der falschen Stelle ist, müssen wir folgende Schritte wiederholen:


    • Das Objekt in Blender wie gewünscht anders platzieren
    • Das ganze wieder als IGS Exportieren
    • Im Blueprint Editor mit ausgewählter *.xml Datei F7 drücken


    Ich hoffe, ihr habt alles verstanden, bei Fragen stehe ich euch gerne bei. Diese könnt ihr mir per Kommentar oder Privatnachricht zukommen lassen.

Teilen

Kommentare 1

  • Bei DRM-geschützten Paketen kann es sein, dass der TS das Laden eines Modells (*.GeoPcDX) verhindert, wenn sich dieses unterhalb dieser Assets/Provider/Product/ Verzeichnisstruktur befindet.

    Dann muss man das Modell in ein Verzeichnis auslagern, das nicht geschützt ist. Ich empfehle hierzu einen Ordner zu verwenden, der sich so gut wie immer im TS befindet, und nicht Assets/Meinname/MeinProjekt/. Vorschlag: Assets/Kuju/RailSimulator/Meinname/Projekt/ .

    Damit das Ganze auch im Quickdrive funktioniert muss sich das Blueprint im selben Product, wie die Lok / der Wagen befinden.

    Das geht einfach :

    Modell normal in Blender erstellen, mit BPE exportieren.

    Dann das Blueprint (z.B. Assets/Kuju/RailSimulator/Meinname/Projekt/MeinChild.bin ) in das Verzeichnis der Lok verschieben und dort eintragen (so wie oben in "Einbinden des Objekts in Lok" dargestellt).