Sie gab es schon im alten Forum mit haufenweise unbeendeten Projekten, jetzt gibt es sie auch hier mit angefangenen Sachen. Was soll ich sagen, ich liebe einfach den Begriff "Proof of Concept" ![]()
Hier wird es von Zeit zu Zeit Neuigkeiten geben, an was ich so bastel. Ich versuche dabei, wenn Mehrwert gegeben, die Sachen dann auch zu veröffentlichen. Schreibt gerne eure Gedanken, ob Lob, Kritik, Ideen oder Ergänzungen einfach dazu ![]()
Python-Library für verschiedene EM4-Formate
Es handelt sich um eine Import-Möglichkeit von verschiedenen Formaten in Python sowie die dazugehörige Konvertierung in Pythonobjekte. Mithilfe verschiedener Methoden können dann am jeweiligen Objekt Veränderungen vorgenommen werden. Ziel ist es bestimmte Prozesse, die im EM4-Editor zu lange dauern oder zu umständlich sind zu vereinfachen sowie nützliche Zusatzfunktionen einzubinden.
Aktuell existieren Klassen für v3o Models (em4model()) und e4p Prototypen (em4prototype()), wobei auch die Einzelelemente von Prototypen eigene Klassen besitzen (z.B. Lights, Childs etc.).
Die Methoden für Prototypen:
- ()/save() -> Prototypen können geöffnet und gespeichert werden
- saveasxml() -> Prototyp kann als XML Datei gespeichert werden
- getModel() -> Das im Prototyp verlinkte Modell wird als em4model() geladen.
- scale() -> Prototyp wird mit einem Skalierungsfaktor skaliert (Betrifft nur den Prototypen, nicht die Modelle)
- mirrorLight()/mirrorLights() -> Es kann ein einzelnes Light mit Angabe der ID gespiegelt werden oder alle Lights gleichzeitig. Handelt es sich um Blinker wird dazu automatisch die andere Seite als Light Type angegeben. Somit wäre es möglich bei Fahrzeugen immer die eine Fahrzeugseite zu lighten und sie dann auf die andere Seite zu spiegeln.
- printLights() -> Printet eine Kurzübersicht über die Lights mit ID, Lichttyp und Position (z.B. vorne rechts)
- cloneAsset() -> Der Prototyp inkl. aller verlinkten Child-Prototypen/Modelle/Skins und Lightmaps werden in einen anderen ausgewählten Modordner geklont. Außerdem kann direkt mit einer Skalierungsangabe das gesamte Asset skaliert werden.
Die Methoden für Models:
- ()/save() -> Prototypen können geöffnet und gespeichert werden
- getSize() -> Printet und gibt die Maße des Modells zurück. Darin enthalten sind die EM4 INT-Maße, die Originalgröße und die Personengröße
- scale() -> Skaliert anhand eines Skalierungsfaktors (z.B. 1,2)
- resize() -> Skaliert anhand expliziter Angaben (z.B. ( 4 , "Person" , "Length") würde das Modell auf 4 Meter Länge in Personen-Skalierung ändern.
- getScale() -> Gleiche Angaben wie bei resize(), zurück kommt aber der Skalierungsfaktor mit dem z.B. Modell oder Prototyp skaliert werden müssten, um gewünschte Größe zu erreichen.
- drawPlan() -> (Mein Favorit), es wurde ja bereits mit dem Katalog in der Filebase begonnen. Nun kann automatisch ein Grundriss des Modells ausgegeben bzw. gespeichert werden.
-
Innerhalb weniger Sekunden kann für ganze Models-Ordner Grundrisse zur Bodentexturerstellung generiert werden. Diese Grundrisse sind "Pixel-treu". Wenn sie also auf der Bilddatei der Bodentextur platziert werden, sind sie exakte Platzhalter für ihre jeweiligen Models. -
Umzugsunternehmen & Ratskeller aus Fuchsburg 2.0 (Antiphon) bzw. Bieberfelde
-
Primäres Ziel ist es eine Python-Library zu builden, womit sie über pip installiert werden kann. Eine Version mit GUI als Exe könnte im späteren Verlauf folgen.