Ergebnis 1 bis 7 von 7

Thema: [Script] Lichteffekte

  1. #1

    [Script] Lichteffekte

    Anstoß für dieses Script gab schmoggi (http://www.multimediaxis.de/threads/...ackel-%28XP%29)
    da er auf der Suche nach einem guten Lichteffekte Script für den XP war. Nach einiger Suche habe ich das Script im gezeigten Video gefunden und
    erstmal so gut es ging ins Deutsche übersetzt.

    Funktion:
    Mit dem Script kann man dynamische Lichteffekte mit Bildern erzeugen. Fackeln, Taschenlampen, Kamine, Licht durch Fenster, Strassenlaternen, Aura, Scheinwerfer uvm.

    Kurz noch die Erklärung:
    Das Script stammt aus der brasilianischen Community, dort gibt es eine Art SDK, nennt sich Legacy Engine.
    Als Teil dieser Engine gibt es ein Script für Lichteffekte.
    Teil 1 ist die Basis und wird benötigt für alle Unterscripte der Legacy Engine.
    Teil 2 ist das eigentliche Script für die Lichteffekte.




    Wichtig: Die Demo damit ihr das Ganze mal in Aktion sehen könnt. Download

    Screen:


    PS: Würde mich freuen wenn ihr eure Erfahrungen mit dem Script hier teilt. Auch bin ich noch nicht hinter jede Funktion durchgestiegen. Was ist zB der Unterschied zwischen Simple Window A und B?
    PPS: Opazität steht übrigens für Deckkraft.

    Dann mal viel Spaß mit der Benutzung, ich zumindest kann's SEHR gut gebrauchen.

  2. #2
    Hey das Skript ist ziemlich gut, vielen Dank fürs übersetzten und vorstellen.
    Kann ich gut für mein nächstes Projekt gebrauchen .

  3. #3
    Hey,

    Super, hab vielen Dank für die Arbeit!

    Lustig... dabei kenn ich das Santuario RPG Maker Forum ^^. Diese Legacy Engine ist wirklich ne feine Arbeit, für diejenigen die bestimmte Sachen wie Catepillar oder Springe etc. eben sowas suchen ist das eine Überlegung aufjedenfall wert.
    Muss nur allerdings darauf hinweisen, dass es unter CC License steht und soweit ich gelesen habe sollte das Skript bzw. dieses ganze Legacy Paket nirgends anders vorgestellt werden als auf santuario. Ich hoffe, du hast den Ersteller dies bzgl. gefragt!

    Habe mir die Demo und das Skript angeschaut, ist aufjedenfall mächtig das Ding. Im Grunde genau das was ich gesucht habe, super! Es läuft schnell, ohne lag (bei ca. 100 events getestet, was sowieso kaum der realität entsprechen dürfte).
    Mir fehlt allerdings leider eine Fade in/out Funktion für die Lichter! Es ist zwar mit Umwegen möglich sowas nachzubauen (schleife, variablen hochzählene etc.) ist aber wie gesagt umständlich. Für die Schatten Ebene gibt eine entsprechende Funktion (die leider in der Anleitung nicht beschrieben ist) und da die Lichter selber ja auch das flackern Feature besitzen, müsste eine Fade in/out Funktion leicht machbar sein. Wäre echt cool, wenn da jmd. was bauen könnte.

    Allerdings gibt es auch ein etwas größeres Problem, was aber zu beheben ist! Pictures, Wetter Effekte, Fogs etc. werden auch unterhalb der Schatten Ebene angezeigt, sowie auch unter den Lichtern.
    Um das zu beheben, muss man im Basis Skript ganz unten im Abschnitt Spriteset_Map die jeweiligen Viewports der Funktionen (Fog, Weather, Pictures) ändern. Wenn man den Viewport auf 3 stellt, werden die Sachen wieder ganz normal über der Schatten Ebene angezeigt.

    Bin auch auf Cornix seine Arbeit gespannt und was das Skript so für Funktionen bietet. Vllt. kann man ja die besten Dinge miteinander kombinieren und ein super Skript daraus basteln .

    greetz

    Geändert von schmoggi (11.03.2012 um 15:06 Uhr)

  4. #4
    Ich habe mir nun die Zeit genommen mich durch das Script zu lesen. Der Script-Stil ist nicht sonderlich freundlich wenn man das sagen darf und erschwert das Verständnis zunehmend.

    Von der Idee her arbeitet das Script beinahe so wie meine Idee es vorsah. Nur an einer kritischen Stelle wurde eine andere Lösung genommen.
    Nämlich das updaten der Lichteffekte.

    Das Script arbeitet nämlich tatsächlich so, dass es jedes Frame jeden einzelnen Lichteffekt welcher auf der Karte gerade sichtbar ist komplett neu zeichnet genauso wie die Hintergrunddunkelheit.
    Ich jedoch wollte nur diejenigen Lichteffekte neuzeichnen lassen welche sich mit einer sich bewegenden Lichtquelle überschneiden und auch nur in den dafür notwendigen Punkten.

    Tatsächlich kann man nicht sagen ob die eine oder andere Variante besser ist, da es hier auf die Situation ankommt.
    Um das zu erläutern:
    1). Gibt es garkeine sich bewegenden Lichtquellen in dem Spiel ist meine Variante leichtverständlich besser, dann wird nämlich bei einem Update überhaupt garnichts gemacht werden müssen.

    2). Gibt es nur bewegliche Lichtquellen so müssten in beiden fällen sowieso alle Lichtquellen neu gezeichnet werden, meine Variante würde allerdings zusätzlichen Overhead für, in diesem Fall nutzlose, berechnungen produzieren und deshalb schlechter ausfallen.

    3). Gibt es wenige bewegliche Lichtquellen und einige verstreute einzelne unbewegliche Lichtquellen auf der Karte, wie es der Standard sein sollte, dann sollte theoretisch meine Variante besser abschneiden, da nur das nötigste in den nötigen Fällen neugezeichnet werden würde und nicht alles.

    4). Gibt es eine bewegliche Lichtquelle die plötzlich auf sehr viele dicht beieinanderstehende unbewegliche Lichtquellen trifft so wird meine Variante wahrscheinlich ebenfalls schlechter abschneiden als die andere aus dem gleichen Grund wie im Punkt 2).

    5). Außerdem ist ein unterschied, dass diese Methode die hier gezeigt wird einen konstanten Performance-Verbrauch besitzt während meine Variante nur arbeitet wenn etwas passiert. Das heist, stehen alle beweglichen Lichtquellen gerade still so wird auch wirklich nichts gemacht, stehen im Moment alle Lichtquellen so weit von einander entfernt dass sie sich nicht überschneiden muss ebenfalls nichts, beziehungsweise nur wenig, gemacht werden.

    Ich denke wirklich, dass man vielleicht versuchen sollte beides einzubauen und nach Bedarf zu wechseln.
    Nachdem ich mich heute nocheinmal an das Script gesetzt habe konnte ich auch den letzten Bug aus dem Algorithmus entfernen und es funktioniert nun, allerdings noch nicht in einer Form wie man es dem Standardbenutzer vorwerfen könnte.
    Ich denke ich werde eine Testumgebung in naher Zukunft veröffentlichen können.

  5. #5
    Oh man ich liebe euch gerade dafür, dass ihr dieses Script gefunden habt! Das ist GENAU das, was ich auch gesucht habe!!!

  6. #6
    Musman beides, also Basis und das Skript selber in 2 verschiedene "Skript-Slots" kopieren, oder muss man ncoh etwas beachten?

  7. #7
    Man muss sie nichteinmal an verschieden Stellen einfügen, solange das Script oberhalb der Main Funktion steht sollte es funktionstüchtig sein.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •