Support Thread: Blender RS export Preparator

  • Hallo liebe Blender Nutzer,


    um die Nutzung des freien 3D Modellierungsprogrammes Blender für alle RS Objektersteller zu vereinfachen, habe ich mal ein Python Skript geschrieben. Dieses Blender Python Skript erleichtert den export von 3D Modellen erheblich.


    Der eigentliche Export eines 3D Objektes von Blender zum RS erfolgt ja bekanntlich mit Hilfe von 'steampsi's RS exporter script' in das IGS (Zwischen)Format (*.igs). Dieses kann dann vom Asset Editor gelesen und ins RS Format gewandelt werden.


    Leider sind die Fehlermeldungen von steampsi's export Skript nicht immer sehr aufschlussreich. Unter bestimmmten Bedingungen bricht das Skript den Export sogar komplett ab, ohne dass es einen Hinweis auf das Problem mit dem Modell gibt.Und somit wird erst gar keine IGS Datei erstellt, mit der man im Asset Editor den Fehler sehen/finden könnte.


    Abhilfe vom steampsi's Seite ist auch nicht in Sicht, weil der irgendwie schon seit Monaten abgetaucht ist...??


    Hier setzt nun mein Blender RS export Preparator Skript an. Es erledigt die komplette Vorarbeit zum erfolgreichen Erstellen der IGS Datei des 3D Modells. Das Script läßt sich einfach über eine kleine GUI mit ein paar Knöpfen für die Optionseinstellungen und den 'Start' Knopf bedienen.



    Man kann eine Analyse seines 3D Modells durchführen lassen und wird durch aussagekräftige Warn- und Fehlermeldungen auf die Ursache der Exportprobleme hingewiesen.


    Probleme, die eine Fehlermeldung verursachen muss der Nutzer selber beseitigen weil das Script keine Entscheidungen für das Aussehen des 3D Modells übernehmen kann.


    Probleme, die "nur" eine Warnmeldung verursachen, kann der Nutzer wahlweise automatisch beseitgen lassen oder selber Hand anlegen.


    Ganz hilfreich ist auch noch die 'pretend' Option, mit der das Script erstmal auflistet was es tun würde wenn es denn einen "harten" Durchlauf machen würde. So kann man vorab schon einmal anschauen ob einem das auch genehm ist, was gemacht werden soll.


    Alle Ausgaben des RS export Preparator Scripts landen im Konsolenfenster oder wahlweise auch in einer Log-Datei. Damit kann man dann Schritt für Schritt sein 3D Modell durchgehen und alle Probleme beseitigen.


    Wenn alle Probleme beseitigt wurden die Fehler verursachen, und der Präparator seine Arbeit erledigt hat, dann kann man optional auch gleich noch steampsi's RS exporter anwerfen lassen. Am Schluss hat man dann eine IGS-Datei von seinem 3D Modell.


    Im ZIP-Paket des Skriptes ist eine ausführliche Readme Datei enthalten. Dort stehen neben der Installationsanleitung auch noch genaue Anleitungen wie man in Blender die Probleme beseitigen kann, die zu Fehlermeldungen führen. Auch im Download-Paket enthalten sind ein paar Blender Beispielobjekte (*.blend), an denen man sehen kann, wie die Fehler am 3D Modell aussehen.



    Download des Blender RS export Preparator Skripts: Hier im Downloadbereich.



    Ich hoffe das Skript nutzt der RS Gemeinschaft ein wenig und hilft dabei, dass wir in Zukunft viel mehr Modelle im RS bewundern dürfen. :)



    Für Fragen, Fehlermeldungen oder Anregungen bezüglich des RS export Preparator Scripts:


    Dies ist der Support Thread dafür :)



    Gruß


    HenningBR218

  • Hallo HenningBR218 !


    Ich habe einige Fragen, die bei mir auftreten bei der Verwendung von Blender, deinem Blender-Skript und speziellen KUJU-Shadern.


    1. Wenn ich den Shader BlendATexDiff (bei Fensterscheiben z.B.) verwende, gelingt der Export zum RS einwandfrei und die Scheibe erscheint im RS transparent.
    Ich nehme an , dass dieser Shader den Alpha-Kanal im Texturenimage einwandfrei erkennt und verwendet.


    2. Wenn ich Glanz auf einer Fläche (Metall, Kunststoff) verwenden will und dafür den Shader TrainSpecEnvMask.fx (in Blender kurz TrSpecEM genannt) anmelde, motzt sowohl dein Skript als auch der Exporter : Slot2 nicht gesetzt /besetzt.


    Ich glaube, dass dies heissen soll:
    beim verwendeten Material mit Glanz müssen 2 Texturen hinterlegt sein als getrennte Image-Dateien.


    Wenn dem so ist, wie geht man da im Blender vor ? Ich habe in den einschlägigen Foren leider keine Beschreibung dafür entdeckt.


    Oder kann ich Glanz auch mit einem "einfacheren" Shader erzeugen, der den Slot2 nicht benötigt ?


    Für die Beantwortung meiner Fragen danke ich dir im voraus.


    Grüsse


    Walterludwig

  • Hallo Walterludwig,


    vorab erstmal: Ich habe noch keine Shader benutzt, die zwei Texturen verwenden.


    Wenn ich mich aber recht entsinne, dann steht die Information darüber in steampsi's Dokumentation zu seinem exporter script: Guckst Du hier.


    Speziell den Punkt 7. solltest Du dir durchlesen.


    Für den TrainSpecEnvMask Shader brauchst du also in Slot #1 eine ganz normale Textur (RGB Diffuse A Env & Spec mask) mit Namen 'TrSpecEM' und in Slot #2 die zweite Textur (Cubic environment), die du beliebig benennen kannst.


    Wenns geklappt hat wäre es schön wenn du hier mal einen screenshot der glänzenden Fläche posten könnstest. Ich bin sehr gespannt wie die im RS aussieht.


    Gruß


    Henning

  • Hallo HenningBR218 !
    @alle


    Vielen Dank für deine schnelle Antwort .
    Die steamsi-Unterlage habe ich mir nun runtergeladen und erneut durchgelesen. In meinem Fall hilft die mir nicht viel weiter.
    Ich habe folgendes Experiment gemacht, das aber weder von deinem Skript noch vom RS-Exporter akzeptiert wird.


    Im Slot1 habe ich TE:TrSpecEM und eine Textur von einer Metalloberfläche
    im Slot2 TE:Opacity (also beliebig !) und als "Environmentmap" einfach eine schwarze Fläche (also beliebig)



    Das TE:Opacity wird nicht akzeptiert. Ich probiere jetzt noch TE:Tex, TE:TexDiff usw. und berichte dann.


    Bei der Steamsi-Unterlage für den RS-Exporter / Blender ist mir jetzt auch aufgefallen, dass bei den Ausschlüssen wo der Exporter noch nicht funktioniert "Glanz" angegeben wird; ob sich das obige Problem damit erklären lässt ?


    Mal was allgemeines: Ich habe mir mal im RS stichprobenartig glänzende Oberflächen (wo ich die vermute) angeschaut:


    Pks, Loks, Fenster von Häusern. Mir scheint, dass da Glanzlichter / Spiegelungen, wenn sie denn überhaupt vorliegen, von Fotos stammen oder aufgemalt sind. Denn sie verändern sich beim Drehen gegen das Sonnenlicht überhaupt nicht. Somit: Wird denn der TrainSpecEnVMask.fx überhaupt im RS verwendet ? :-\
    Und noch eins drauf: Hat jemand schon die mit ".fx" von Kuju bezeichneten Shader in einem 3D-Modeller verwendet ?
    Dazu könnten die anderen Konstrukteure (ice, newS etc.) sicherlich viel sagen.



    Grüsse


    Walterludwig

  • HenningBR218


    @alle


    Ergänzung meiner Nachricht von heute:
    Die Bezeichnung in Slot2 mit TE:TexDiff oder TE:TexDiff scheint total falsch zu sein (weil offenbar dann ein zweiter Shader initiiert wird / werden soll (neben dem "Hauptshader" TE:TrSpecEM im Slot 1).


    Offenbar kommt man hier mit Blender nicht weiter, zumindest ich nicht.


    Hinweis: Im UK-Trainsim-Forum wurde das Thema "TrainSpecEnvMask.fx"-Verwendung im 3D Canvas diskutiert. Wenn ich richtig verstanden habe, in 3DCanvas scheint es zu gehen, wenn auch nur mit erheblichen Kopf- und Handständen.


    Die 2-Slot-Shaders von Kuju scheinen eher eine Spezialität zu sein, gemacht für 3DMax. Hoffentlich !


    Grüsse


    Walterludwig

  • HenningBR218
    @alle


    Und es geht doch mit TrSpecEM (Glanz) im Blender. ;D ;D
    Mein Problem war, dass ich den Materialslot2 falsch belegt habe ( :-[ nämlich irrtümlicherweise mit dem gleichen Image wie im Slot1; der Blender will nicht nur geistig sondern auch manuell richtig behandelt werden).


    Dann meckert der Exporter auch nicht mehr, auch nicht dein Skript HenningBR218 !


    Zum Test des Glanzeffektes im RS :
    Ich habe auf einen Würfel und einen Zylindern ein schwarzes Image mit "Roststellen" (soll beschädigter schwarzer Lack sein) in den Slot1 gelegt, in den Slot2 ein total weisses Image als Cubic Environment ;)
    Beide Images sind als matt von mir angelegt (also ohne Glanzlichter beim Schwarz).


    Export, Blueprint, im RS eingeladen.
    Auf den schwarzen Oberflächen sind jetzt gräuliche Schleier zu sehen, die beim Drehen gegen das Sonnenlicht scheinbar den Ort verändern, also so eine Art Glanzlichteffekt.


    Nur: Toll finde ich bisher diesen "Glanzeffekt" nun nicht. Es lohnt nicht dies upzuloaden.


    Ich schraube mal weiter an meinen Einstellungen im Blender rum, wahrscheinlich auch im 3DCanavas.

    Übrigens, das IGS-File vom Blender erzeugt lässt sich einwandfrei in 3DCanvas importieren.
    Es fehlt hier merkwürdigerweise dabei nur die Slot2-Belegung, die ich händisch nachgetragen habe (wieder das weisse Bild). Exportiert ....
    Das Ergebnis im RS ist identisch zum Blender-Ergebnis im RS.



    Ich melde mich wieder, falls ich etwas "Nettes" vorzeigen kann zum Thema Glanzeffekt.


    Grüsse
    Walterludwig

  • Hi Walterludwig,


    na das sind doch prima Neuigkeiten! Dann hat steampsi die Unterstützung für diese Sorte Shader auch in sein exporter tool eingebaut bevor er verschwunden ist. Seine Spur im Web verliert sich leider ab Februar diesen Jahres. Und ich hätte da noch so einige Fragen bez. seines exporter scripts...


    Mal was anderes: Hast du schon erfolgreich animierte Objekte aus Blender exportiert und in den RS importiert?


    Ich wollte endlich mal die Scheibenwischer an meine BR218 bauen ;D


    Gruß


    Henning

  • Hallo HenningBR218,


    auf deine Frage, ob ich schon mal mit dem Blender animiert habe, muss ich leider antworten "Nein" . Zu dem Thema gibt es im UKTrainsim-Forum ein Thread. Genau durchgelesen habe ich es bisher nicht.
    Ich will mir die Animation aber in naher Zukunft mal vornehmen.


    Kurz noch zu einem Detail in Verbindung mit der TrSpecEM-Shader-Verwendung, jetzt unabhängig vom Blender.


    Weil ich nichts Besseres hatte (bzw. mir erst einmal nichts Besseres einfiel) habe ich als Cube Environment-Map einfach eine weisse Fläche, matt verwendet.
    Ich bekomme dabei nicht mal annähernd den Glanzeindruck mit dem Shader wie eigentlich in der Realität vorhanden.
    Auf der Oberfläche entsteht ein schleiriges Gebilde (der Körper ist von mir schwarz eingestellt). Das könnte möglicherweise an meinem Cube Environment-Map liegen.
    Unter Cube Environment Map versteht man lt. Wikipedia einen abgewickelten Würfel (also 6 in einer Ebene ausgelegte Flächen); diese werden z.B. mit Bildchen von Gegenständen aus der direkten Umgebung des Zentralkörpers bestückt sind.


    Diese Bildchen könnten im RS möglicherweise Himmelsdarstellungen sein (nehme ich mal an). Hast du Erfahrungen mit dem Cube Environment Mapping ? Wäre an einer Info interessiert.


    Und noch eine Frage: Wie machst du bei deiner Lok die Glanzstellen; im Photoshop oder ähnlich, also pinseln ? Oder anders ?


    Nachtrag:
    Auf grossen Obeflächen ist der Glanzeffekt bei mir noch grausam schlecht, auf Röhren mit relativ geringem
    Radius (also kleineren Flächen) sieht er deutlich manierlicher aus. ::)


    Grüsse
    Walterludwig

  • Hallo HenningBR218
    @alle


    Der Austausch einer völlig weissen Map gegen eine Himmelsdarstellung (schön blau mit Sommerwölkchen drin)
    verändert mir das Erscheinungsbild durch das TrSpecEM-Shadern praktisch nicht.
    Der Wert oder auch Unwert dieser Funktion ist von mir mit diversen Fragezeichen versehen.
    Ich mache mir aber doch mal gelegentlich eine 6-flächige Map zurecht, dies bringt möglicherweise doch mehr Effekt.
    Nebenbei habe ich festgestellt, dass ich bei sehr dunklen Flächen auch den TrDiff-Effekt, den du ja verwendest, fast nicht erkenne. Er kommt aber z.B. bei mittlerem Grau sehr gut heraus.


    Mir ist gerade eine Merkwürdigkeit mit dem Blender passiert:


    Ich habe ein Objekt gelöscht und ein anderes Objekt, das schon texturiert war, mit Shift-D kopiert.
    Das ging einwandfrei. Alle Texturen sassen im Blender weiterhin an der richtigen Stelle.
    Nach dem Export waren im RS fast alle Texturen meiner Szenerie nicht mehr am alten Platz. Zyklisch vertauscht. Ich konnte mir nur noch so helfen , dass ich das mit Shift-D erzeugte Objekt wieder gelöscht habe. :P
    Dann waren im RS die Texturen wieder auf ihren alten richtigen Plätzen.
    Ist das ein bekanntes Problem vom Blender bzw. Blender-Exporter ?
    Nicht-texturierte Objekte habe ich schon öfters völlig unproblematisch verdoppelt.


    Grüsse


    Walterludwig

  • Hallo Walterludwig,


    wie schon erwähnt: Ich habe noch nicht mit Shadertypen mit mehr als einer Textur gearbeitet...


    Die finale Texturierung meiner 218 steht noch aus...


    Bez. deines kleinen Texturproblems mit den vertauschten Flächen: Ich habe bislang noch keine Probleme mit "echt" verdoppelten Objekten (Shift-D Kopie) gehabt.


    Kleiner Tipp: Um die aufgezogenen Texturen so zu sehen wie sie im später im RS erscheinen, kann man mal das Render Preview in einem der 3D Fenster aktivieren...


    Ansonsten kann man auch einmal kurz in den UV-Editor Modus gehen mit dem verdoppelten Objekt. Anschließend sind auf jeden Fall UV Koordinaten zu diesem Objekt vorhanden und gesetzt.
    Bei Problemfällen abschließend nochmal in der Render Preview kontrolieren.


    Arbeitest du eigentlich mit "double sided" Flächen (Standardeinstellung für neue Objekte)?
    Single sided (=nicht 'double sided') reicht für 90% der Objekte vollkommen aus.


    Gruß


    Henning

  • Hallo HenningBR218 !


    Das beruhigt mich ein wenig, dass wohl nicht eine Macke im Exporter dieses "Vertauschungsunglück" verursacht hat. :D
    Wahrscheinlich habe ich einen Fehler bei der Verdopplung gemacht.
    Double-sided texturiert arbeite ich nicht (mein "Projekt" ist ein stehendes Gebilde, das auch nicht betretbar ist und nicht betreten werden muss; es soll eine kleine Fähre aus meinem Heimatkreis nachahmen, die tatsächlich noch jeden Tag fährt.


    Ich rendere ständig; da war übrigens diese Vertauschung nicht zu sehen, d.h. nicht vorhanden. Deshalb mein Verdacht Richtung Exporter.


    Ich bastele mal mit dem Blender meine Sache weiter, muss aber noch viel lernen.


    Zum Glanzshader: Ich habe beschlossen nur bei relativ kleinen stark gebogenen Flächen diesen Effekt einzusetzen, da wirkt er interessant. Auf großen Flächen ist er bisher bei mir nur "unerträglich" herausgekommen.


    Ach noch vielen Dank für deine Beantwortung meiner Frage im UKTrainsim-Forum; ich wusste nicht, dass steamsi "abgetaucht" ist. Hoffentlich geht es ihm gesundheitlich gut. Der Exporter ist m.E. trotz Beta-Stadium doch eine feine Arbeit von ihm und durchaus schon so gut verwendbar.


    Herzliche Grüsse


    Walterludwig

  • Hallo HenningBR218 !


    Zum Shader TrSpecEM:


    Lt. Angaben im 3DC-Forum und Hinweis auf das RS-Dokument 6.07, Seite 26 ist die Environmentmap im RS selbst nicht notwendig, sondern wird vom Shader geliefert. Im 3DC wird allerdings für den Export ein Dummy notwendig, der eine schwarze Fläche von 64x64 pixel sein kann. Ich vermute mal, dass das auch für den Blender gilt.
    Somit erklärt dies auch meine negativ ausgegangenen Versuche mit diversen Cube Environment Maps.
    Der weisse Schleier auf meinen Modellen kommt also allein vom RS(-Shader). Man muss wohl an der Textur im Slot1 herumfeilen (Glanzeinstellung etc. ), um was optisch Akzeptables bekommen zu können.
    Naja !


    Nachtrag: Den weissen Schleier aus der Nähe betrachtet ist ein wolkenreiches Himmelsbild !


    Grüsse


    Walterludwig

  • Hi Walterludwig,


    also nach meinem Wissen kann man mit den diversen Einstellmöglichkeiten für die Texturen nur das von Blender gerenderte Bild beinflussen.
    Für den Export ins *.igs Format wird nur der Link auf das Texturbild und die UV Koordinaten genutzt.


    Bez. steampsi: ich fürchte das von ihm im Zukunft nix mehr kommt. Er war vorher _immer_ sehr aktiv im Forum. Kaum ein Tag ohne Beiträge von ihm.


    Bis sein exporter nicht mehr läuft ist nur eine (kurze) Frage der Zeit. Bereits jetzt kann man ja schon Blender-Phyton Meckermeldungen a la "Funktion xyz will not be supported in future use zyx instead" lesen.


    Ich habe mir deshalb auch schon mal die Spezifikation des IGS Formats angesehen. Evt. schreibe ich den Exporter dann nochmal neu wenn er nimmer geht... Mal sehen.


    Gruß


    Henning

  • Hallo HenningBR218 !
    @alle


    Mal ein kurzer Blick auf die Fähre Johanna (fährt bei Ginsheim /Hessen) und ihrem derzeitigen Zustand (bei mir).
    Mit dem Blender und (fast) nur mit Primitives gemacht.


    URL=http://img152.imageshack[.us/my.php?image=railsimeditor2008080518sk8.jpg][/URL]


    Grüsse


    Walterludwig

  • Hallo,


    bitte um Entschuldigung für das Bild im Lupenformat. Demnächst mehr von der Fähre (und ein besseres Bild).
    Wollte nur mal testen, ob Interesse geweckt werden kann / könnte. :D


    Grüsse


    Walterludwig

  • Hallo HenningBR218 !


    Ich habe eine Frage an den Blender-Kenner und -Könner.


    Wie macht man das im Blender :
    einen Zylinder so mit einer Textur belegen, dass diese Textur nicht auf den vielen Faces, die den Zylinder bilden, einzeln erscheint, sondern nur einmal auf dem ganzen Zylinder abgewickelt (Beispiel: Rot-weisse Streifen vorschriftsmässig auf einer Stange angebracht --> Absperrung).


    Anmerkung: mit UV-Faces und A werden bei mir alle Faces einzelnen mit Bildchen belegt, was im obigen Beispiel verkehrt ist (da von rot-weissen Streifen auf der Stange nichts zu sehen). ::)
    Was muss man da tun (A einfach weglassen scheint nicht zu funktionieren).


    Da steh ich "auf dem Schlauch" . :P
    Wäre für ein Tip sehr dankbar.



    Grüsse
    Walterludwig

  • Moin Walterludwig,


    also ich würde es (in Blender 2.46) folgendermaßen machen:


    1. Im Editmodus alle Seitenflächen des Zylinders selektieren
    2. in die seitenansicht gehen
    3. Unwrap (UKEY) Cylnder from view
    4. Im UV Image Editor Streifenbild laden und ausgewickelte (unwrapped) Flächen zurechtschieben


    Gruß


    Henning

  • Hallo HenningBr218 !


    Danke für den Tip. Werde ich ausprobieren.
    Man kann doch auch SizeX, SizeY, SizeZ für die Textur einstellen. Hast Du damit Erfahrungen (hat bei mir bei dem Zylinderfall allerdings nichts gutes bewirkt) ?
    Wie gesagt: Die Textur soll komplett auf den ganzen Zylindermantel, nicht auf den Einzelfaces des Zylinders jeweils mikroskopisch klein als Bildchen abgebildet werden; die Faces sind ja die "Atome" , die den Zylinder bilden.



    Grüsse
    Walterludwig