ModUtil: Ein Repaint mit der Repaint Funktion erstellen

Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


  • Ein kurze Erklärung, wie man mit dem ModUtil Script Repaints für darauf vorbereitete Mods erstellt.

    1 Einleitung

    Die Repaint Funktionen des ModUtil Scripts haben sowohl das Ziel, Repaints zu vereinfachen, als auch Dateien und damit auch Speicherplatz zu sparen (auf der Festplatte und im Arbeits-/Grafikspeicher). Man braucht daher nur noch folgende Dateien:

    • das ModUtil Script in "res/scripts"
    • die mod.lua
    • die geänderten Materials mit den dazugehörigen Texturen (brauchen immer noch einen eigenen Namen, damit sie nicht die original Texturen überschreiben)
    • .mdls für die Repaint Objekte, bei Fahrzeugen inklusive der UI-Icons

    Allerdings müssen Repaints dann etwas anders erstellt werden als bei anderen Objekten. Dieses Tutorial soll die nötigen Änderungen vorstellen.
    [info=info]Wenn beim original Mod nichts gegenteiliges steht, sind Repaints mit dem ModUtil Script immer erlaubt, solange folgende Bedingungen beachtet werden:

    • Es werden keine .msh und .grp Dateien mitgeliefert (ist dann auch gar nicht mehr nötig)
    • Im Download wird auf das original Objekt verlinkt und der Autor erwähnt.

    [/info]


    2 mod.lua

    Hier muss zunächst das ModUtil Script eingebunden werden (sofern es nicht wegen der Einstellungen schon eingebunden ist):
    local modUtil = require "merk_modutil_1"
    Ansonsten muss in der runFn nur noch eine Funktion aufgerufen werden, die dem Script mitteilt, welche Materials des Repaints welchen Materials des original Objekts entsprechen:

    Code
    modUtil.vehicles.addRepaint("mod_id", "repaint_id", {
    	{"vehicle/waggon/4yg.mtl", "vehicle/waggon/4yg_64.mtl"},
    	{"vehicle/waggon/4yg_2.mtl", "vehicle/waggon/4yg_64_2.mtl"},
    	{"vehicle/waggon/4yg_transparent.mtl", "vehicle/waggon/4yg_64_transparent.mtl"},
    })

    "mod_id" ist die ID der original Mod (steht in der entsprechenden mod.lua) und "repaint_id" die ID für das Repaint (die Kombination mod_id + repaint_id sollte eindeutig sein). Danach folgt noch eine Liste mit Materials, der erste Eintrag in jeder Zeile ist das Material des original Objekts, der zweite das entsprechende Material für euer Repaint.
    In Beispiel oben bedeutet das, dass jedes Mesh mit dem Material "vehicle/waggon/4yg.mtl" auch noch das Material "vehicle/waggon/4yg_64.mtl" zugewiesen bekommt, jedes Mesh mit "vehicle/waggon/4yg_2.mtl" auch "vehicle/waggon/4yg_64_2.mtl", und so weiter.


    Eine vollständige mod.lua sieht dann z.B. so aus (wie der "info" Teil aussehen muss, könnt ihr hier nachlesen: mod.lua und strings.lua - Erklärung und Inhalt ):


    3 .mdl

    Es ist sinnvoll die .mdl des original Objektes als Ausgangspunkt zu nutzen, diese einfach in den eigenen Mod Ordner kopieren und umbenennen. Danach den "metadata" Teil anpassen (insbesondere"name" und "description") und für ein einfaches Repaint auch nur diesen.
    Die Datei sollte dann immer noch folgende Struktur haben:

    Code
    function data()
    return {...}
    end

    die noch wie folgt geändert werden muss:

    Der Teil {...} ändert sich dabei nicht und in Zeile 4 müssen "mod_id" und "repaint_id" den gleichen Wert haben wie in der mod.lua.
    Alle anderen Dateien bleiben so, wie sie auch bei anderen Repaints sind.

Teilen