Na gut, nachdem ich mich in über 2 Jahren Forum ausgerechnet an dem Tag entschieden habe einen Thread zu eröffnen, an dem ein lückenhaftes Backup gezogen wird, hier noch ein Mal in neu und schöner. Dafür hab ich mir ein wenig von ChatGPT unter die Arme greifen lassen
(Und jetzt während der 2. Verschriftlichung das Forum wieder Offline war)... Hier also der 3. Anlauf
Bereits im alten Forum gab es die Bastelecke schon mit haufenweise angefangenen und nie zu Ende gebrachten Projekten. Nun darf auch dieses Forum davon profitieren. Allerdings ist geplant, einzelne Sachen zu veröffentlichen, wenn es dafür einen Mehrwert für die Community gibt. Lasst gerne zu allen Projekten, Punkten, Screenshots eure Gedanken, Ideen, Lob, Kritik raus ![]()
📌 Überblick: Python-Toolkit für Emergency 4 (EM4) Modelle & Prototypen
Der gezeigte Python-Code ist ein umfangreiches Utility-Modul zur Verarbeitung von Emergency-4-Assets, insbesondere:
- 3D-Modelle (.v3o)
- Prototypen (.e4p)
- Lights, Childobjects, Physics, Animations
- Skalierung, Spiegelung, Klonen ganzer Assets
🧱 Klasse em4model – V3O-Modelle
Diese Klasse repräsentiert ein EM4-3D-Modell (.v3o).
Wichtige Methoden
em4model() & .save()
- Parst die komplette .v3o-Datei
- Berechnet automatisch die Modellabmessungen
.getSize()
.scale()
- Skaliert das Modell anhand eines Skalierungsfaktors
.resize()
- Skaliert das Modell anhand konkreter Angaben (z.B. 4m, Breite, Personengröße)
.getScale()
- Erhält die gleichen Angaben, wie .resize(), gibt auf Angabe dessen den notwendigen Skalierungsfaktor an.
.drawPlan()
- (Mein Favorit
) Analog zum begonnen EM4 Model-Katalog in der Filebase, aber jetzt automatisiert
- Erstellt eine 2D-Draufsicht (PNG) des Modells
- Es können ganze Modelordner in Grundrisse umgewandelt werden. Diese sind außerdem Pixel-treu.
Bedeutet: Wenn ihr die ausgegebene .PNG-Datei auf eure zu bearbeitende Bodentextur zieht, repräsentiert sie genau den Platzbedarfs des Objekts. -
-
Models aus Fuchsburg 2.0 (Antiphon) bzw. ursprünglich Bieberfelde (?)
🧩 Klasse em4prototype – E4P-Prototypen
Methoden
em4prototype() / .save() / .saveasxml()
- Öffnen / Lesen des Prototyps
- Exportiert den Prototyp
- Speichert den Prototyp als xml Datei
.getModel()
- Lädt das zugehörige .v3o-Modell als em4model()
.scale()
- Skaliert alle relevanten Daten:
- Child-Positionen
- Physik-Geometrien
- Lichter & Lichtpolygone
.cloneAsset()
🔥 Sehr mächtige Funktion: (Hat ChatGPT in seiner Beschreibung so beschlossen :D)
- Klont einen kompletten Prototyp in einen anderen Mod
- Kopiert:
- Modelle
- Skins
- Child-Protos
- Lichttexturen
- Optional mit Skalierung
-
NEF X3 aus Dorfmod Germersheim (Fry)
Ambulance aus L.A. 2.1 (Hoppah)
NEF Vito aus Fuchsburg 2.0 (Antiphon)
.printLights()
- Gibt in der Konsole eine Kurzübersicht über die Prototyp-Lights mit ID, Licht-Typ und Position (z.B. 125, Blue Light, Front Left)
.mirrorLight()
- spiegelt ein Licht anhand einer angegebenen ID entlang der X-Achse. Handelt es sich um einen Blinker, ändert sich automatisch der Licht-Typ.
.mirrorLights()
- spiegelt alle Lichter entlang der X-Achse. Handelt es sich um einen Blinker, ändert sich automatisch der Licht-Typ.
💡 Klasse em4light – Lichter
👶 Child- & Effektklassen
⚙️ Physik-Klassen
Geplant ist es die Klassen und Methoden als Python-Library zu packen, damit diese als PIP-Paket installiert und genutzt werden kann. Eine Weiterentwicklung als GUI-Version mit EXE-Datei ist auch denkbar.