Jump to content

Achsanpassung beim x-File-Import


Andy

Empfohlene Beiträge

Hi,

beim Import von x-Dateien gibt es ja die Achsanpassung +/- x/y/z.

x und y sehen gut aus, aber z wirkt sehr merkwürdig, das sind keine 90°. Die Rotationen sind offensichtlich auch nicht verkettbar.
Ich weiß, dass die Modelle x-orientiert sein sollten, was aber, wenn man gerne andere bereits existierende (extern) x-Dateien einbinden möchte?
Blender-export mag mit dem hier vorhandenem Tool wohl gehen, aber es gibt da absolut nichts Befriedigendes auf der Importseite.

So habe ich da jetzt etliche feine Dinge, die alle auf der Nase stehen - also vom Origin aufwärts.
Bei einigen läßt sich mit dem Einfügen folgender Matrix an einer geeigneten Stelle im x-File Abhilfe schaffen:

   FrameTransformMatrix {
    -1.000000,0.000000,0.000000,0.000000,
    0.000000,0.000000,1.000000,0.000000,
    0.000000,1.000000,0.000000,0.000000,
    1.000000,1.000000,1.000000,1.000000;;
   }

  Ggf. nochmal -y einstellen. So bleibt auch die Textur korrekt.  

...aber, mit dem kompletten Verständnis des Aufbaus eines x-Files hapert's bei mir noch. Ist ja wohl eine Scriptsprache mit einigen Möglichkeiten...
Die Maßstabsanpassung fällt dann sowieso in das Kapitel Spekulation und Try&Error. Interessant ist dann, dass bei einigen Modellen eine nachträgliche Skalierung in MSB möglich ist, bei anderen nicht.

Und noch was ist mir aufgefallen:
Ich habe jetzt ein Modell als Lok reingeholt, auf die Schiene gesetzt und gestartet. Wenn ich jetzt diese Lok im Modelleditor nochmal behandle, fährt sie dort glatt aus dem Bild und das ganze Modell wird angeknabbert :D (okay, das muß wohl nicht gefixt werden, das macht sonst kein Mensch, und wenn, geschieht's ihm recht ;) .)

Summary: habe ich mit der z-Achse einen Bug gefunden? Gibt es einfachere Möglichkeiten der Anpassung der x-Files? Gibt es einen vernünftigen Blender-x-file Importer? (nicht den von 'littleneo', der ist imkomplett und kann vieles nicht laden)

Und wenn wir gerade dabei sind: gibt es Möglichkeiten die freie Kamera über Tasten auch hoch/runter zu fahren? Sehr oft verfährt man sich in Situationen, wo dies wirklich nötig wäre. Und (*zieht schon den Kopf ein*) dann wäre da noch der Wunsch, im Vollbild ins Cockpit einer Lok zu wechseln, und wieder raus.

Das war's dann für's erste :D Vielen Dank für alles, was ein wenig weiterhilft

Andy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Andy,

die Einstellung "+/-x, +/-y, +/-z" beim Hochladen einer x-Datei als Fahrzeug in das Modellbahn-Studio bestimmt dessen Ausrichtung entlang einer der 3 Koordinatenachsen. Den Begriff "Achsanpassung" habe ich in diesem Zusammenhang noch nicht gehört/gelesen. Normalerweise wird man sein Fahrzeug in der Horizontale gebaut haben, sodass mir eigentlich nur die Auswahlmöglichkeiten "+/-x" und "+/-y" als sinnvoll erscheinen (schließlich soll das Fahrzeug nicht senkrecht nach oben fahren :P). Ich hab's jetzt spaßeshalber mal ausprobiert, die Ausrichtung "+/-z" einzustellen, und habe ebenfalls den Effekt festgestellt, dass dies tatsächlich keine exakte Ausrichtung nach oben/unten ist. Aber das hat mich bis jetzt eigentlich auch nicht interessiert, weil es meine Modelle nicht tangiert.

Was mich nun schon etwas überrascht, ist Deine Aussage, Dass Du (von irgendwo her) x-Dateien besitzt, bei denen die Fahrzeug-Modelle auf den Puffern/Kupplungen stehen, also senkrecht nach oben/unten ausgerichtet sind. Das finde ich schon etwas "eigenartig".

Wenn Du nun an den Koordinaten der FrameTransformMatrix drehst, befindest Du Dich schon an der richtiigen Stelle. Denn mit dieser Matrix werden alle "Koordinaten-Vektoren" des Modells multipliziert, um in die richtige Ausrichtung gedreht und an die richtige Position "bugsiert" zu werden. Bei der Interpretation der FrameTransformMatrix ist folgendes zu beachten:

   FrameTransformMatrix {
    1.000000,  0.000000,  0.000000,  0.000000,
    0.000000,  1.000000,  0.000000,  0.000000,
    0.000000,  0.000000,  1.000000,  0.000000,
    0.000000,  0.000000,  0.000000,  1.000000;;
   }

Die Matrix mit Einsen nur in der Diagonalen ist die neutrale Matrix. Diese bewirkt weder eine Drehung noch eine Verschiebung. Der rote Teil der FrameTransformMatrix ist der Rotations- und Skalierungsteil der Matrix. Dies bedeutet, dass ein (x,y,z)-Koordinatenpunkt durch diesen Teil um den Koordinaten-Ursprung (0,0,0) gedreht und gegenbenenfalls gleichzeitig gestreckt oder gestaucht wird. Der blaue Teil dient der Verschiebung des Koordinatenpunkts. Hierbei ist allerdings zu beachten, dass die Koordinaten hier nach dem "amerikanischen" System angordnet sind, also die Reihenfolge der Anordnung (x, z, y) ist.

Wendet man nun die im vorausgehenden Beitrag dargestellte FrameTransFormMatrix auf den (Zeilen-)Vektor (x, z, y, 1) an, bekommt man folgendes Ergebnis:

                     [ -1  0  0  0 ]
                     [  0  0  1  0 ]
(x, z, y, 1)  *  [  0  1  0  0 ]  =  (-x+1, y+1, z+1, 1)
                     [  1  1  1  1 ]

Für die Berechnung des Ergebnis-Vektors wird jede Spalte der Matrix in der Mitte über den links angeordneten Ausgangsvektor gelegt. die übereinander liegenden Werte werden miteinander multipliziert und dann aufaddiert. Der Ergebniswert wird im Ergebisvektor rechts an die Position jener Matrix-Spalte gesetzt, mit der dieser Wert berechnet wurde (allgemeine Vektor-Matrix-Multiplikation). Die verwendete Transformationsmatrix bewirkt also, dass die x-Koordinate des Ausgangsvektors negiert (Spiegelung entlang der x-Achse) und die y- und z-Koordinate vertauscht werden (Spiegelung an der Diagonale zwischen y- und z-Achse). Anschließend wird der neue Koordinatenpunkt noch um 1 cm (cm ist die Einheit in der x-Datei) in allen 3 Achsen-Richtungen verschoben. Dies geschieht mit allen Koordinatenpunkten des Modells, sodass man diese Transformation als Spiegelung des Modells entlang der x-Achse und in der y-z-Ebene an der y-z-Diagonale mit anschließender Verschiebung um jeweils 1 cm in x+y+z-Richtung deuten kann.

Normalerweise sollte man von einer händischen Manipulation der FrameTransformMatrix die Finger lassen. Denn besonders bei von +/-1 verschiedenen Zahlen im Rotationsteil der FrameTransformMatrix kann die dadurch erzeugte Transformation nicht mehr "so einfach" abgeleitet und nachvollzogen werden.

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Bahnland,

vielen Dank für die lange Antwort.
Das mit der Verschiebung wundert mich auch ein wenig, paßt aber - oder wirkt sich nicht auffällig auf. In Ermangelung eines ordentlich Importers für Blender muß ich den Schritt umgehen, und schauen, dass das MBS die Dateien so frißt. Besagte Lok steht hiernach zwar immer noch verkehrt herum, aber wenigstens auf der x-Achse - und dann hilft das -y weiter. Mache ich die Transformationsmatrix gleich korrekt, spielen die Texturen nicht mit. Wie gesagt, in den .x-Dateien ist viel möglich, und mein Workaround wird nicht überall helfen. Immerhin habe ich jetzt mal eine ordentliche Syntaxbeschreibung der x-files gefunden. Vielleicht kann ich mir damit selbst was basteln - was Mathe und Informatik angeht, da mach' Dir mal keine Sorgen um mich. Ist ja bekannt, dass alternde Mathematiker wieder anfangen mit Bauklötzen zu spielen - und die Krankheit hat mich erst Anfang Dezember erwischt. Deshalb bin ich auch *noch* kein Modellbauer. ;)

So, warum sind es so viele Dateien und alle so verquert? Suche mal nach dem Begriff RTR. Aus dieser Community haben auch ein paar Leute ihren Weg hier her gefunden, wie ich schon festgestellt habe. Jenes Programm und seine modellbauende Community ist von seinem Schöpfer verlassen worden, weiß der Kuckuck warum. Ein paar wenige Nimmermüde sind immer noch aktiv, aber die Unterschiede in der Leistungsfähigkeit der Engine sind schon immens, (das letzte Upgrade von RTR war wohl um 2010) und hier ist man aktuell. Insofern fürchte ich nicht, dass NEO was dagegen hat, wenn wir hier drüber schreiben.. Hier muß ich eher fürchten, dass meine Rechner für eine nächste Version nicht mehr ausreichen. Mein Notebook kann nur 1024x600 und hat keinen Shader 3.0 - da macht MBS schon mal nicht mehr mit, obwohl ich beim Basteln unterwegs keine Partikel brauchen würde, solang's zuhause nur gut aussieht.

Das Hauptproblem sind nun die 'Lizenzen' der Originalautoren der Modelle, die es mir vielleicht verbieten, sie hier im Online-Katalog zur Verfügung zu stellen, auch wenn sie hier nur von Nonprofit-Member genutzt werden würden. Wenn sie aber aus veröffentlichten Anlagen nicht exportiert werden können, dürfte ich sie so nutzen. Einige der hier vorhandenen Modelle kommen mir sowieso sehr bekannt vor. Ich werde mal in jenem Forum fragen, was die Autoren so darüber denken..

Ich hoffe, das hat nun einiges erklärt. Meine Motivation liegt übrigens hier: http://www.modelleisenbahnlehrschau.de/
Hat lange gedauert sie wiederzufinden. Die hat an unserem Bahnhof gestanden, als ich zehn Jahre alt war. Hat mich begeistert, dass es sie noch gibt, aber es tut mir in der Seele weh, wenn ich lese, dass ihre Zukunft sehr gefährdet ist. Deshalb würde ich sie hier gerne 'verewigen', wie auch die guten alten Fallerhäuschen ,. Auf 'Teufelkommraus' ;)

Gruß
  Andy

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nach etlichen Recherchen bin ich auf Lithwrap gestossen (Dort das Wort 'download' selbst anklicken, nicht den Servernamen).
Ein uraltes Tool, was eher für UV-Geschichten gedacht war.

Handling:
  Man lädt 'Model', clickt 'Select All', dann auf 'Preview': Mit der Maus rechts im Preview-Fenster clicken und Rotate aussuchen -  90/0/180 tut's.
Nun aber noch die Texturnamen kontrollieren. Es könnte sein, dass er da ein 'Blank' hinzugefügt hat, was er in Ermangelung einer Fileangabe wählen mußte.
Dann wieder Model -> Save.

Ein schwarze 256x256-Textur Blank.dds wird da benötigt. Ich habe mal eine angehängt.
ACHTUNG: Die Extension muß in .dds geändert werden. da hier die Extension beim Upload nicht unterstützt wird, also nicht doppelclicken, sondern rechts clicken und speichern unter...!!!
Ich weiß zwar noch nicht, inwieweit er gut in andere Formate konvertiert, und ob er mit allen .x-files zurechtkommt (insbesondere mit Animationen),
aber für's Erste reicht mir das.

blank.zip

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...