Wassertexturen animieren im NGLE - richtig und falsch ;)

  • Bei vielen Leuten funktioniert die Wasseranimation (bewegte Wassertexturen) im NGLE nicht. Oder nicht mehr, seit sie in ein v50-Projekt konvertiert haben... oder wieder zurück zu v49... es scheint allgemein Probleme damit zu geben. Hier ist die Erklärung.
    Teil 1 - v49

    Angenommen, wir haben ein normales Projekt; oben auf dem Fensterrahmen steht v49. Man kann ja auf den big textures-Button klicken und 128 oder sogar 256 Pixel große Texturen verwenden. Allerdings werden diese nicht animiert! - Warum nicht?

    Ein Klick auf animation ranges (unten am Texturenset) zeigt das Fenster mit den Animationsspannen. Wie ihr seht, werden die Texturen in Zeilen sortiert, die 64 px hoch sind.

    Ich hab zur Verdeutlichung mal eine TGA mit fortlaufenden Nummern gemacht: im ersten Beispiel werden 64er Texturen verwendet, animiert wie "früher" im alten Editor - das funktioniert.



    Beispiel 2 zeigt dagegen, wie es nicht geht:

    Hätte ich beim Wasser weiterhin 128er Texturen aufgetragen, würde zusammengequetscht auf dem ersten texturierten Feld die Animationsspanne 1, 2, 5 und 6 liegen.

    Ein Feld weiter: die nächste 128er Textur in meiner TGA hätte die Animationsspanne 3,4,7 und 8 zugeordnet. Und so weiter.

    Also erst mal wird die fortlaufende Reihenfolge (1,2,3,4 usw.) derAnimation nicht eingehalten, und was viel schlimmer ist:

    Ich verlange da von der Engine, dass sie jedes Viertel des Squares einzeln animiert. Und das funktioniert natürlich nicht.




    Das ist auch kein bug, das kann gar nicht funktionieren :).

    Also muss ich in v49-Projekten beim Texturieren für Wasser den big textures-Button rausnehmen und mein Wasser in 64 texturieren.


    Teil 2 - v50


    Es ist wichtig, richtig von v49 zu v50 konvertiert zu haben. Sonst wird das mit den Animationen nichts. So sollte man vorgehen:

    1.
    du baust frisch deine Räume und speicherst dein prj. Im Moment ist es v49. Nehmen wir an, deine TGA heißt Wasser.

    2.
    du lädst das prj in den map converter und konvertierst deine TGA von 64 zu 128. Das ist wichtig! Du willst vielleicht gar keine größere TGA, aber für das Projekt ist es notwendig.
    Der map converter legt dabei backups der alten Dateien an, zum Beispiel backup_Wasser.TGA.

    3.
    Dann lädst du dein nunmehr zu v50 gewordenes prj wieder in den Editor. Der big textures-Button ist jetzt rot, oben auf dem Fenster steht v50.

    Jetzt lädst du aber statt der neuen großen TGA Wasser deine frühere kleine TGA backup_Wasser. Das heißt, du musst alles neu texturieren. Ja! An dieser Stelle merkst du, warum man das mit dem richtigen Konvertieren am Anfang des Levelbaus machen sollte...

    4.
    Du gehst auf animation ranges, drückst R (alles löschen) und setzt die ranges neu.
    Es gibt eine Obergrenze, wie lang die Animationsspanne sein darf, bis das Spiel abstürzt; ich hab noch nicht ausgetestet, wo genau die Grenze ist.

    5.
    Nun kommt dasselbe wie oben für die v49-Projekte erklärt:

    da die Texturen in 128er "Zeilen" animiert sind, musst du sie als 128er auftragen. Du kannst keine 256er Texturen für Wasser nehmen.

    Beispiel drei: dies ist übrigens eine neue TGA von mir, wo ich die Zahlen auf 128er Bereiche aufgetragen hab. Nicht dass sich einer wundert, weil es doch genauso aussieht wie oben. (Die Wassertextur darunter ist dieselbe.)






    So sollte es klappen.



    Für diejenigen, die ein fortgeschrittenes Projekt offensichtlich falsch konvertiert haben: der map converter hat einen Button "repair v50 project". Der hilft aber nicht, wenn man beim Auftragen der Textur den oben beschriebenen Denkfehler gemacht hat...

    So, ich hoffe, das hilft ein wenig weiter! Viel Spaß beim Bauen ^^

    Übrigens hat Christoph das Ganze mit dem kurzen Satz zusammengefasst:
    immer die kleinstmögliche Textur nehmen.

    2.401 mal gelesen