Mit Blender animierte Objekte bearbeiten

  • Häufig stößt man bei gewissem Rollmaterial auf die Situation, dass Objekte falsch animiert sind. Ein gutes Beispiel dafür ist der 440 von DTG. Der Kombihebel wurde von DTG falsch animiert. Die Animation läuft von hinten nach vorn, obwohl sie eigentlich von vorne nach hinten laufen sollte. In diesem Tutorial möchte ich erklären, wie man solche fehlerhaften Animationen korrigiert.
    Zunächst einmal Grundsätzliches
    Ein Führerstand ist letztlich nur ein eigenes Modell, das in einem sog. GeoPcDx-Format (Dateiendung) abgespeichert wird. Meistens findet man die Datei unter dem Pfad (RailVehicle oder Engine)/Cab. Die Datei ist eigentlich nicht zu übersehen, denn sie ist zumeist die größte Datei. Es ist davon auszugehen, dass bei komplexerem Rollmaterial zwei unterschiedliche Führerstände vorhanden sind, da auch in der Realität häufig Unterschiede zwischen dem einen und dem anderen Führerstand bestehen, sei es nun in einer Lokomotive oder in einem Triebwagenzug. Ein Beispiel wäre der TSG 425, auch hier gibt es im Ordner Cab zwei unterschiedliche Führerstands-GeoPcDx-Dateien.

    Was macht diese Datei?
    Die Datei beinhaltet sämtliche Koordinaten, die jeder einzelne Punkt des Führerstands hat. So ein Führerstand wurde ja in einem 3D-Modellierungsprogramm erstellt. Hier wird mit xyz-Koordinaten gearbeitet, um letzten Endes so ein Führerstandsobjekt zu kreieren. Somit finden sich in dieser Datei einmal Informationen über die Koordinaten (xyz-Achse) jedes Objekts im Führerstand, aber auch Informationen über Texturen und dem Material.

    Was hat diese Datei mit Animationen zutun?
    Das ist sehr simpel: Die Datei stellt also mithilfe von Koordinaten ein Objekt dar. Wurde dieses Objekt nun auch in dem 3D-Modellierungsprogramm gesondert benannt, so ist dieser Name auch in der GeoPcDx-Datei zu finden. Und hier setzen wir an. Solche Dateien kann man grundsätzlich mit RW_Tools öffnen.
    Show Spoiler
    <TransformName>
    <e d:type="cDeltaString">primaryd</e>
    <e d:type="cDeltaString">bo02</e>
    <e d:type="cDeltaString">bo01</e>
    <e d:type="cDeltaString">door02_r</e>
    <e d:type="cDeltaString">door01_r</e>
    <e d:type="cDeltaString">door02_l</e>
    <e d:type="cDeltaString">door01_l</e>
    <e d:type="cDeltaString">lights_revtail</e>
    <e d:type="cDeltaString">Asteuerwagen</e>
    <e d:type="cDeltaString">lights_fwdhead</e>
    <e d:type="cDeltaString">lights_whitefrontfern</e>
    <e d:type="cDeltaString">bo01wh02</e>
    <e d:type="cDeltaString">bo01wh01</e>
    <e d:type="cDeltaString">bo02wh02</e>
    <e d:type="cDeltaString">bo02wh01</e>
    <e d:type="cDeltaString">scheibenw_part01</e>
    <e d:type="cDeltaString">scheibenw_part02</e>
    <e d:type="cDeltaString">scheibenw_part03</e>
    <e d:type="cDeltaString">scheibenw_part04</e>
    <e d:type="cDeltaString">1000</e>
    <e d:type="cDeltaString">1001</e>
    <e d:type="cDeltaString">1002</e>
    <e d:type="cDeltaString">1003</e>
    <e d:type="cDeltaString">1004</e>
    <e d:type="cDeltaString">1005</e>
    <e d:type="cDeltaString">1006</e>
    <e d:type="cDeltaString">1007</e>
    <e d:type="cDeltaString">1008</e>
    <e d:type="cDeltaString">1009</e>
    <e d:type="cDeltaString">1010</e>
    <e d:type="cDeltaString">1011</e>
    <e d:type="cDeltaString">1012</e>
    <e d:type="cDeltaString">1013</e>
    <e d:type="cDeltaString">1014</e>
    <e d:type="cDeltaString">1015</e>
    <e d:type="cDeltaString">1016</e>
    <e d:type="cDeltaString">1017</e>
    <e d:type="cDeltaString">1018</e>
    <e d:type="cDeltaString">1019</e>
    <e d:type="cDeltaString">1020</e>
    <e d:type="cDeltaString">1021</e>
    <e d:type="cDeltaString">1022</e>
    <e d:type="cDeltaString">1023</e>
    <e d:type="cDeltaString">1024</e>
    <e d:type="cDeltaString">1025</e>
    <e d:type="cDeltaString">1026</e>
    <e d:type="cDeltaString">1027</e>
    <e d:type="cDeltaString">1028</e>
    <e d:type="cDeltaString">1029</e>
    <e d:type="cDeltaString">1030</e>
    <e d:type="cDeltaString">Asteuerwagendetail</e>
    </TransformName>


    Ungefähr in der Mitte der GeoPcDx-Datei findet man diesen xml-Code. Hier sind alle Objekte aufgeführt, die einen gesonderten Namen erhalten haben. Hiermit sind also grundsätzlich Animationen möglich. Man suche sich hier jetzt einmal die Nummer heraus, die das gesuchte Objekt hat. Dazu zählt man von oben und fängt mit 0 an. "primaryd" wäre also 0, "bo02" wäre 1, usw. Die Nummer, die euer zu animierendes Objekt oder euer zu korrigierendes animiertes Objekt hat, merkt ihr euch nun. Nächster Schritt:

    Show Spoiler
    <SourceLToPTransform>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000002 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 -0.0000002 0.0000000 1.0000000 0.0000000 -0.0000003 0.7422576 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 -0.0000002 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000002 0.0000000 1.0000000 0.0000000 -0.0000115 0.5176392 -10.1172438 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000114 0.5264206 10.1940832 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000002 0.0000000 0.0000000 -0.0000002 1.0000000 0.0000000 -0.0000000 2.0099983 13.2612562 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000002 0.0000000 0.0000000 -0.0000002 1.0000000 0.0000000 0.0000001 2.9829979 12.6677513 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 -0.0000000 2.0657730 13.2712641 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000006 0.4184532 8.8033257 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000005 0.4184532 11.2441254 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 -0.0000002 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000002 0.0000000 1.0000000 0.0000000 -0.0000005 0.4184532 -11.2441273 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 -0.0000002 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000002 0.0000000 1.0000000 0.0000000 -0.0000006 0.4184532 -8.8033276 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 -0.0297413 2.1815987 13.4050007 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0667000 0.0151305 0.0305576 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.9999790 -0.0064851 0.0000000 0.0000000 0.0064851 0.9999790 0.0000000 -0.5192969 0.7087693 -0.3575420 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000291 0.0151305 0.0305576 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000</e>
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0001880 2.9279423 12.5526628 1.0000000</e>
    </SourceLToPTransform>


    Etwas darüber findet man diesen Code. Und das ist das Herzstück. Das gibt jedem Objekt seine Koordinaten. Es handelt sich um sog. 4x4 Matrizen. Einfach mal danach googlen "Railworks Matrix".
    Habt ihr noch die Nummer von eurem Objekt im Kopf? Die findet hier wieder Anwendung. Wieder von oben herunterzählen, wobei die erste Zeile "<e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000002 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 -0.0000002 0.0000000 1.0000000 0.0000000 -0.0000003 0.7422576 0.0000000 1.0000000</e>" die 0 ist (wie eben auch). Zählt genau ohne zu verrutschen, bis ihr bei der Nummer eures Objekts angekommen seid. Jetzt habt ihr die Koordinaten-Matrix, die euer Objekt hat und die ist jetzt für Blender sehr wichtig. Es interessieren uns in dem Konstrukt nur die 13, 14, 15 Spalte. Das sind unsere x, z und y Koordinaten.

    Bei ...
    Show Spoiler
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0001880 2.9279423 12.5526628 1.0000000</e>

    ... wären die 13, 14 und 15 Spalte die Zahlen x=0.0001880, z=2.9279423, y=12.5526628,

    bei ...
    Show Spoiler
    <e d:numElements="16" d:elementType="sFloat32" d:precision="string">1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.9999790 -0.0064851 0.0000000 0.0000000 0.0064851 0.9999790 0.0000000 -0.5192969 0.7087693 -0.3575420 1.0000000</e>

    ... wären die 13, 14 und 15 Spalte die Zahlen x=-0.5192969, y=0.7087693, z=-0.3575420.

    Ganz wichtig ist noch zu wissen, dass im Train Simulator die Achsen etwas anders sind. Während die z-Achse in Blender die Höhe angibt, gibt sie im Train-Simulator die Verschiebung von vorne nach hinten an.

    Nun geht es auf nach Blender (3D-Modellierungsprogramm)
    Verwendet den Quader, der sowieso schon da ist, wenn man das Programm öffnet. Stellt die Koordinaten so ein, wie oben beschrieben.
    x-Koordinate = x-Koordinate
    y-Koordinate = z-Koordinate (!)
    z-Koordinate = y-Koordinate (!)

    Jetzt wisst ihr, welche exakt genaue Position euer Objekt im Führerstand hat und habt euer Blender-Objekt auch exakt genau darauf ausgerichtet. Was ist nun die logische Schlussfolgerung? Man kann jetzt eine Animation erstellen. Schaut euch hierzu bitte ein Youtube-Tutorial an, falls ihr euch mit Blender nicht auskennt. Im Falle des Kombihebels der BR440 von DTG sorgt ihr einfach dafür, dass sich die Animation um die x-Achse in richtiger Richtung dreht, also von + nach -.

    Exportieren und Konvertieren in das ban-Format
    Der nächste Schritt ist, dass man die Animation in eine *.ia-Datei exportiert. Schaut auch hier bitte im Internet nach, wie man den Exporter von dieser Seite railsim-fr.com/forum/index.php…_ts2013_exporter_v148zip/ in Blender implementiert. Ihr MÜSST übrigens die Blender Version 2.79b verwenden, zu finden hier download.blender.org/release/Blender2.79/ Außerdem muss man beim Exportieren in das ia-Format noch einige andere Dinge beachten. Es müssen beim Exportieren in den zu exportierenden Ordner folgende Textdateien vorhanden sein (diese drei Dateien sind übrigens im Download des TS-Exporters (railsim-fr.com/forum/index.php…_ts2013_exporter_v148zip/) mit enthalten): IGSExpModFile2.txt, IGS_ExpModFile.txt, IAExpModFile2.txt. Diese Textdateien definieren den Objektnamen und diverse andere Dinge. Ihr müsst konkret auch in der Datei "IGSExpModFile2.txt" euer MainObject definieren.
    Habt ihr die Datei fehlerfrei exportiert, so geht in das Railworks-Verzeichnis und erstellt dort einen Source-Ordner. In diesem Soure-Ordner erstellt ihr wiederum einen Unterordner (beliebig benannt). Auch in diesem Ordner erstellt ihr einen Unterordner. Und genau hier fügt ihr die erstellte *.ia-Datei ein. Jetzt öffnet ihr den BluePrintEditor2.exe, den man im Railworks-Verzeichnis findet. Dort wird euch auch der Source-Ordner samt Unterordner aufgelistet werden. Sucht nun eure *.ia-Datei, macht dort einen Rechtsklick drauf und klickt auf "Export This Only". Sollte es keine Fehler in der Datei geben, findet ihr unter folgendem Pfad eure *.ban-Datei: Railworks/Assets/NameDesErstenUnterordners/NameDesZweitenUnterordners. Diese ban-Datei benennt ihr nun um. Und zwar muss sie ja jetzt die alte ban-Datei, die eine fehlerhafte Animation hat, ersetzen, weshalb sie ja nun den Namen der zu ersetzenden Datei erhalten muss.
    Nun öffnet ihr den Train-Simulator und schaut, ob die Animation soweit richtig ist. Passt alles? Falls nicht, geht ihr nochmal in Blender zurück und passt die x-Achsen-Rotation und die dazugehörige Animation so lange an, bis ihr zufrieden seid.

    Unter diesem Link könnt ihr einmal den Soure-Ordner downloaden. Alles, was ihr machen müsst ist, Blender einzurichten.

    Ich beantworte euch diesbezüglich gerne jegliche Fragen, schreibt mir gerne eine PN oder hinterlasst einen Kommentar!

    926 times viewed