Seite 8 von 8

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 09.11.2023 16:22:56
von Leonard K.
Sollte in der Version 2.0.22 der UV-Import funktionieren? Bei mir fehlen die Texturkoordinaten, wenn ich eine beliebige ls3-Datei in Blender importiere.

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 09.11.2023 17:17:22
von Johannes
Nein, das ist noch nicht implementiert.

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 09.11.2023 17:27:12
von Leonard K.
Ok, hatte mich nur gewundert, weil es dazu schon einen Commit gab: https://github.com/zusitools/blender_ls ... 4132e91eab

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 14.11.2023 20:44:23
von Johannes
Wer das heute erschienene Blender 4.0 verwenden will, muss das Add-on auf Version 2.0.23 aktualisieren.

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 21.11.2023 10:52:14
von Christian Gründler
Hallo Johannes,

eine Frage zum Exporter für Blender < 2.80 (für >=2,80 ist das vermutlich nicht anders):

Es scheint nicht möglich zu sein, in zusiconfig.py die Lizenz einzustellen. In zusiconfig.py.default ist nichts vorgesehen, und experimentieren nach (oberflächlichem) Blick in den Programmcode hat nichts gebracht.

Ist das tatsächlich so, oder habe ich etwas übersehen?

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 21.11.2023 11:49:31
von Johannes
Die Lizenz der LS3-Datei kannst du in den Szeneneigenschaften setzen:

Bild

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 21.11.2023 12:25:43
von Christian Gründler
Johannes hat geschrieben: 21.11.2023 11:49:31 Die Lizenz der LS3-Datei kannst du in den Szeneneigenschaften setzen:
Weiß ich ja. Aber wenn jemand immer eine Lizenz ungleich 0 verwendet, wäre es praktisch, wenn man dies genau wie Bastlernummer und -name in zusiconfig.py eintrgen könnte.

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 17.02.2024 15:48:46
von Maurice S.
Servus,

ich habe ein Problem mit der Texturpfad-Findung auf meinem neuen System. Vermutlich liegt es daran, dass ich die Steam-Version von Zusi zuerst auf einer anderen Festplatte installiert hatte, dann aber nochmal auf eine andere neu installiert habe und jetzt irgendwelche Werte der Registry falsch sind.

Zusi, Blender und die .blend-Dateien befinden sich auch alle auf der gleichen Festplatte ("C" in diesem Fall) wie es die Doku vorgibt.

Hier mal ein Beispiel:

.blend-Datei: "C:\Users\Public\Documents\BlenderZusi\PermanentWay\France\1435mm\Appareils_de_voie_unifies\Traversee_Oblique\0222"
Zusi-Exportpfad: "C:\Users\Public\Documents\Zusi3Steam\PermanentWay\France\1435mm\Appareils_de_voie_unifies\Traversee_Oblique\0222"

Zusipfad offiziell: "C:\Program Files (x86)\Steam\steamapps\common\ZUSI 3 - Aerosoft Edition"
Zusipfad privat: "C:\Users\Public\Documents\Zusi3Steam"

Texturpfad in der ls3: "..\..\..\Program Files (x86)\Steam\steamapps\common\ZUSI 3 - Aerosoft Edition\_ZusiData\PermanentWay\Deutschland\1435mm\Regeloberbau\Weichen\Texturen\Weiche_Holzschwellen_K-Oberbau.dds"
--> Zusi beschwert sich da natürlich, weil dieser Pfad falsch ist.

Noch ein paar andere Eckdaten:
Blender-Version 3.0.1 (andere wurden auch getestet und funktionieren auch nicht)
Windows 11 Pro

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 17.02.2024 21:22:15
von Gorgi [Vale]
Nabend,
ich hänge mich mal hier dran,
bei mir ist es das selbe mit den Pfaden, allerdings baue ich mir die Pfade im Nachhinein immer zurecht.
Allerdings klappt es mit dem Pfad wenn die Datei im selben Ordner ist. Sonst nicht, es spielt auch keine Rolle wo das Arbeitsverzeichnis ist und ob es in diesem gespeichert wird.

Win 11 Home als Betriebssystem.

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 17.02.2024 22:41:17
von Johannes
Ich habe beim Drüberschauen einen Bug im Registry-Code gesehen und behoben. Keine Ahnung, ob das das Problem löst, aber probiert mal bitte die aktuelle Version 2.0.24 aus. Sonst müssen wir weiterschauen.

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 18.02.2024 15:23:37
von Maurice S.
Bei mir hat sich nichts geändert.

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 19.02.2024 19:32:29
von Johannes
Liegt an der Steam-Version. Workaround: Einmal die Zusi-Dateiverwaltung als Administrator starten, das Fenster "Generelle Zusi-Einstellungen" aufrufen und "OK" drücken.

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 11.04.2024 09:32:03
von Johannes
Version 2.0.25 ist mit Blender 4.1 kompatibel.

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 29.04.2024 21:51:21
von Maurice S.
Ich brauche einen Ratschlag zu folgender Situation, da sowas glaube ich derzeit nicht möglich ist:

Ein Skript konfiguriert ein Objekt, in welchem Ankerpunkte vorhanden sind. Ich will nun das Objekt als lod1/2/... (welches die Ankerpunkte nicht enthält) exportieren und gleichzeitig ein Mutter-Lod haben, in welchem die Lod1/2/... und Ankerpunkte verknüpft sind.

Da ich das ganze Massenhaft machen will und sich die Position der Ankerpunkte in jedem Objekt unterscheidet, ebenso wie der Name des Objekts.

Dem ganzen liegt sowieso schon ein Skript zu Grunde, weshalb eigentlich nur eine Funktion des Exporters für die Erstellung dieser Mutter-Lod nötig wäre, der man ein Verzeichnis, einen Objektnamen, die Lod-Nummern (welche man idealerweise mit den Varianten verbinden kann).

Beispielsweise so: funktionsname(pfad, name = "objektname", lod = [1, 2]) und man bekommt dann diese Dateien:

objektname.lod --- enthält Verknüpfungen zu .lod1/2 und Ankerpunkte
objektname.lod1 --- Mesh Lod1
objektname.lod2 --- Mesh Lod2

Über die Lod-Distanzen müsste man sich noch Gedanken machen.

Ich hoffe es wird verständlich was ich will, vielleicht ließe ich das implementieren oder wir finden eine andere praktikablere Lösung.

Grüße
Maurice

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 30.04.2024 06:31:32
von Johannes
Ein <Verknuepfte>-Tag in der exportierten LS3 erzeugt man durch ein Empty, das das Kästchen "Verknüpfte Datei" angekreuzt hat. Dort kann man auch LOD-Entfernungen etc. einstellen.

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 30.04.2024 16:23:36
von Maurice S.
Johannes hat geschrieben: 30.04.2024 06:31:32 Ein <Verknuepfte>-Tag in der exportierten LS3 erzeugt man durch ein Empty, das das Kästchen "Verknüpfte Datei" angekreuzt hat. Dort kann man auch LOD-Entfernungen etc. einstellen.
Ja, das ist schön und mir auch bewusst. Allerdings bringt mir das nichts, wenn ich die Mutter.lod exportiere, weil ich per Skript die zu verknüpfende Datei nicht definieren kann und diese bei jedem Export individuell festgelegt werden müsste, was ich mir ja ersparen möchte. Des Weiteren habe ich ein Subset in der Mutter.lod was dort auch nichts zu suchen hat.

Alternativ ist mir noch gekommen, dass man den Subset-Export unterdrückt (oder eine Option "nur Ankerpunkte" exportieren einbaut) und die verknüpfte Datei definieren kann per Skript.

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 30.04.2024 17:25:49
von Johannes
Maurice S. hat geschrieben: 30.04.2024 16:23:36weil ich per Skript die zu verknüpfende Datei nicht definieren kann und diese bei jedem Export individuell festgelegt werden müsste, was ich mir ja ersparen möchte.
Wenn du eh per Skript unterwegs bist:

Code: Alles auswählen

bpy.data.objects["MeinSchönesEmpty"].zusi_link_file_name_realpath = "..."
(Tipp: Rechtsklick + "Copy Full Data Path" sagt zu jedem UI-Element, wie man es in Python anspricht.)
Maurice S. hat geschrieben: 30.04.2024 16:23:36Weiteren habe ich ein Subset in der Mutter.lod was dort auch nichts zu suchen hat.
Man könnte z.B. den Exportmodus "Nur ausgewählte Objekte" verwenden und nur die Empties auswählen:

Code: Alles auswählen

with bpy.context.temp_override(selected_objects=[bpy.data.objects["MeinSchönesEmpty"], …]):
    bpy.ops.export_scene.ls3(…)

Re: LS3-Export und LS-/LS3-Import für Blender

Verfasst: 30.04.2024 19:16:41
von Maurice S.
Vielen Dank! Das hier funktioniert soweit:

Code: Alles auswählen

def export():
    directory = create_path()
    filename = create_name()

    bpy.data.collections["lod"].hide_viewport = True

    # deactivate all anchor points in 'anchor points' collection, otherwise they end up in lod1.ls3
    for collection in bpy.data.collections:
        for sub_collection in collection.children_recursive:
            if sub_collection.name == "Anchor Points":
                for obj in sub_collection.all_objects:
                    bpy.data.objects[obj.name].zusi_is_anchor_point = False

    # export lod1 first, otherwise the path in parent will not be correct
    bpy.ops.export_scene.ls3(
        filepath = os.path.join(directory, filename + ".lod1.ls3"),
        filename = filename + ".lod1.ls3",
        directory = directory,
        exportSelected = "4",
        )

    bpy.data.collections["lod"].hide_viewport = False

    # activate anchor points again
    for collection in bpy.data.collections:
        for sub_collection in collection.children_recursive:
            if sub_collection.name == "Anchor Points":
                for obj in sub_collection.all_objects:
                    bpy.data.objects[obj.name].zusi_is_anchor_point = True

    # set path for linked object in parent.lod
    bpy.data.objects["#_Main"].zusi_link_file_name_realpath = os.path.join(directory, filename + ".lod1.ls3")

    with bpy.context.temp_override(selected_objects = [bpy.data.objects["#_Main"]]):
        bpy.ops.export_scene.ls3(
            filepath = os.path.join(directory, filename + ".lod.ls3"),
            filename = filename + ".lod.ls3",
            directory = directory,
            writeLsb = False,
            exportSelected = "1",
            )
Der Ankerpunkt "#_Main" liegt in einer Collection "lod". In dieser Collection ist dann wiederum eine weitere Collection "Anchor Points" mit den gewünschten Ankerpunkten.