Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 41 bis 60 von 98

Thema: [DynRPG] RPGSS

  1. #41
    Neuer Release

    rpgss-0.7.0.7z

    Code:
    Changes between 0.7.0 and 0.6.0
    -------------------------------
    
      * Refactored scripts.
      * Added generic boot.lua.
      * Switched to Azura image I/O library.
      * Added option to write palletized images.
    Skripte wurden überarbeitet, es gibt nun eine generische boot.lua und man kann nun Bilder in 8-Bit speichern, die der RPG Maker lesen kann.

  2. #42
    Zitat Zitat von Kyuu Beitrag anzeigen
    und man kann nun Bilder in 8-Bit speichern, die der RPG Maker lesen kann.
    Yesssss! Gibts ein Beispiel dafür, wie man die in 8-Bit speichert?
    EDIT: Ah, nevermind, schon gefunden. palletize P:

    EDIT EDIT: Wäre es möglich eine Funktion einzubauen, um festzulegen, welche Farbe transparent wird? So gesehen wählt er einfach eine Farbe willkürlich aus, und das ist doof.

    Geändert von goldenroy (08.06.2014 um 23:54 Uhr)

  3. #43
    Zitat Zitat von goldenroy Beitrag anzeigen
    EDIT EDIT: Wäre es möglich eine Funktion einzubauen, um festzulegen, welche Farbe transparent wird? So gesehen wählt er einfach eine Farbe willkürlich aus, und das ist doof.
    Die Information, welche Farbe transparent ist, wird leider nicht im Dateiformat gespeichert, sondern wird erst im Resource Manager des Makers festgelegt. D.h. hast du im Maker festgelegt, dass beispielsweise die dritte Farbe der Palette transparent ist, lässt sich diese Information nicht in der Datei selbst bearbeiten. Beim Quantisieren (also Reduzieren der Farben auf 256) kann es außerdem dazu kommen, dass Farben vermischt werden, d.h., auch wenn man direkt eine transparenten Farbe, z.B. #FF00FF, angeben könnte, könnte diese nach dem Quantisierungsprozess nicht mehr vorhanden sein, weil sie mit einer anderen vermischt und z.B. zu #FF10FF wurde. ;(

    Wofür genau brauchst du das denn? Eventuell lässt sich ja eine Lösung finden, ich möchte aber nichts versprechen.

  4. #44
    Die Transparenzfarbe ist nicht willkürlich und die wird auch nicht ausserhalb der Datei irgendwo gespeichert. Es ist der erste Platz in der Farbpalette. Beim Import im Maker wird die geklickte Transparenzfarbe auf Palettenplatz 0 umbelegt.

  5. #45
    Doch, die transparente Farbe wird in der jeweiligen Datei gespeichert. Transparent ist immer der Farbeintrag an Palettenindex 0. Beim Importieren tauscht der Maker lediglich die Einträge entsprechend aus.

    Ein paar Bilder zur Verdeutlichung:

    Testbild und dazugehörige Palette:



    Beim Importieren habe ich dann das Gelb oben rechts als Transparenzfarbe gesetzt und der Maker hat die Palette ensprechend umgeändert (und auf 256 Einträge erweitert):



    Edit: Verdammt Corti, nachdem ich so viele schöne Bilder gemacht habe D:

  6. #46
    Stimmt, in der DynRPG-Referenz zu Image::useMaskColor steht auch etwas, woraus man das ableiten kann:
    Zitat Zitat
    If true, color 0 will be used as transparent color.
    Danke! Jetzt muss ich mir nur überlegen (bzw. testen), wie man sinnvoll eine Farbe übergeben kann, da das Problem, dass die Farben nach dem Quantisieren möglicherweise nicht mehr die gleichen sein könnten, immernoch besteht. :/

  7. #47
    Zum Beispiel zuerst eine Maske anlegen die besagt wo überall diese Farbe vorkommt, dann auf 255 Farben quantisieren, dann die 256. Farbe (#0) explizit für die Transparenz nutzen (anhand der Maske die Pixel auf die #0 Farbe setzen und ihr als Paletteneintrag den originalen Farbcode geben).

    Vielleicht geht das aber auch einfacher, hängt von deiner Library ab...

  8. #48
    Gute Idee, danke! Wobei extra eine Maske anlegen nicht nötig ist, da das Ursprungsbild bereits die notwendigen Informationen hat, d.h. einfach das Ursprungsbild durchlaufen und im quantisierten Bild überall dort die Pixel auf Index 0 setzen, wo im Ursprungsbild die Transparenzfarbe vorkommt. Das einzige Problem dabei ist, dass ich auf 255 Farben statt auf 256 reduzieren müsste und das ist in der momentanen Schnittstelle meiner Image-Bibliothek nicht vorgesehen, um die Komplexität gering zu halten. Der Quantisierungsprozess selbst würde auch mit einem Farbenlimit != 256 funktionieren. In meiner momentanen Lösung gehe ich einfach die resultierende Palette durch und wenn ich auf die Transparenzfarbe stoße (und diese sich nicht bereits auf Index 0 befindet) schiebe ich diese (mit allen dazugehörenden Änderungen im Pixelbuffer) auf Index 0. Das funktioniert auch recht gut soweit ich das getestet habe, vermutlich aber auch nur solange die Transparenzfarbe sich deutlich von den anderen Farben unterscheidet, d.h. der Abstand im Farbraum zu den anderen Farben groß genug ist (in dem Fall wird die Farbe nämlich als ein eigener Cluster angesehen und nicht mit anderen Farben vermischt). Ich behalte mal deine Idee im Hinterkopf. Danke nochmal.

  9. #49
    Kurze Frage:

    Was zwingt dich, die Farbpalette für einzelne Bilddateien bei 8bit zu belassen? Angesichts der Tatsache, dass der Buffer des 2k(3) nativ insgesamt 15bit Farbtiefe zulässt und DynRPGSS ja scheinbar mit eigenen Buffern und anderem Grafik-Gedings arbeitet.

    Edit:
    Meinte das eher bezogen auf die Transparenzvergabe. Meine Frage hat sich damit eh erledigt.

    Geändert von bugmenot (11.06.2014 um 20:14 Uhr)

  10. #50
    Das ist nur ein kleines Feature für die, die es brauchen (also RPGSS-Images als 8-Bit-Bilder speichern zu können, die sonst immer als 24-Bit-Bilder plus Alphakanal gespeichert werden). Nützlich z.B. wenn man im Maker importierte Grafiken wie etwa Hintergrundbilder manipulieren will. In dem Fall muss nämlich das ersetzende Bild in 8-Bit sein, sonst kann der Maker die Datei nicht laden. ;)

  11. #51
    ich unternehme grad versuche, mir ein bild mit alpha kanal anzeigen zu lassen. ich bin nicht sicher, was ich falsch mache, aber so recht will es noch nicht klappen.

    anzeige im maker:
    Klicke auf die Grafik für eine größere Ansicht 

Name:	bam.JPG 
Hits:	21 
Größe:	40,4 KB 
ID:	20559

    ausgangsbild:
    Klicke auf die Grafik für eine größere Ansicht 

Name:	Sequenz 0.1.png 
Hits:	24 
Größe:	15,4 KB 
ID:	20560

    irgendwie scheint die transparenz falsch interpretiert zu werden. wobei ich mich auch gefragt hab, warum es keine "normale" anzeige funktion gibt, sondern nur subtract, add etc., kann auch daran liegen. ist das nicht vorgesehen?

    noch eine frage: womöglich hab ich das überlesen, aber kann ich pictures auch wie bei dynPEC mit variablen ansteuern? bzw. kann ich alle werte bei der picture anzeige auch mit variablen ersetzen?

  12. #52
    Zitat Zitat von IndependentArt Beitrag anzeigen
    irgendwie scheint die transparenz falsch interpretiert zu werden. wobei ich mich auch gefragt hab, warum es keine "normale" anzeige funktion gibt, sondern nur subtract, add etc., kann auch daran liegen. ist das nicht vorgesehen?
    Für Alpha-Kanal-Blending verwende den "mix" blend mode.

    Fall du bereits "mix" verwendest (laut Resultat scheint es aber eher "subtract" gewesen zu sein), poste mal deinen Code.

    Wenn du nähere Erläuterungen zu den einzelnen Blend Modes brauchst, gib einfach Bescheid!

    Zitat Zitat von IndependentArt Beitrag anzeigen
    noch eine frage: womöglich hab ich das überlesen, aber kann ich pictures auch wie bei dynPEC mit variablen ansteuern?
    Du meinst statt über eine Zeichenkette (Name), über eine numerische ID? Noch nicht, aber ich baue es für dich ein.

    Zitat Zitat von IndependentArt Beitrag anzeigen
    bzw. kann ich alle werte bei der picture anzeige auch mit variablen ersetzen?
    Klar, das sollte bei allen Werten bereits möglich sein, die keine Zeichenketten sind, also Position, Z, Skalierung, Rotation, Quellrechteck, etc.

    Wenn du mehr Fragen hast, stell sie ruhig, ich werde sie dir gerne beantworten.

    Geändert von Kyuu (16.06.2014 um 19:04 Uhr)

  13. #53
    hab das mit der anzeige erstmal soweit hinbekommen.

    Zitat Zitat
    Du meinst statt über eine Zeichenkette (Name), über eine numerische ID?
    Ähm, nummern wären vielleicht auch nicht verkehrt, wenn bisher nur buchstaben möglich sind.
    aber eigentlich meinte, ich, ob man bestimmen kann, welches picture aufgerufen wird auf der basis von einer variable. ehrlich gesagt, weiß ich selbst nicht mal genau was ich damit meine, aber bei dynPEC hab ich halt die anzeigen meiner gegner im kampf so in der art gemacht, wobei man nochmal differenzieren muss, weil es da eben über diese spritesheets ging, wo ich dann eben die spalte des sheets mit der variable angezeigt hab. ... so wichtig ist das auch nicht, vielleicht. ich seh bei diesen "Pointer"-geschichten, so nennt man das glaub ich, noch nich so recht durch.

    wie geb ich denn bei den anderen werten die variable an? diese form: "var0000"?

  14. #54
    Zitat Zitat von IndependentArt Beitrag anzeigen
    Ähm, nummern wären vielleicht auch nicht verkehrt, wenn bisher nur buchstaben möglich sind.
    Im Grunde sollte man bereits jetzt (durch zu optimistisches Programmieren von mir) numerische IDs verwenden können, es wird aber spätestens beim Speichern zu einer Fehlermeldung kommen, da von Zeichenketten als Bezeichner ausgegangen wird. Das wird sich auch in Zukunft nicht ändern um das Skript nicht zu kompliziert zu machen, nur werde ich die Schnittstelle (also die "Befehle", die du per Event-Kommentar verwendest) so überarbeiten, dass numerische IDs im Hintergrund zu Zeichenketten konvertiert werden.

    Zitat Zitat von IndependentArt Beitrag anzeigen
    aber eigentlich meinte, ich, ob man bestimmen kann, welches picture aufgerufen wird auf der basis von einer variable. ehrlich gesagt, weiß ich selbst nicht mal genau was ich damit meine, aber bei dynPEC hab ich halt die anzeigen meiner gegner im kampf so in der art gemacht, wobei man nochmal differenzieren muss, weil es da eben über diese spritesheets ging, wo ich dann eben die spalte des sheets mit der variable angezeigt hab. ... so wichtig ist das auch nicht, vielleicht. ich seh bei diesen "Pointer"-geschichten, so nennt man das glaub ich, noch nich so recht durch.
    Beim Lesen dachte ich erst, du meinst sowas wie "MeinBild" + V123 + ".png", also dass der Dateiname dynamisch zusammengebaut wird, aber nachdem ich mir DynPEC genauer angesehen habe, verstehe ich was du meinst. Im Prinzip ist das bereits möglich (durch Angabe des Quellrechtecks, siehe set_sprite_source_rect), wenn auch etwas umständlicher. Ich werde das aber noch weiter vereinfachen, so dass man ein Quellrechteck auch anhand einer ID auswählen kann.

    Wenn du möchtest, können wir uns mal im IRC oder so treffen und ich erkläre dir alles, was du wissen möchtest, bzw. wo du noch Unklarheiten hast im Detail. Melde dich einfach mal, wenn du Lust hast.

    Zitat Zitat von IndependentArt Beitrag anzeigen
    wie geb ich denn bei den anderen werten die variable an? diese form: "var0000"?
    Genau so wie auch bei allen anderen DynRPG-Plugins: V<ID> (ohne "<" und ">") Also z.B.:

    Code:
    @call add_sprite, "bla", "Picture/bla.png", "mix", V1, V2, V3, V4, V5, V6
    Das holt sich die Werte für die Parameter visible, z, x, y, scale und angle entsprechend aus den Variablen #1, #2, #3, #4, #5 und #6. Variablen-Lookup (so nennt man das) funktioniert auch mit beliebiger Verschachtelungstiefe, also VV1, oder VVVVV1 würde auch funktionieren (wobei das nicht bedeutet "hole Wert aus Variable #1, sondern "solange Anzahl Vs > 1: hole Wert als Variable-ID und wiederhole Lookup, sonst: hole Wert"), ist aber wahrscheinlich ab einer Verschachtelungstiefe > 2 nicht mehr praktikabel.

    Geändert von Kyuu (17.06.2014 um 13:04 Uhr)

  15. #55
    Wollte die nächste Version eigentlich schon vor einer Woche oder so veröffentlichen, habe mich dann aber entschieden die ganzen Änderungen, die ich schon lange vor mir herschiebe, endlich hinzuzufügen. Und hier ist das Ergebnis:

    Neuer Release

    rpgss-0.8.0.7z

    Code:
    Changes between 0.8.0 and 0.7.0
    -------------------------------
    
      * Added onSystemBackgroundDrawn callback.
      * Added keyboard.getVirtualKeyCode.
      * Added keyboard.getState.
      * Added mouse.getState.
      * Mouse position is now clipped to screen dimensions.
      * Added Sound.pitch.
      * Renamed Sound.repeat to Sound.loop to avoid collision with Lua's
        "repeat" keyword.
      * Added graphics.newSystemFontImage.
      * Added option to graphics.writeImage to force a particular color as
        the first palette entry in palletized images.
      * Added game.frameRate.
      * Added game.millisPerFrame.
      * Added game.frameCounter.
      * Added game.playTime.
      * Added game.system.graphicFilename.
      * Added game.menu.scene.
      * Added game.menu.allowed.
      * Added game.menu.saveAllowed.
      * Added game.menu.teleportAllowed.
      * Added game.menu.escapeAllowed.
      * Added game.battle.layout.
      * Added game.battle.atbMode.
      * Added game.battle.speed.
      * Added game.map.existsEvent.
      * Added game.map.findEvent (replaces game.map.findEventById and
        game.map.findEventByName).
      * game.map.moveCamera now behaves as expected (positive offsets move toward
        positive infinity, negative offsets move toward negative infinity).
      * Renamed control mode and layer constants for brevity.
      * Added Character:move.
      * Renamed game.music.fadeOut to game.music.fade for consistency.
      * Added a temporary workaround in game.screen.drawq that fixes the issue
        that the TexturedQuad primitive ignores the source rect position.
      * Moved screen drawing code into its own module for reasons of clarity
        and improved maintainability.
      * Anything rendered to the screen is now affected by the screen brightness
        to avoid sticking out during transitions.
      * Added bitmap versions of the system fonts msmincho and msgothic, as well
        as initial versions of the system window skins.
      * The # (length) operation now works on proxies returned by properties
        like game.party, game.map.events, game.battle.enemies, etc.
      * Refactored and restructured existing system scripts for improved
        modularity and maintainability.
      * Added class.lua (allows for solid object-oriented programming in Lua;
        powered by Yonaba's 30log library).
      * Added Cache.lua (allows caching of frequently used resources like images,
        fonts and window skins).
      * Added Timer.lua (keeps track of and provides an interface to query the
        frame/time delta between updates).
      * Added CallbackManager.lua (allows writing encapsulated extensions).
      * Added InputManager.lua (allows listening/reacting to input events).
      * Added AudioManager.lua (allows playback of BGM, BGS, ME and SE).
      * Added GameClock.lua (keeps track of the total play time and optionally
        displays it in the main menu).
      * Added PathFinder.lua (adds powerful and feature-rich pathfinding tools;
        powered by Yonaba's Jumper library).
    Ein großer Schritt Richtung Version 1.0 und Richtung solides Framework!

    Skripte wurden erheblich überarbeitet und viele neue hinzugefügt. Mit dem Callback Manager kann man nun isolierte Erweiterungen schreiben, die wie das Plugin-System von DynRPG Plug & Play erlauben. Ein gutes Beispiel dazu ist die Game Clock-Erweiterung.

    Mit dem Hinzufügen von Character:move ist nun auch Pathfinding möglich! Dazu habe ich für euch eine Demo vorbereitet:



    Download (alte Version, siehe weiter unten für die aktuelle)

    Edit:

    Ich habe das Pathfinder-Skript erweitert, so dass nun, sollte kein Pfad zur Zielposition existieren, ein Pfad zur nächstbesten Position zurückgegeben werden kann. Dazu einfach beim Aufruf von move_character (siehe Scripts/extensions/pathfinder/interface.lua) für den Parameter allownearest eine 1 übergeben.

    Hier ist die aktualisierte Pathfinding-Demo: Download

    Ihr könnt entweder einfach die aktualisierten Pathfinder-Skripte aus dieser Demo verwenden, oder aus dem Repository (immer auf dem neuesten Stand) herunterladen.

    Geändert von Kyuu (01.07.2014 um 18:29 Uhr)

  16. #56
    Ich habe für jemanden ein Skript zum automatisierten Anzeigen von Lightmaps geschrieben. Ich denke, das können auch andere brauchen:



    Download


    Installation

    • RPGSS 0.8 installieren (inklusive Assets).
    • In der Datei Scripts/boot.lua sicherstellen, dass entweder eine Zeile mit require "extensions", oder eine Zeile mit require "extensions.lightmapmanager" als Inhalt existiert. Einfach mit einem beliebigen Text-Editor öffnen/bearbeiten.
    • Alles aus LightmapDemo/Scripts/extensions/lightmapmanager in das selbe Verzeichnis deines Projekts kopieren.



    Verwendung

    • Falls über eine Map eine Lightmap gelegt werden soll: Lightmap in "mapXXXX.png" umbenennen, wobei für XXXX die Map-ID einsetzen, inklusive führender Nullen, und ins Verzeichnis Picture/lightmaps kopieren.

    Geändert von Kyuu (06.07.2014 um 01:51 Uhr)

  17. #57
    probiere es grad aus, hatte allerdings noch keinen erfolg.

    ich hab also meine lightmap im ordner lightmaps. sie heißt "map0066.png" und ist für die map 66.

    ich hab die sachen aus dem demoprojekt kopiert. wie finde ich den fehler? ^^

  18. #58
    Guck mal in boot.lua ob da require "extensions" steht. Wenn nicht (ich gehe stark davon aus), dann einfach irgendwo oben require "extensions" hinzufügen.

    Wenn man nicht alle, sondern nur bestimmte Extensions haben will, einfach die Zeile require "extensions.name" für jede Extension einfügen. Also zum Beispiel:

    Code:
    require "extensions.lightmapmanager"
    require "extensions.gameclock"
    Um die Extensions Lightmap Manager und Game Clock hinzuzufügen.

    Manche Extensions benötigen andere Extensions, in dem Fall muss aber nichts weiter getan werden, denn diese werden automatisch hinzugefügt (vorausgesetzt der Extension-Autor hat alles richtig gemacht ^^).

    Geändert von Kyuu (03.07.2014 um 14:10 Uhr)

  19. #59

  20. #60
    Ich sollte mal meine Installationshinweise in der Dokumentation überarbeiten und die Assets-Installation zur Pflicht machen. :> Einfach den Ordner Fonts und am besten auch gleich den Ordner WindowSkins (zu finden im Ordner assets im 0.8-Release) in dein Spielverzeichnis kopieren.

    Manche Extensions zeichnen Text/Fenster und benötigen entsprechend die mitgelieferten Standardfonts/-windowskins.

    Übrigens: Die Scene Manager Extension kann die aktuellen FPS am Bildschirm ausgeben. Dazu einfach F10 drücken. Nur so am Rande...

    Geändert von Kyuu (03.07.2014 um 14:20 Uhr)

Berechtigungen

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