Ergebnis 1 bis 19 von 19

Thema: Probleme mit Lightmaps

  1. #1

    Probleme mit Lightmaps

    Hallo liebe Community,

    Ich hoffe es findet sich jemand, der mir bei diesem kleinen Problem ein wenig auf die Sprünge helfen kann. Wahrscheinlich ist die Lösung relativ trivial ...

    Folgendes:

    Ich bin gerade dabei mein kleines Projekt mit Lightmaps zu versehen. An sich klappte das auch recht gut, doch dann trat das erste Problem auf: Ich verschickte eine Art kleine "Mini-Demo" an einen Freund und der berichtete mir von absolut grauenhaften Lags auf den Maps die bereits mit Lightmaps versehen waren. Also eine kleine Recherce gemacht und herausgefunden: Ohne "Wait"-Befehl im Lightmap-Event wird das ganze so oft bzw. ununterbrochen abgespielt, dass es einfach die meisten Rechner schafft (obwohl es sich ja nur um ein RPG-Maker Game handelt. Wäre aber nicht das erste Mal, dass ich mitbekomme, wie Ressourcenintensiv Anwendungen sein können, von denen man das gar nicht annehmen würde..) Bei mir war das, was sich bei ihm als grausiges Lag äußerte nur als vages "verlangsamen" zu erahnen. Ein i7-Prozessor nebst ähnlich gefälligem Setup scheint sich in diesem Fall also generell auszuzahlen ... Nunja, aber schließlich baue ich ja nicht nur für mich selber zusammen. Also habe ich bei allen Lightmap-Events (typisches Set-up: Variablen definieren die Koordinaten der Bildschirmmitte, danach Anzeigen des Pictures an der beabsichtigten Stelle ... dürfte den meisten hier bekannt sein) eben besagte Waits eingebaut und zuerst schien alles eitel Sonnenschein.

    Nun zu dem Problem, welches mir im Moment Kopfzerbrechen bereitet:

    Das Lag-Problem gelöst und frohen Mutes, musste ich feststellen, dass sich der Wait auch relativ negativ auswirkt...
    Speichere ich auf einer mit Lightmap versehenen Map und lade neu, so tritt eine Art "Picture-Bug" auf. Irgendwie zerhauts die Transparenz oder ... ich weiß auch nicht. Zmd. wird das anzuzeigende Picture ziemlich "dominant" angezeigt, so lange wie der Wait eingestellt war. Bis dahin ist an Spielen kaum zu denken. Bei langen Waits ist die In-Game performance toll, aber die Phase nach dem Laden grauenhaft. Bei kurzen Waits wird eben besagtes Problem nur kurz angetroffen (trotzdem relativ nervig), dafür leidet wiederum mit abnehmender Wait-Zeit die Performance... Lässt man die Waits ganz weg... nunja... wie oben bereits beschrieben lässt sich das Game dann nur noch mit High-End-Maschine ruckelfrei zocken. Seufz.

    Ich würde mich wirklich ungemein freuen, wenn hier jemand einen Lösungsvorschlag zu meinem Problem hat. Im Moment vermiest mir das ganze nämlich wirklich die Freude am Makern, vor allem da ich ein ziemlicher Fan von Lightmaps bin und mir gar nicht mehr vorstellen kann ein Projekt ohne eben solche zu basteln.

    Sollte die Beschreibung der angesprochenen Problematik auf Unverständnis stoßen, weil meine Erklärung eventuell zu kryptisch war, kann ich das ganze natürlich noch mit beispielhaften Screenshots versehen.

    (Ich habe auch versucht die Suchfunktion im Forum bzw. Google zu befragen, leider nicht mit dem erhofften Erfolg)

    Mit freundlichen Grüßen
    AgentBlack

  2. #2
    Muss das Bild denn manuell bewegt werden? Sonst zeig es einmal an und beende danach das Event, dann brauchst du auch kein Wait. Macht eigentlich keinen Sinn, ein Bild zig mal die Sekunde anzuzeigen wenn sich nichts verändert.

  3. #3
    Ich habe jetzt zwei Möglichkeiten durchgespielt um das von dir Angesprochene anzuwenden:

    1. Am Ende ein Erase Event eingefügt. Resultiert aber darin, dass das Picture wenn ich neu lade nonstop mit 0% Transparenz angezeigt wird und sich (da anscheinend die Koordinaten, die auch im Event festgelegt werden, verloren gehen) mit dem Helden mitbewegt.

    2. Das Event einmal abspielen lassen und dann mittels Switch deaktivieren: Hierbei tritt das Problem auf, dass die Lightmap, wenn ich den Screen verlasse und wieder betrete, gar nicht mehr angezeigt wird.

    Die meisten der Lightmaps sind im übrigen in der Tat statischer Natur. Einige (Leuchtradien um "Glühwürmchen" z.B., sollen sich jedoch mit den Glühwürmchen mitbewegen. Hier kann ich auch keine Waits einsetzen, aus offensichtlichen Gründen...

    Eventuell hattest du eine andere Vorgehensweise im Sinn. Könntest du diese vielleicht kurz erläutern?

    Ferner ist mir gerade noch eine weitere Besonderheit aufgefallen:
    Wird das Spiel ganz neu gestartet und ein Spielstand geladen ergibt sich die Problematik nicht.
    Wird jedoch zum Titelbildschirm zurückgewechselt und bspw. besagter Spielstand erneut geladen: Auftreten des Bugs. Das klappt sozusagen pro Spielstart 1x pro Spielstand. Bei erneutem Laden dann der Bug...

    Geändert von AgentBlack (19.10.2014 um 17:36 Uhr)

  4. #4
    Welchen RPG Maker benutzt du denn? Auf den alten Makern kann man Bilder ja fest an ihrer Position verankern.

  5. #5
    Doch doch, das stimmt schon so. Welchen Maker verwendest du denn? Denn Show Picture > Erase Event ist exakt das, was ich beim 2003 mache und es funktioniert problemlos. Ich habe aber im Kopf, dass neuere Maker bei Show Picture wirklich nur noch das Bild anzeigen und Einstellungsmöglichkeiten wie Transparenz, etc. nur bei Move Picture verfügbar sind, stimmt das?

    Ein Workaround für die Switch-Sache wäre, zwei Events zu benutzen:

    Event 1 (Parallel Process)
    <>Set Switch [0001:LE An] = ON
    <>Erase Event

    Event 2 (Parallel Process, Switch 0001 muss an sein)
    <>Show Picture
    <>(Move Picture, sofern du bei Show Picture die Transparenz nicht einstellen kannst)
    <>Set Switch [0001:LE An] = OFF

    So wird der LE angezeigt, eingestellt und das Event dann deaktiviert. Betrittst du die Map neu, sorgt das erste Event dafür, dass der Switch wieder angestellt und der Lichteffekt angezeigt wird.

    Was die Glühwürmchen angeht: Die neueren Maker erlauben doch große Charsets und Halbtransparenz, warum fügst du den Lichteffekt nicht direkt dort ein? Ich habe mit den neueren Makern bislang kaum gearbeitet, daher kann ich da leider auch nur im Nebel stochern.

  6. #6
    Hallo Kelven,

    Ich verwende den RPG Maker 2003. Ich nehme an du meinst mit dem festen verankern das Häkchen bei "Picture scrolls with Map"? Das verwende ich bei statischen Lightmaps standardmässig. Und normalerweise funktioniert es auch so, dass das Bild nicht mit dem Helden herumwandert. Aber wie oben beschrieben scheint das wohl verloren zu gehen wenn ich ein Erase Event bei einem Picture-Event einfüge um das erwähnte dauernde und Performance-Intensive dauer-abspielen zu vermeiden.

    BDraw: Ich werde das gleich einmal ausprobieren Vielen Dank!

    Rückmeldung: Leider wird das Problem dadurch nicht gelöst :/

    Geändert von AgentBlack (19.10.2014 um 17:53 Uhr)

  7. #7
    Mach mal einen Screenshot von a) deinem Code und b) deinen Einstellungen bei Show Picture. Wie gesagt, erst Show Picture, dann Erase Event benutze ich selbst und es funktioniert bei mir einwandfrei. Auch beim Laden eines Spielstands, gerade getestet.

  8. #8
    So. Ich habe mal ein paar (relativ selbsterklärende) Screenshots beigefügt.
    Kleine Info noch: Ich verwende DynRPG um im RPG Maker 2003 ein bisschen "Effektreicher" arbeiten zu könne. Daran kann es jedoch nicht liegen, da sich die Probleme auch ohne Einsatz von speziellen Effekten replizieren lassen. Die 3 Lightmaps basieren auf einem von mir verwendeten "Layer-System" um ein optisch etwas ansprechenderes Ergebnis zu fabrizieren.

    Das Event ist das von mir ursprünglich verwendete bei dem bisher das besagte Lade-Problem auftritt.

    @Kelven: Mein Problem an sich ist nicht das fehlerfreie, zentrierte Anzeigen der Lightmap. Das habe ich bereits hinter mir (Gottseidank), sondern die Tatsache, dass aus mir unklaren Gründen die Transparenz der Lightmap nach dem laden des Speicherstandes komischerweise für kurze Zeit auf 0% runtergeht und sich erst kurz darauf normalisiert, so dass jedes mal wenn man lädt erst einmal die pure Lightmap ins Auge sticht. Ich meine die gleiche Problematik in ein paar anderen RPG Maker Games angetroffen zu haben, welche ich früher mal gespielt hatte. Kann allerdings nicht benennen welche das waren ... Dafür ist es dann doch zu lange her.

    Nochmal eine Anmerkung zu dem was bei mir passiert, wenn ich anstelle der Wait-Commands ein Erase Event setze:
    - Verlasse ich die Map und kehre zurück dauert es einen Bruchteil einer Sekunde bis die Lightmap (dann aber regelgerecht) angezeigt wird. Es gibt also jedes mal eine Art "Flackern". Das ist bei der Wait-Event Methode nicht der Fall.
    - Speichere ich ab und lade neu passiert wie gesagt folgendes: Wie beim Wait-Event wird die Lightmap mit 0% Transparenz angezeigt, das pendelt sich allerdings (anders als beim Wait-Event, wo dies so lange anhält, wie der Wait es vorgibt) nicht mit der Zeit ein, sondern erst, wenn ich die Map verlasse und wieder betrete. Dann wird die Lightmap wieder korrekt angezeigt.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken ShowPictureSetup.png   EventCommands.png   ProblemLight.png   LightmapOK.png  

    Geändert von AgentBlack (19.10.2014 um 18:44 Uhr)

  9. #9
    Benutzt du vielleicht absolute Koordinaten?

    Bei Maps, die größer als 20x15 sind, macht man das normalerweise so:

    Event in die Mitte der Map setzen.
    Im PP mit Lichteffekt Variablen mit Screen-X und -Y des Events setzen. Manchmal muss man die Werte ein wenig anpassen.
    Den Lichteffekt mit diesen Koordinaten anzeigen.

    Edit: Ach so, du machst es eigentlich richtig. Das "this Event" von deinem Beispiel liegt dann auch in der Mitte der Map?

    Geändert von Kelven (19.10.2014 um 18:32 Uhr)

  10. #10
    Eine Verzögerung sollte es bei einem Parallel Process eigentlich nicht geben. Das ist echt sehr seltsam.

  11. #11
    So ich habs jetzt noch einmal probiert:
    Vielleicht lags daran dass ich gerade nebenher noch ein anderes rechenintensives Programm laufen hatte, die kurze Verzögerung tritt nicht mehr auf! (Da stellt sich mir dann die Frage, ob es bei Systemen mit weniger Ressourcen trotzdem wieder auftritt. Ich habe mir wohl leider kein sonderlich systemfreundliches Lightmapsystem ausgesucht was die 3 Ebenen angeht...)

    Allerdings zerhauts bei verwenden des Erase Event immer noch die Transparenz wenn man den Speicherstand lädt.

    (Vielleicht etwas off-topic aber ich fands ebenso unerklärlich und amüsant: Wenn ich vorher The Elder Scrolls Morrowind gespielt habe, dann aufhöre und die CD dem Laufwerk entnehme und im Anschluss ein RPG Maker Game starte, so bekomme ich die Meldung, dass zuerst der Datenträger (CD) wieder ins Laufwerk gelegt werden müsse (bei einem RPG-Maker Game? x) ) Zumindest läuft es dann trotzdem wenn man 2x auf weiter klickt. Höchst mysteriös. Was da wohl noch im Code von RPG-Maker Games vergraben liegen mag? ^^)

    Geändert von AgentBlack (19.10.2014 um 19:04 Uhr)

  12. #12
    Benutzt du das Kazesui-Plugin für Blending?

  13. #13
    Genau das benutze ich

  14. #14
    Entferne das mal und schau, ob such vom Verhalten was ändert. Ich hab als ich das benutzen wollte auch komische Effekte gehabt. Hast die aktuellste Version?

    Oh, was mir noch grad einfiel: Es gibt Plugins, die dieser DynSave-Dateien entfernen. K.a. warum das gemacht wird. Kazesuis Blending braucht die Dateien aber afaik. Schau mal ob du sowas in deinem Ordner hast.

    Geändert von Corti (20.10.2014 um 17:00 Uhr)

  15. #15
    Die speziellen Dyn-Saves sind alle vorhanden. Die aktuelle Version sollte ich haben, ja. Worin bestanden denn die komischen Effekte bei dir? Ich schau mal was passiert wenn ich das ganze ohne das Blending-Plugin mache.

    So. Ich hab mal ein kleines Testprojekt ohne das Plugin erstellt und siehe da: Keine Probleme in Hinsicht auf Erase-Event. Und auch keine Probleme wenn ich simple Waits hintendran setze. ...

    Die Frage ist: Wo bin ich jetzt genau drauf gestoßen und wie ließe sich das umgehen? ^^ Wird an dem Plugin noch gebastelt? Ich hab mich so gefreut, dass mir damit selbst im 2003er - Maker Blending-Effekte zur Verfügung stehen, die die Lightmaps viel viel ansehnlicher machen..

    Kann es sein, dass Kazesuis Blending Mode gar keine Transparenz unterstützt und dass dort mein Problem zu suchen wäre :S?

    Geändert von AgentBlack (20.10.2014 um 17:31 Uhr)

  16. #16
    Als ich aus Kaze's Code meine Version geclont habe damals hatte er keine Transparenz. War aber nicht seine letzte Version damals, daher kann ich das nicht sicher bestätigen.

  17. #17
    Oh je ... / o \ ich hoffe ich bin wirklich versionsmässig einfach nicht ganz auf dem laufenden. Aber die letzte die ich sehe ist von 2013 und ich hab mir erst dieses Jahr die im entsprechenden Thread verlinkte Version heruntergeladen. Ich hab sogar extra mein ganzes game vom 2000er auf den 2003er rübergewurschtelt um diesen grafischen Leckerbissen genießen zu können. Du scheinst dich mit der Materie besser auszukennen. Wenn es eine Möglichkeit gibt mein derzeitiges Projekt dahingehend irgendwie anzupassen, so dass Transparenz zusammen mit dem Plugin einsetzbar ist, lass es mich bitte wissen... Ansonsten liegt das Projekt jetzt wohl erst einmal auf Eis :/

  18. #18
    Kazesui hat'n Topic, push das und frag um Rat. Ich schau morgen mal nach meinem Code für Transparenz, evtl. kann man den ja leicht übernehmen.

    Ansonsten: Nicht verzweifeln, makern ist ein einziger Workaround, lern es lieben oder lass es ;-)

  19. #19
    Hab mal einen Beitrag in den Thread von Kazesui hinterlassen. Vielen Dank für deine Hilfe Corti! Wäre echt klasse, wenn sich das Problem auf die ein oder andere Art und Weise lösen ließe ^^ Und ja ... workarounds ... x)

Stichworte

Berechtigungen

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