Jump to content

X-Files


Andy

Empfohlene Beiträge

Hallo Freunde,
kann jemand von Euch sagen, was in dieser x-Datei faul ist, sodaß MSB sie nicht haben will? Wenn es ein fehlender Texturname ist, das habe ich probiert, das hilft auch nicht.
Es muß irgendeine Syntax-Struktur sein, die der Parser von MSB nicht kennt. Aber so viel ist da doch gar nicht...
 

Cylinder1.zip

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Andy,

noch bin ich nicht der "x"-Experte. Was ich aber in deiner Datei erkenne ist, das ja gar keine Textur/kein Material dabei ist. Soweit ich weiß müsste der Körper dann im Studio weiß dargestellt werden.

Was ich aber erkenne ist folgendes: Für Blender und für SketchUp gibt es eigens für das 3D-MBS modifizierte x-Exporter - ich glaube, von Bahnland - ohne die  auch die x-Dateien dieser Programme nicht richtig im Studio erkannt werden. Wahrscheinlich gibt es darin auch modifizierte Interpretations-Befehle.

Was ich aber auf jeden Fall erkenne ist die Schreibweise. x-Dateien kann man mit dem normalen Texteditor öffnen und da sind "meine" x-Dateien fein säuberlich geschrieben, heißt: jeder Befehl in einer eigenen Zeile. Das ist bei deiner Bryce-x-Datei nicht der Fall, hier ist der gesamte Text hintereinander geschrieben. Und das kann gar nicht funktionieren, weil auch Zeilenwechsel interpretiert werden. Oder so ausgedrückt: wenn du in der Datei mit diesem Zeichen "//" den folgenden Text als Kommtnar deklarierst, also nicht interpretierbarer Befehl, dann ist eben auch der Text dahinter nur noch Kommentar. Bereits in der ersten Zeile findet man "//Exported from bryce55" auch noch mit dem nächsten Befehl "Frame" ohne Leerzeichen geschrieben also "//Exported from bryce55Frame"

Ich vermute, dass das ein Problem sein kann, wenn evtl. Zeilenwechsel nicht interpretiert werden können.

Abhilfe schafft hier vielleicht, dein Objekt aus Bryce in eine Datei zu exportieren, welche Blender oder SketchUp importieren können, also z.B. "*.obj". Um dann diese Datei in Blender oder SketchUp zu importieren und mit dem eigens für diese Programme entwickelten x-Exporter hier zu exportieren. Die Links zu den Exportern sind im Modellbau-Wiki zu finden.

Gruß
Reinhard

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke Reinhard!
Das mit den Texturen hatte ich vorher schon probiert, und auch die Zeilenenden konvertiert. Das hat beides nichts gebracht. Aber das mit dem Rein/Raus über ein anderes Format und Blender/Sketchup werde ich mal versuchen. Ich habe da beides startklar mit den Exportern, aber irgendwie mag ich beide Programme nicht. Mit dem Bryce habe ich schon bei Version 2 angefangen, den kann ich kontrollieren.

Gruß
  Andy

Bearbeitet von Andy
p.s.: Wenn ich weiß, woran es krankt, kann ich mit großer Wahrscheinlichkeit einen kleinen Konverter schreiben, sodaß auch der Bryce nutzbar ist. Kann aber auch sein, dass der unkontrollierbar große Texturen verwendet, die die 2er-Potenz-Regel verletzen.
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 15 Stunden schrieb Porrey61:

Abhilfe schafft hier vielleicht, dein Objekt aus Bryce in eine Datei zu exportieren, welche Blender oder SketchUp importieren können, also z.B. "*.obj". Um dann diese Datei in Blender oder SketchUp zu importieren und mit dem eigens für diese Programme entwickelten x-Exporter hier zu exportieren. Die Links zu den Exportern sind im Modellbau-Wiki zu finden.

Ja, dann geht's. Aber die von Blender erzeugte Datei weicht nicht sehr ab. Ich versuche nun einzelne Blöcke auszutauschen, um zu sehen, wo's wirklich dran hängt. Noch habe ich es nicht gefunden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es gibt da nur einige wenige Unterschiede, unter anderem den, dass Blender dem Material einen Namen gibt, Bryce läßt den offen. Dann hat Bryce einen Header mit vier Infos, den Blender nicht hat. Offensichtlich ist ganz am Anfang auch eine Versionsnummer, die beim Bryce älter ist. Aber das kann ich alles tauschen oder weglassen, oder was auch immer, er sagt mir, dass die Bryce-Datei keine x-Datei ist. Mal sehen, vielleicht ist Neo's Parser ja so pingelig, dass er sogar Einrückungsblanks verlangt. Ich werde es schon finden...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Andy,

was die Trennung der einzelnen Daten anbelangt, ist folgendes zu beachten:

Funktionale Trenner sind das Komma, das Semikolon, die geschweiften Klammern und das Leerzeichen (Blank). Der Zeilenvorschub wirkt wie ein Leerzeichen. Das Leerzeichen kann zusätzlich als optischer Trenner verwendet werden (z.B. für Einschübe). Dies ist aber nicht notwendig. "Überflüssige" Leerzeichen werden bei der Auswertung der x-Datei einfach ignoriert.

Die Verwendung von Komma, Semikolon und geschweiften Klammern wird durch die vorgeschriebene DirectX-Syntax genau geregelt. Hier gibt es keine Freiheitsgrade. Das Leerzeichen ist notwendig, um beispielsweise Schlüsselwörter und nachfolgende Namen zu trennen (z.B. "Material Schieferdach"). Ansonsten können Leerzeichen beliebig eingestreut werden, solange sie keine Zahlen oder Bezeichner trennen (ein Bezeichner "Kurzes Dach" ist nicht erlaubt - schreibe stattdessen z.B. "Kurzes_Dach"). Bei Dezimalzahlen ist als Dezimalzeichen der Punkt zu verwenden, da das Komma eine andere Fuktionalität besitzt.

Alles was sich in einer Zeile hinter einem Nummernzeichen (#) oder zwei Schrägstrichen (//) befindet, wird als Kommentar aufgefasst und nicht ausgewertet. Solange kein Kommentar eingefügt wird, kann "beliebig" viel in eine Zeile geschrieben werden (theoretisch der gesamte x-Datei-Inhalt). Davon ist aber abzuraten, weil hierdurch die Übersichtlichkeit verloren geht.

Umlaute und andere "Spezialzeichen" (ausgenommen die oben aufgeführten Trenner) sind in x-Dateien nicht zulässig. In Bezeichnern dürfen nur einfache Buchstaben (Groß- und Kleinschrift wird unterschieden), Ziffern und der Unterstrich (_) verwendet werden (das Minuszeichen (-) geht auch). Beginnen müssen die Bezeichner mit einem Buchstaben oder dem Unterstrich, wobei letzterer insbesondere im Modellbahn-Studio zur Kennzeichnung spezifischer Schlüssel-Objekte verwendet wird (z.B. _LS-Objekte, _Wheel-Objekte usw.).

Als Header verwende ich bei meinen x-Dateien immer "xof 0303txt 0032" (habe ich so in den Referenzbeispielen vorgefunden). Hierbei ist

xof       der Schlüsselbegriff für eine x-Datei
0303    vermutlich eine Versionsnummer
txt        ein Indikator, der besagt, dass die x-Datei als lesbare Textdatei realisiert ist
0032    vermutlich die Kennzeichung als Datei für 32-Bit-Rechner  (oder auf 32-Bit-Rechner erstellt?)
Von der Verwendung von "0064" würde ich abraten, weil ich nicht weiß, ob eine solche Datei auf 32-Bit-Rechnern akzeptiert wird.

Soweit mein Kenntnisstand zur Syntax von (Direct)X-Dateien.

Dass Du in Deinen Materialdefinitionen keinen Namen vorfindest, liegt daran, dass Bryce offenbar die Materialdefinition in das jeweilige "Mesh" mit hinein packt. Dann wird der Material-Name nicht benötigt. Ich dagegen definiere die Materialien immer separat am Anfang der x-Datei. Der Name wird dann benötigt, um später in den Meshes referentziert werden zu können. Hierdurch erübrigt sich in vielen Fällen (nämlich immer dann, wenn dassselbe Material in verschiedenen Meshes verwendet wird) die Mehrfach-Definition.

Beispiel:

Vorangestellt

Material Drehgestell {
  0.207843137254902;0.207843137254902;0.2;1.0;;
  0.0;
  0.000000;0.000000;0.000000;;
  0.000000;0.000000;0.000000;;
  TextureFilename {"Saadkms690DG.jpg";}
}

Im Mesh referenziert

   MeshMaterialList {
    1;
    6126;
    0,
         :
         :

    0,
    0;
    { Drehgestell }
   } 

 

Viele Grüße
BahnLand

Bearbeitet von BahnLand
Link zu diesem Kommentar
Auf anderen Seiten teilen

Tja, die kritischen Dinge, die Du erwähnst habe ich angepaßt, langt aber nicht. Ich versuche es jetzt mal anders herum.
Ich ersetze in der guten Datei die Dinge solange, bis er kollabiert.
"Wir werden dem Schwein schon kriegen, und wenn ihm quiekt". (Verfasser unbekannt).

Gruß
   Andy

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...