Angepinnt [WIP] Howto: neue Objekte erstellen und ins Spiel integrieren

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [WIP] Howto: neue Objekte erstellen und ins Spiel integrieren

      Hoi,

      Update:
      Eine weiterentwickelte Version der gs_tool von eis_os findet sich hier: bytetransfer.de/projects/cim/tools/

      bin jetzt soweit dass ich das datei format von CiM so halbwegs verstehe* und neue Objekte erstellen kann. Ist alles noch sehr work-in-progress, relativ umständlich und fehleranfällig.
      aber da ich in den nächsten Wochen vorraussichtlich nicht dazu kommen werde daran weiter zu basteln, schmeiss ich das einfach so halbfertig schon unters Volk ;)

      *) es fehlen allerdings noch so einige Sachen - wer also spass daran hat im hexeditor rumzustöbern ist herzlich eingeladen :)
      ich hab versucht meine bisherigen erkenntnisse in src\gs.h zu dokumentieren
      mutige können auch versuchen dem restlichen Quellcode zu folgen, der ist allerdings ... uh ... nicht ganz so hübsch :p

      Kurze anleitung:
      Anmerkungen:
      - als übergangsdateiformat hab ich Wavefronts OBJ Format benutzt. Getestet ausschließlich mit Blender.
      - ggw nur eine Texture pro Objekt unterstützt(und auch nur die Textur - sonstige Material eigenschaften werden ignoriert)
      - als Textureformat scheint nur DDS zu funktionieren
      - etwas mehr Zeit und die Bereitschaft etwas rumprobieren zu müssen mitbringen ;)

      1) gs_tools.zip runterladen(siehe Anhang) und entpacken

      2) Modell von Blender nach OBJ exportieren( Optionen siehe Bild)
      man erhält dann eine .obj und eine .mtl Datei
      wisim-welt.de/index.php/Attach…44a0d51f933e0ba5896d18104

      3) mittels gsobj_import.exe ins CiM Format konvertieren.
      man erhält dann zwei dateien: output.object und output.material
      wisim-welt.de/index.php/Attach…44a0d51f933e0ba5896d18104

      4) im addon ordner einen neuen Ordner erstellen(als bsp hier 'tvtower') und darin zwei unterordner anlegen: 'scripts' und 'objects'
      output.object nach addons\tvtower\objects kopieren (in einen sinnvollen Namen umbenennen: hier tvtower.object)

      5) output.material nach addons\tvtower\objects kopieren und umbenennen:
      ! Der Name der material datei muss dem Name entsprechen den Blender beim exportieren dem Material gegeben hat
      - Um den herauszufinden die bei Schritt 2 erstellte mtl datei in einem texteditor öffnen - die Zeile 'newmtl xxxxxx' gibt den Namen des Materials an(Dateiname also: xxxxx.material)
      (wer mag kann diesen auch vor schritt 3) ändern, muss dann allerdings die 'usemtl' Anweisungen in der obj Datei entsprechend anpassen)

      nicht vergessen die textur ebenfalls nach addons\tvtower\objects kopieren

      6) in addons\tvtower\objects eine .script datei anlegen mit dem gleichen Namen wie die .object Datei (hier also tvtower.script)
      in diese kommt dann

      Quellcode

      1. this.width = 5;
      2. this.height = 45;
      3. this.length = 5;
      4. this.flags = GRID_ITEM_COVER | GRID_ITEM_LOCK_GROUND | GRID_ITEM_ENABLE_BASE;
      5. this.diagonals = 0x0000;
      6. this.type = GRID_ITEM_BUILDING;
      7. this.displayName = "TVTower";
      8. $price = 1234500;

      $displayName und $price können beliebig angepasst werden
      Größenangaben(width, height, length) errechnen scheint mit folgender Faustformel zu klappen:
      man suche sich die Dimensionsangaben des Modells in Blender und dividiere durch 3 (aufrunden)
      wisim-welt.de/index.php/Attach…44a0d51f933e0ba5896d18104

      ( in dieser script datei können auch noch diverse andere Sachen angepasst werden. Für inspiration einfach bei den mitgelieferten Objekten stöbern ;) )

      7) in addons\tvtower\scripts eine datei 'environment.script' anlegen

      Quellcode

      1. // get addon path
      2. $BasePath = extractFilePath(extractFileDir(this.scriptFilename));
      3. $ObjectPath = $BasePath + "objects/";
      4. function loadBuilding($category, $name, $model)
      5. {
      6. MAIN.$grid.loadGridObject($name, $model+".object");
      7. if (defined MAIN.$level.$buildings[$category]) {
      8. MAIN.$level.$buildings[$category][] = $name;
      9. } else {
      10. MAIN.$level.$buildings[$category] = [$name];
      11. }
      12. }
      13. loadBuilding("landmarks", "tvtower", $ObjectPath+"tvtower"); // lädt objects/tvtower.object
      Alles anzeigen


      8.) spiel sparten und hoffen das alles klappt :)
      wisim-welt.de/index.php/Attach…44a0d51f933e0ba5896d18104

      wenn es nicht funktioniert:
      - erster anlaufspunkt ist log_metro.txt
      - .mtl/.obj dateien überprüfen ob alle namen/Dateinamen stimmen
      - mit gs_dump.exe die erstellten .object/.material dateien inspizierenn ob alle Namen/Dateinamen korrekt sind

      auf ein fröhlichen basteln :)
      Erfahrungsberichte sind ausdrücklich erwünscht.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von immi () aus folgendem Grund: hinweis auf die gs_tools von eis_os

    • Ich muss echt mal modellieren lernen. Dann kann ich ein schönes "ordentliches" Wien bauen :thumbsup:
      @ Mods: Könnte es eventuell einen Tutorial-Breich geben, dann müsste man nicht suchen :whistling:

      Verkehrsbetriebsname: Wiener Linien :D
      Karte: Wien
      Zeitspanne: 1970 - ? (z.Z. 1980)
      Buslinien: 3
      Straßenbahnlinien: 19
      U-Bahnlinien: 3
      Monatseinkommen: 10 000 - 12 000
      Schulden: 0
      Wieviele U-Bahnlinien noch?: 2 (U4 und U6; wenn Nötig)
      ES LEBEN DIE WIENER LINIEN
    • V-Fan schrieb:

      Ich muss echt mal modellieren lernen. Dann kann ich ein schönes "ordentliches" Wien bauen :thumbsup:
      @ Mods: Könnte es eventuell einen Tutorial-Breich geben, dann müsste man nicht suchen :whistling:

      genau meine worte ich muss auch modellieren lernen wenn alles reif ist wäre ein nettes how to/tutorial vom modellieren bis zum implentieren cool :thumbsup:

      edit: also habe zwar nur Java und PHP aufm Kasten aber das scheint schon zu reichen um diese Quellcodes zu verstehen :thumbsup:
      sobald ich wieder zu hause bin beschäftige ich mal mit Modellieren, wie lang dauert es bis man große Gebäude erstellen kann?

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Fragi ()

    • Also ich hab vor einem Jahr auch aus Spaß mal angefangen mit modellieren, ich kann da Cinema4d empfehlen. Sehr einsteiger freundlich und leicht zu bedienen. Am Anfang war ich ein totaler Modelnoob, wenn man sich aber ein Ziel setzt das man erreichen will, lernt man im Prozess eigentlich alles notwendige. Nach ca. 50 Arbeitsstunden war dann mein Tigerpanzer fertig:

      Wenn man bedenkt wie simpel ein Haus ist, sollte man das in ca. 20 Stunden eigentlich locker hin kriegen! Es gibt wie ich gehört habe aber auch einige online Sammlungen von 3d-Moddels, wenn man die einfach importiert ginge das um einiges schneller! ^^


      t1.jpg

      t2.jpg
    • Welche Dateien sind genau notwendig? Und was steht in den Dateien drin? Meine beiden Häuser bekomme ich nämlich über die Addon-Funktion garnicht und überhaupt nicht ins Spiel! Allerdings können die präziesen Dateipfadangaben innerhalb der Datei arg hinderlich sein.
      Für deinen Objekt.Im- und -Exporter sind laut deiner .c-Dateien noch jede Menge .h-Dateien notwendig. Welche Versionen brauche ich und wo genau lege ich die hin?
      Meine Workshop-Schmiede auf STEAM
    • @Fragi
      Tutorials zum Modelling gibts es schon zuhauf. das rad brauchen wir nun wirklich nicht neu zu erfinden.

      ArkenbergeJoe schrieb:

      Welche Dateien sind genau notwendig? Und was steht in den Dateien drin?

      hmpf, genau um die Frage zu beantworten hab ich mir den ganzen Text im ersten Post aus den Fingern gesogen

      ArkenbergeJoe schrieb:

      Meine beiden Häuser bekomme ich nämlich über die Addon-Funktion garnicht und überhaupt nicht ins Spiel!
      da wirst du wohl etwas genauer beschreiben müssen wie du versuchst deine beiden Häuser einzubinden. ansonsten können wir auch nur raten

      ArkenbergeJoe schrieb:

      Für deinen Objekt.Im- und -Exporter sind laut deiner .c-Dateien noch jede Menge .h-Dateien notwendig. Welche Versionen brauche ich und wo genau lege ich die hin?

      die liefert dein Compiler mit.
    • ArkenbergeJoe schrieb:

      Wie ich lese, hast du 4 Dateien im Objekt-Ordner (.object; .material; .script; .dds), und das addonscript im Script-Ordner. Richtig?

      korrekt.

      ArkenbergeJoe schrieb:

      Bei meinen umgemoddeten Häusern sind's ja 17 Stück pro Haus. Wenn ich mal ein fertig texturiert habe, werd ich es dann online stellen, zum Weiterprobieren.

      ja alle mitgelieferten Objekte haben immer noch .scene,.properties & .skeleton Dateien. (die sind allerdings nicht zwingend notwendig anscheindend). Dazu dann meist mehrere Texturen pro Objekt(u.a. bump texture/specular texture)
      Plus die Sache mit den Farbpaletten die hier öfters mal erwähnt wurden, hab da allerdings noch überhaupt nicht reingeschaut. Insofern warte ich da gespannt auf deine Ergebnisse :)
    • Fragi schrieb:

      hat es jetzt schon jmd geschafft arbeitet noch jmd dran oder interessiert es auf einmal keinen mehr eigene gebäude einzufügen?
      Es interessiert mich auf jeden Fall noch. Aber man hat als treu sorgender Familienvater auch noch mehr um die Ohren.
      Aber ich bin bereits ein Stück weitergekommen, ich habe die Addonscripts jetzt an richtiger Stelle und Anordnung. Und es ist so gekommen, wie es kommen musste, mein ein und dasselbe Haus wird als nagelneues angezeigt. Also alle bereits bei mir gesetzen Häuser sind weg, und ich muß sie neu überarbeiten und wieder setzen. Aber ein Anfang ist getan, jetzt kann ich geordnet arbeiten. Das fängt schon beim Dateinamen an. Da sollte jeder sein Kürzel einarbeiten, damit es keine ungewollten Dopplungen gibt.
      Und jetzt schaue ich mir immi sein Addon an. :)
      ... dasselbe Haus wird als nagelneues angezeigt.
      Bin jetzt dahinter gekommen, warum es so ist. Ich hatte meine Häuser diagonal gesetzt. Und der neue Addon-Script lässt keine diagonalen Zusatzobjekte zu. Bei den spieleinternen Objekten wird stets eine "Name".datei und dazu eine "Nameb".datei geladen.
      Während beim Blockhaus nur eine *b.bmp und *b.script fehlen; sind beim 45°Haus auch ein *b.object nicht dabei.
      Meine Workshop-Schmiede auf STEAM

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von ArkenbergeJoe () aus folgendem Grund: Neue Erkenntnisse