Ergebnis 1 bis 20 von 1418

Thema: Technik-Sammelthread für Probleme und Antworten

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Ich hab versucht Kompatibilität zu wahren, aber ja, natürlich funktionieren dann alle neuen Sachen nicht (und du musst dich aber erinnern, welche das sind - schau z.B. im Changelog http://tinyurl.com/rm2003cl, da hab ich extra Editor-Änderungen und Engine-Änderungen getrennt beschrieben), und dein Editor und deine Engine verwenden verschiedene RTP-Versionen, d.h. manche RTP-Grafiken die du im Editor siehst werden in der Engine nicht gefunden, und umgekehrt. Mit all dem kann man aber arbeiten, wenn man weiß wie, natürlich. Man kann auch die Aufforderung, die RPG_RT.exe zu aktualisieren, auf "don't ask me again" schalten (und sollte man sich irgendwann mal doch umentschieden haben, kann man Shift gedrückt halten beim Öffnen des Projekts, dann kommt die Aufforderung wieder.)

    Das einzige was du verlierst (was eh keiner braucht, mMn) ist die Einstellung "Bottom Half Transparency" bei Pictures.

    @Inno: Da du ja eh den RM2k9U verwendest, kannst du auch mal ausprobieren, was passiert wenn du an den Schriftgrößen unter "[FontReplacements]" in der ultimate.ini schraubst. Für die Fenstergrößen an sich könntest du den Goliath Patch von Aten dir mal anschauen, ich bilde mir ein der macht auch Fenster größer. (Geht auch in Kombination mit dem Ultimate natürlich.)

    Geändert von Cherry (22.02.2021 um 09:16 Uhr)

  2. #2
    Zitat Zitat von G-Brothers Beitrag anzeigen
    Ich kenne da eine Lösung. Man kann auch den offiziell lokalisierten RPG Maker 2003 verwenden und dann das neue RPG_RT durch das alte (mit DynRPG) ersetzen. Die Schrift ist bei diesem Maker ein bisschen grösser und man kann den Eventeditor sogar als Vollbild schalten.
    Coole Sache, dass das überhaupt geht, aber ehrlich gesagt traue ich mich das nicht ^^; Ich behalte es aber im Hinterkopf

    Zitat Zitat von Cherry Beitrag anzeigen
    @Inno: Da du ja eh den RM2k9U verwendest, kannst du auch mal ausprobieren, was passiert wenn du an den Schriftgrößen unter "[FontReplacements]" in der ultimate.ini schraubst. Für die Fenstergrößen an sich könntest du den Goliath Patch von Aten dir mal anschauen, ich bilde mir ein der macht auch Fenster größer. (Geht auch in Kombination mit dem Ultimate natürlich.)
    Nach etwas reinlesen und ausprobieren habe ich
    Code:
    1=MS UI Gothic,0,MS Shell Dlg,10
    mal hinten auf 15 gestellt und es ist nun wesentlich angenehmer zu lesen

    Ich hab mir zudem mal den Goliath Patch angesehen, aber ich denke, dass ich ihn nicht nutzen kann, da er hierfür eine andere Exe vorraussetzt. Ich meine mich zu erinnern, dass ich bereits eine modifizierte exe für mein Projekt verwende, aber da müsste ich Corti mal fragen. Daher lasse ich vorerst mal die Finger davon, aber heruntergeladen ist der Patch schon mal

    Übrigens, falls es interessant ist:
    Ich hab aus Jux mal meine Urversion vom rm2k3 geöffnet und da ist die Auflösung/Größe anders:



    Im Vergleich zum rm2k9U:


    (Natürlich jetzt mit der vergrößerten Font auf 15)

    An sich wäre mir die Größe der Map und des Event-Editors vom rm2k3 lieber, aber dafür ist sie wieder unscharf, was meinen Augen auch nicht gerade gut tut. Dann lieber über den rm2k9U mit der geänderten Font

    Danke noch mal an allen für die Ratschläge!

    - Das Inno -

  3. #3
    Hm, es scheint so, als würde Windows beim einen DPI-Skalierung anwenden (drum größer aber unscharf) und beim anderen nicht, wobei ich nicht weiß wieso.

  4. #4
    Das Problem habe ich auch sehr häufig bei verschiedenen Programmen, da muss man einfach die Eigenschaften der .exe-Datei aufrufen und unter Kompatibilität die DPI-Einstellungen anpassen (lassen). Weiß aber auch nicht, warum Windows das ständig macht, vermutlich hat es was mit dem Alter der Programme oder sowas zu tun, weil ich bei neueren Spielen/Programmen das nie machen muss.

  5. #5
    Habe mal wieder eine Frage:

    Bezüglich Lautstärken von Soundeffekten und wie diese sich verändern, wenn der Held sich der "Lärmquelle" nähert.
    Ich habe vor, dies für meine Wasserfälle im Spiel umzusetzen. Leider kenne ich mich trotz langer Makernutzung mit 80% vom Eventcode und dessen Befehlen nicht so gut aus. Doch ich traue mich jetzt einfach mal zu fragen und eventuelle Wissenslücken zu schließen.^^

    Bislang löse ich das so (wahrscheinlich viel zu umständlich, deswegen hier auch geschildert):
    Parallel Process Event auf der Map
    Erste Eventseite:
    Play Soundeffect (mit reduzierter Lautstärke)
    plus Wait Befehl in Länge des Soundeffektes

    Zweite Eventseite, getriggert durch Switch:
    Play Soundeffect (mit voller Lautstärke)
    plus Wait Befehl in Länge des Soundeffektes

    Dazu mache ich auf jeder Map dementsprechend Events am Boden, die den Switch oben triggern, wenn der Held nahe genug am Wasserfall ist, triggert Eventseite 2 (oder sich wieder entfernt, triggert Eventseite 1).

    Dabei kam mir der Gedanke: Das muss doch bestimmt mit anderen Befehlen schneller und effektiver zu lösen sein, doch ich hab keine Ahnung welche und wie. Habt ihr Ideen wie es besser geht? Gerne auch in Makercodeform, dass ich mich da mal endlich reinfuchsen kann.
    Komme mir gerade vor wie der Ochs vorm Berg.^^

  6. #6
    Ja, geht in der Tat einfacher. Ich würde die Distanz des Heros zum Event berechnen, wie es mir Corti vor einigen Jahren (zum Glück) mal beigebracht hat.

    Der Code dazu sieht so aus:

    Code:
    
    @> Control Variables: [Hero X] = Player's X Coordinate
    @> Control Variables: [ Hero Y] = Player's Y Coordinate
    @> Control Variables: [Event X] = [Event]'s X Coordinate
    @> Control Variables: [Event Y] = [Event]'s Y Coordinate
    @> Control Variables: [Hero X] -= Variable [Event X]
    @> Control Variables: [Hero Y] -= Variable [Event Y]
    @> Conditional Branch: Variable [Hero X] < 0
      @> Control Variables: [Hero X] *= -1 
      @>
     : Branch End
    @> Conditional Branch: Variable [Hero Y] < 0
      @> Control Variables: [Hero Y] *= -1 
      @>
     : Branch End
    @> Conditional Branch: Variable [Hero X] < 5
      @> Conditional Branch: Variable [Hero Y] < 5
        @> Variable/Switch 
        @>
       : Else
        @> 
        @>
       : Branch End
      @>
     : Else
      @> C
      @>
     : Branch End
    Das ganze ist ein PP-Event, was auf der Map liegt, mit einem 0.0 Wait.
    Du subtrahierst quasi die Koordinaten des Events von denen des Heros, prüfst, ob ggf. Negative werte rauskommen und machst daraus positive. Damit hast du die Entfernung bestimmt.
    Jetzt kannst du in einer Abfrage festlegen, dass die Entfernung in beiden Achsen wie in meinem Bsp unter 5 liegen muss.
    Das Sound-Event würde ich ehrlich gesagt mit einer Variable steuern. Damit könntest du sogar sowas wie 5 Abstufungen der Lautstärke machen. Oder den Sound auch erst ab einer bestimmten Nähe anschalten.

    Falls du das für mehrere Events/Lärmquellen machen möchtest, würde ich alles ab der 5.Zeile in ein Common Event packen.

    Schau mal, ob du damit klar kommst, ansonsten, melde dich.

  7. #7
    Hey IndependentArt!

    Vielen Dank, das klappt schon mal ganz gut.
    So hab ich dann mal nach deiner Beschreibung den Code gestrickt.


    Code:
    @> Wait: 0.0 seconds
    @> Control Variables: [0115:Helden Koord. x] = Player's X Coordinate
    @> Control Variables: [0116:Helden Koord. Y] = Player's Y Coordinate
    @> Control Variables: [0117:Wasserfall X] = [Mittelpunkt Wasserfa]'s X Coordinate
    @> Control Variables: [0118:Wasserfall Y] = [Mittelpunkt Wasserfa]'s Y Coordinate
    @> Control Variables: [0115:Helden Koord. x] -= Variable [0117]
    @> Control Variables: [0116:Helden Koord. Y] -= Variable [0118]
    @> Conditional Branch: Variable [0115:Helden Koord. x] < 0
      @> Control Variables: [0115:Helden Koord. x] *= -1 
      @>
     : Branch End
    @> Conditional Branch: Variable [0116:Helden Koord. Y] < 0
      @> Control Variables: [0116:Helden Koord. Y] *= -1 
      @>
     : Branch End
    @> Conditional Branch: Variable [0115:Helden Koord. x] < 5
      @> Conditional Branch: Variable [0116:Helden Koord. Y] < 5
        @> Control Variables: [0119:Nähe Wasserf. Sound] = 1 
        @>
       : Else
        @> Conditional Branch: Variable [0115:Helden Koord. x] < 8
          @> Conditional Branch: Variable [0116:Helden Koord. Y] < 8
            @> Control Variables: [0119:Nähe Wasserf. Sound] = 2 
            @>
           : Else
            @> Conditional Branch: Variable [0115:Helden Koord. x] < 12
              @> Conditional Branch: Variable [0116:Helden Koord. Y] < 12
                @> Control Variables: [0119:Nähe Wasserf. Sound] = 3 
                @>
               : Else
                @> Conditional Branch: Variable [0115:Helden Koord. x] < 15
                  @> Conditional Branch: Variable [0116:Helden Koord. Y] < 15
                    @> Control Variables: [0119:Nähe Wasserf. Sound] = 4 
                    @>
                   : Else
                    @> Conditional Branch: Variable [0115:Helden Koord. x] >= 15
                      @> Conditional Branch: Variable [0116:Helden Koord. Y] >= 15
                        @> Control Variables: [0119:Nähe Wasserf. Sound] = 5 
                        @>
                       : Else
                        @>
                       : Branch End
                      @>
                     : Else
                      @>
                     : Branch End
                    @>
                   : Branch End
                  @>
                 : Else
                  @>
                 : Branch End
                @>
               : Branch End
              @>
             : Else
              @>
             : Branch End
            @>
           : Branch End
          @>
         : Else
          @>
         : Branch End
        @>
       : Branch End
      @>
     : Else
      @>
     : Branch End
    Mein Problem:
    Also lauter wird es je näher ich komme, aber es dauert zu lange bis es wieder leiser wird, wenn sich der Held dem Event entfernt.
    So habe ich das andere Event aufgebaut, vielleicht hab ich da einen Fehler drin?

    Beispielseite:
    Code:
    @> Play SE: 'Waterfall-SoundBible.com-1597727655', 100, 100, 50
    @> Wait: 25.7 seconds

    Da fehlt mir irgendein Befehl, um den Wasserfallsound jederzeit zu unterbrechen, bzw. mit veränderter Lautstärke neu zu starten. Wie kann ich das machen?

  8. #8
    Zitat Zitat von Ben Beitrag anzeigen
    So hab ich dann mal nach deiner Beschreibung den Code gestrickt.
    Sieht wahrscheinlich gerade nur im Forum so für mich aus, aber funktioniert deine Abfrage aktuell nicht nur, wenn der Held auf der X Achse nur 5 Felder entfernt ist?

  9. #9
    Zitat Zitat von Linkey Beitrag anzeigen
    Sieht wahrscheinlich gerade nur im Forum so für mich aus, aber funktioniert deine Abfrage aktuell nicht nur, wenn der Held auf der X Achse nur 5 Felder entfernt ist?

    Wie meinst du das? Ich habe in dem Beispiel gleich alle für mich relevanten Entfernungen eingebaut. hat sich da ein Fehler eingeschlichen?

    @Cherry: Danke, das probiere ich gleich mal!

    Edit:
    Hab das jetzt so eingebaut
    Code:
    @> Play SE: 'Waterfall-SoundBible.com-1597727655', 0, 100, 50
    @> Play SE: 'Waterfall-SoundBible.com-1597727655', 0, 100, 50
    @> Play SE: 'Waterfall-SoundBible.com-1597727655', 0, 100, 50
    @> Play SE: 'Waterfall-SoundBible.com-1597727655', 0, 100, 50
    @> Play SE: 'Waterfall-SoundBible.com-1597727655', 100, 100, 50
    @> Wait: 25.7 seconds
    Ändert nichts dran, dass es gleich lauter wird, wenn der Held sich dem Wasserfall nähert, aber nicht mehr wirklich leiser... hab alle Seiten so aufgebaut bis auf den Trigger als Variable. Was übersehe ich?

  10. #10
    Nur so nebenbei- spricht etwas dagegen, den Sound als BGM und die BGM stattdessen als Sound abzuspielen? Wäre eleganter gelöst. So kannst du die Lautstärke auch während des Abspielens und ohne Unterbrechung/ Neustarten anpassen.

  11. #11
    Naja die Logik ergibt so nicht so viel Sinn, da du alles verschachtelst hast aber eigentlich immer 2 Dinge überprüfst. Es ist so, wie Linkey schrieb, es wird z.B. gar nichts gemacht wenn der Held horizontal mehr als 5 Felder weg ist.

    Das wäre zu lösen indem du die Bedingungen einfach untereinander packst anstatt verschachtelt, aber selbst dann stimmts nicht weil wenn die Entfernung in X und Y verschieden ist, wird in vielen Fällen wieder gar nichts passieren.

    Was du wirklich brauchst ist eine tatsächliche Distanz (Länge des Distanzvektors), die wäre die Quadratwurzel aus x²+y² (Pythagoras). Jetzt hat der Maker zwar keine Wurzelfunktion, aber das macht nichts weil du halt stattdessen nicht mit der gewünschten Entfernung d (z.B. 5) sondern mit dem Quadrat davon d² (z.B. 25) vergleichen kannst (d²=x²+y²).

    Außerdem willst du ja nur dann den Sound erneut abspielen, wenn sich die Lautstärke geändert hat, oder wenn er durchgelaufen ist, d.h. wir müssen auf die Änderung überprüfen und anstatt eines statischen Waits einen Framezähler nehmen der bis zu 25.7 Sekunden = 1542 Frames zählt.

    Mein Vorschlag wäre daher folgender:

    Code:
    * Var X = X von Held
    * Var Y = Y von Held
    * Var X -= X von Wasserfall
    * Var Y -= Y von Wasserfall
    * Var X *= Var X <<< hier brauchen wir keine Überprüfung auf negative Zahlen mehr, weil wir den Wert eh quadrieren
    * Var Y *= Var Y
    * Var DistanzQuadrat = X
    * Var DistanzQuadrat += Y
    * Var NeueLautstärke = 0
    * If DistanzQuadrat < 225 <<< d.h. <15 Felder (quadriert)
    ... * Var NeueLautstärke = 1
    : end
    * If DistanzQuadrat < 144 <<< d.h. <12 Felder (quadriert)
    ... * Var NeueLautstärke = 2
    : end
    * If DistanzQuadrat < 64 <<< d.h. <8 Felder (quadriert)
    ... * Var NeueLautstärke = 3
    : end
    * If DistanzQuadrat < 25 <<< d.h. <5 Felder (quadriert)
    ... * Var NeueLautstärke = 4
    : end
    * If Var NeueLautstärke != Var AktuelleLautstärke <<< hat sich die Lautstärke geändert?
    ... * Var ZeitÜbrig = 0 <<< direkt neues Abspielen des Sounds auslösen
    ... * Var AktuelleLautstärke = Var NeueLautstärke
    : end
    * If Var ZeitÜbrig <= 0
    ... * Play SE 0% <<< zuerst alten Sound stoppen
    ... * Play SE 0%
    ... * Play SE 0%
    ... * Play SE 0%
    ... * If Var AktuelleLautstärke == 1 <<< Hinweis: Überprüfung auf Lautstärke 0 nicht nötig weil der Sound dann einfach gar nicht gespielt wird
    ... ... * Play SE 25%
    ... : end
    ... * If Var AktuelleLautstärke == 2
    ... ... * Play SE 50%
    ... : end
    ... * If Var AktuelleLautstärke == 3
    ... ... * Play SE 75%
    ... : end
    ... * If Var AktuelleLautstärke == 4
    ... ... * Play SE 100%
    ... : end
    ... * Var ZeitÜbrig = 1542 <<< Dauer des Sounds in Frames (25.7s * 60 FPS = 1542)
    * Var ZeitÜbrig -= 1 <<< verbleibende Zeit für den Sound bis zum Loopen um 1 Frame runterzählen
    (kein Wait 0.0 nötig, denn da das ein Parallel Process ist, wird ohnehin 1 Frame gewartet bis das Event wieder von vorne anfängt)
    Um das ganze zu resetten, z.B. wenn man die Map frisch betritt, einfach ZeitÜbrig auf 0 setzen.

    An deiner Stelle würde ich für die Abfrage der Koordinaten des Wasserfalls direkt "This Event" verwenden und den Code in das Wasserfall-Zentrums-Event selber packen. Dann kannst du es beliebig auf andere Maps kopieren ohne was zu ändern (bzw. nur den Sound zu ändern, wenn nötig).

    Das ganze hat noch einen Haken: Wenn keine Events ausgeführt werden können, z.B. wenn man ins Menü geht oder eine Screentransition stattfindet (Show/Hide Screen), wird der Zähler auch nicht reduziert (das Problem hättest du mit deinem Wait aber auch), d.h. danach glaubt der das Spiel, der Sound ist weniger weit fortgeschritten, als er wirklich ist, und es entsteht eine Lücke wenn der Sound ausläuft, das Game es aber noch nicht weiß. Das könnte man zumindest einigermaßen abfedern indem man den Sound in der Sounddatei selber mehrfach geloopt reinmacht und aber trotzdem für den Zähler die einfache Länge verwendet, dann gibts zumindest einen Puffer, wo es nicht auffällt wenn man kürzer als dieser Puffer lang ist sich im Menü o.ä. befindet.

    @Nagasaki: Ich würde vermuten, die Tatsache dass Sound-Effekte nicht MIDI oder MP3 sein können und auch nicht automatisch gespeichert, beendet und wiederhergestellt werden wenn man z.B. kämpft, und auch unterbrochen werden würden wenn man ins Menü geht und dazwischen die Musik ausläuft (was sicher mehr auffällt als beim Sound) wird wohl dagegen sprechen... Aber je nach Rahmenbedingungen kanns natürlich eine interessante Herangehensweise sein. (Neuere Maker haben genau dafür ja BGS...)

    Geändert von Cherry (24.02.2021 um 14:39 Uhr)

  12. #12
    Das ergibt Sinn.

  13. #13
    @Cherry:
    Vielen Dank für deinen Code und die Erklärung. Ich schaue morgen mal in Ruhe, ob ich das eingebaut kriege.

Berechtigungen

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