Modifizierbarkeit von CiM2

  • Immi ist ja auch noch da...

    Du wirst doch nicht aufgeben wollen? Alle Welt schaut auf dich. Und natürlich auch auf Immi.
    Spaß beiseite: Leider kenn ich mich mit der Programmierung fast gar nicht aus, sonst könnte ich auch meinen Teil dazu beitragen. :(
    Aber du bist offenbar bereits auf der Zielgeraden, wäre schade um deine bereits verwurstete Zeit. Aber vielleicht solltest du mal eine Pause machen, CIM2 spielen, und den Kopf frei kriegen. Dann kommen evtl. sogar Ideen auf einmal von ganz alleine. Ich hab mein Kraftwerk auch nicht in einem Zuge durchgebaut....
    ....Und ich hab jetzt eben mal mehr Zeit für meinen Garten, keiner drängelt und hat auch nicht zu drängeln wegen div. Moddingtools.


    Anscheinend ist aber die Modbarkeit gar nicht so gewollt, evtl. sind für den Workshop div. Tools geplant, dass man nur über STEAM Objekte einstellen kann. Beim Karteneditor ist es ja wohl so, hab den aber noch nicht ausprobiert.

  • Wie gesagt, DXT3/DXT5 gehen ja schon, das ARGB32 bzw. RGB format noch nicht.
    Unity Script Reference – TextureFormat


    (In der Falschen Reihenfolge, hab aber die Daten schon mal gepostet hier...
    -edit-
    Hier:
    Modifizierbarkeit von CiM2 - Seite 3 - Modding-Allgemein - Cities in Motion - Fanpage


    Man merke das Unity mehr kennt als in den Docs beschrieben. CIM2 benutzt zum Beispiel enum typ 5.


    Für ARGB muss ich die richtige DDS_PIXELFORMAT haben für die Daten, inklusive PITCH und ein Programm das es auch versteht, ändere ich die Definition sagen wir mal Rot und Blau dann kann Paint.Net damit nichts mehr anfangen, Nvidias Tool aber schon. Paint.net schreibt mir auch grundsätzlich MipMaps mit ARGB :cursing: Scheint mir die Einstellung immer zu reaktivieren... :whistling:

  • Anscheinend ist aber die Modbarkeit gar nicht so gewollt, evtl. sind für den Workshop div. Tools geplant, dass man nur über STEAM Objekte einstellen kann. Beim Karteneditor ist es ja wohl so, hab den aber noch nicht ausprobiert.

    Wenn man über den Steam-Workshop Objekte austauschen könnte, wäre das ja super. Aber bis jetzte habe ich von der Workshop-Integrierung noch nicht viel gesehen. Wobei ich davon eh nichts halte, ich finde, der ist viel zu unübersichtlich, weil er Organisch wächst und und ihn niemand kontrolliert (Siehe TrainSimulator 2013).


    Ich wollte aber an dieser Stelle auch nochmal allen, die sich mit dm Thema modden, egal ob in CIM1 oder CIM2, bedanken. Es ist echt super, was ihr macht und dem Spiel rauslockt. Wäre ich etwas talentiert in 3D Moddeling, könnte ich ja selber Fahrzeuge erstellen, aber so muss ich mich mit Script-Anpassungen und Repaints begnügen. Wenn ich selber mehr könnte als "nur" die Grund-Websprachen (Java,PHP,HTML,CSS), dann könnte ich euch auch unterstützten. Ich macht eine geniale Arbeit und seit sehr wichtig für solche Spiele. Ich finde es aber schade, das es von CO scheinbar nicht geplant ist, selber Mods zu erstellen, denn sonst hätten sie es ja nicht so verschworbelt geschrieben. Die Aussage, das es an Unity liegt, kann ich auch irgendwie nicht akzeptieren, denn irgendwie müssen die DLC Fahrzeuge ja auch entstehen ;) Also wenn man wollte, würde man auch können^^

  • Das hat mit Ihrem Workflow zu tun. Der große Unterschied ist, das mit Unity das Konzept verfolgt wird, baue eine komplettes Spile inkl. aller DLC Inhalte. Deswegen ist ein Update über Steam immer der Snapshot des jeweiligen Entwicklungsstandes inkl. aller Daten inkl. aller DLCs. Da das ein Monolithisches System ist, ist es natürlich auch schwer zwei unterschiedliche Versionen zu haben, einmal DEV und Release. Das Release Management von CO ist auch etwas sehr eigen, das Changelog beinhaltet nicht alle Neuerungen, bestimmte Features werden vergessen u.s.w. Und nein, man könnte nicht. CO ist bei CIM2 auf Gedeih und Verderben auf den Unity Workflow und die Entwickler von Unity angewiesen. Gerade bei Unity Bugs kann CO wenig bis gar nichts machen. Die große Warnung der Binär und API Inkompatibilität zwischen Unity Version spricht nicht gerade für das Produkt.


    CIM1 war da hingegen komplett anders ausgelegt, ein DLC ist ein gs Datei und wird vom Scriptsystem in die eigene Engine geladen.


    PS: Das Problem mit den Texturen hat sich zwischenzeitlich mit mediziners hilfe gelöst.

  • Zitat von 'eis_os

    Immi ist ja auch noch da...


    wenn auch etwas "abgelenkt". damn amazon Sale, soviele spottbillige Games ...


    Zitat von Stoettax

    Die Aussage, das es an Unity liegt, kann ich auch irgendwie nicht akzeptieren, denn irgendwie müssen die DLC Fahrzeuge ja auch entstehen ;) Also wenn man wollte, würde man auch können^^


    wenn du UnityPro und Zugriff auf das dem Spiel zugrundeliegende UnityProjekt haben würdest, könntest du auch eigene Modelle erstellen :)
    Da CO diese beiden Sachen uns kaum zur Verfügung stellen kann, bliebe nur ein eigenes Tool/Speicherformat zu entwickeln.
    Dass dieser Zeitaufwand in diesem Stadium des Spiels kaum gegenüber dem Publisher zu rechtfertigen ist, sollte man denke ich allerdings einsehen.
    Ergo, die Erklärung von CO macht schon Sinn.


    btw. jemand ne Idee wozu in den Meshdaten 2 Sätze UV Koordinaten stecken? ?( Für die im Material angegeben Texturen wird definitiv nur die erste verwendet.
    und wenn jemand schon mal in den Materials/Texturen rumgewühlt hat: Ideen was die ColorMask Texture genau bewirkt?



    Notizzettel bzgl Meshdaten

  • Ich hab mal irgendwo etwas mit Shadern gelesen.
    Das mit deinen Mesh daten verstehe ich nicht so ganz, vielleicht noch Daten vom Optimizer?
    Unity Script Reference – Mesh




    Ich werde mal den anderen Weg versuchen, irgendwie Unity Free eine Blender Datei unterschieben, diese versuchen in eine Datei zu speichern und schauen ob man diese per BundleCodec als vorhandenes Depot ins Spiel bekommen kann.

  • Ich hab mal irgendwo etwas mit Shadern gelesen.


    jo, in GameShared.Bundle finden sich auch einge Shader. Die würden sicher einiges erklären. Bin nur etwas unmotiviert mit da durchzwühlen :p, weil die Sprache sprech ich nicht.

    Das mit deinen Mesh daten verstehe ich nicht so ganz, vielleicht noch Daten vom Optimizer?
    Unity Script Reference – Mesh


    nur sind die MeshDaten im Bundle etwas anders gespeichert, als in dem Link angegeben


    darauf bezogen sich meine notizen


    mediziner
    die wird allerdings auch bei ganz normalen Gebäuden benutzt.

  • Ja, hast recht, mein Json Struct Dump hat mehr als 100000 Zeichen 8| 56KB nur für die Struktur.


    wobei der ganze Mesh Compression Kram anscheinend gar nicht genutzt wird (ist mir zumindest noch nicht untergekommen)


    firstByte hört sich Interessant an. Vielleicht ein Index im TypelessData
    Besteht dein Mesh aus mehreren SubMeshes?


    nein, hab noch keinen Mesh gesehen, der überhaupt mehrere SubMeshes hatte. Aber ich vermute auch dass es ein Index in den IndexBuffer sein wird.



    Zitat von mediziner

    Kann man die Objekte schon iwie in Blender-Kompatible Dateien umwandeln?

    naja, so irgendwie ein bisschen :p
    Ich hänge ma mein python script an. Aber weiter oben schon gesagt, da ist viel rumprobiererei noch drin, mancher code macht keinen Sinn mehr oder funktioniert vermutlich nicht mehr .... Aber zum rumspielen reichts.
    Runterladen und nach cim2.py umbennen.
    Dann in Blender die Python-Konsole aufrufen und folgendes eingeben:
    Pfade natürlich anpassen.(bei mir liegt cim2.py in C:\CiM\bundle)
    Auf die doppelten '\' in den Pfaden aufpassen
    wisim-welt.de/wsc/attachment/3099/
    Dann sollte hoffentlich irgendwas im 3D-Fenster auftauchen. Die Texturen sollte auch exportiert werden(inklusive der mysteriösen ColorMask).
    Und im TextEditor finden sich weitere diverse Informationen wieder.
    Der Mesh kommt momentan noch etwas verdreht raus: einfach noch 90°um die X Achse drehen und scale entlang X-Achse um -1 (also r, x, 90, ENTER, s,x,-1,ENTER :) )
    in der Konsole kann man noch nen bisschen weiter rumspielen:
    bundle.list_assets() - listet alle Assets auf
    bundle.asset( 0x#####) - liefert das Asset mit der gewünschten ID zurück
    so etwa
    wisim-welt.de/wsc/attachment/3100/
    funktioniert momentan allerdings wahrscheinlich nur mit den BuildingsXX.bundle Dateien


    Bezüglich dem zweiten Satz UV Koordinaten scheint es, als hätte das irgendwas mitm Lightmapping zu tun. Aber da es auch Objekte ohne diese UV2 Daten gibt, lassen wir das wohl erstma beiseite.


    In den Shadern stecken vermutlich wirklich noch ein paar sehr nützliche Infos drinnen:


    Sieht so aus als ob bei der SpecularMap, die RGB Kanäle jeweils separat genutzt werden.(das ist in meinen Script nicht berücksichtigt)
    und irgendwo lässt sich da vielleicht auch ein Zusammenhang zwischen der ColorMaskMap und den angegebenen MaskedColor## Werten finden.


    falls irgendwer was von D3D oder OpenGL Shadern versteht: den BuildingShader häng ich mal an
    btw. gabs nich irgendwo im Paradox Forum schon nen Mod wo irgendwer an der Graphik rumgebastelt hat? Wenn wir freien Zugriff auf die Shader haben, lässt sich da vielleicht noch ein bisschen mehr rumspielen.


    was die Tangenten in den Meshdaten angeht, so hat sich zumindestens rausgestellt, dass die sich nach der Anleitung hier aus den Vertex/Normalen/UV-Daten berechnen lässt. Inwieweit dass ganze dann mit in Blender erzeugten Normalmaps funktioniert ... ?? ?( ?? je ne sais pas

  • Ich kanns verstehen. Wenn ich modde oder Kraftwerke baue, will ich meine Ergebnisse auch mal selber verwenden wollen. Hier verliert sich etwas der Sinn des Moddings. Aber es ist wohl auch garnicht so gewollt, dass die Bundles moddbar werden. Das ist etwas schade, den CIM2 hat riesen Potential. Da ist alleine die Tatsache des Verkehrsnetzbaus. Bei CIM1 benötigt man für jede Brücke eine eigene Datei, hier werden wohl aus dem Bundle von herkömmlicher Straße/Schiene und dazu Unterbau sogar ein geniales Überwerfungsbauwerk möglich. Gemoddet hätte ich z.B: gerne für das Schienensystem ein alternatives Brückensystem erstellt. Aber dazu muß man entsprechende Tools in der Hand haben. :unhappy:

  • Ich hänge ma mein python script an. Aber weiter oben schon gesagt, da ist viel rumprobiererei noch drin, mancher code macht keinen Sinn mehr oder funktioniert vermutlich nicht mehr .... Aber zum rumspielen reichts.


    Funktioniert leider nicht mit den Fahrzeugen. (Zumindestens nicht nach dem Update auf Unity 4). Dein Plugin findet keine IDs in den Bundles :(
    Genial wäre es, wenn man die mit dem Bundelcodec erstellten Dateien einzeln importieren könnte. Meinst du, du könntest das Script anpassen?

  • Meine interne BundleCodec Version exportiert alles ins JSON Format mit Hex Erweiterung, dds export klappt zum Glück auch (Gimp, Paint.net, PSP mit Nvidia Plugin können die DDS Dateien laden), auch Rescue 2013 Daten können entpackt werden. Bis jetzt hatte ich noch keine Zeit den jeweiligen Packer zu Programmieren. Mediziner: Audio Dateien werden nun auch geschrieben ;)


    Jetzt such ich eine gute Möglichkeit die Abhängigkeiten zu visualisieren, weil CIM2/Unity nutzt eine Unmenge an Querverweise, das einem schlecht wird. Mal schauen was das Update auf Unity4 bringt.

  • Funktioniert leider nicht mit den Fahrzeugen. (Zumindestens nicht nach dem Update auf Unity 4).


    vorher auch nicht, wie ich im Posting schon geschrieben hatte.
    dank dem Umstieg auf Unity4 scheint sich aber eh einiges geändert zu haben, die Struktur der Meshdaten hat sich auch erweitert, meine ich ...
    hab das aber noch nicht weiter inspiziert ...
    script ist also erstmal nutzlos


    Genial wäre es, wenn man die mit dem Bundelcodec erstellten Dateien einzeln importieren könnte. Meinst du, du könntest das Script anpassen?


    anpassen ist gut ;), da brauch ich erstmal nen kompletten Parser um die Daten aus dem Textformat wieder einzulesen ...
    war ich bisher zu faul dazu :p

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!