Beiträge von Tamschi

    Tamschi Vielen Dank für deinen Code! Ich habe ihn aus Neugier in einem neuen Projekt getestet. Tatsächlich wird die Auswahl nun direkt zur Textbox angezeigt, jedoch taucht die Auswahl nach dem Treffen einer Option ein zweites Mal auf, und dieses zweite Mal in der bekannten Maker-Manier ohne die Textbox. Scheinbar wird das direkte Anzeigen der Auswahl durch den Code nun "dazwischengeschaltet" bzw. dadurch verdoppelt? Dennoch ein toller Ansatz, der das Ganze nochmal vereinfachen könnte. Meinetwegen musst du dir aber nun keine weiteren Umstände bereiten, da die Lösung per Labels hervorragend funktioniert.


    Wirklich sehr toll, wie schnell hier immer einige helfende Hände bereitstehen und sogar "mal eben" Codes bereitstellen! Lieben Dank euch :)

    Sehr merkwürdig ("In meinen Tests ging's" ;)).


    Ich müsste das Listing haben, sonst kann ich das glaube ich nicht reproduzieren.

    Sowas wie dieses "<Save Event Locations>", nur als Befehl, der das für das aktuelle Event speichert?


    Du könntest in einer Route das Script $gameVariables.setValue(123, this.x); $gameVariables.setValue(124, this.x); und dann zum Wiederherstellen this.locate($gameVariables.value(123), $gameVariables.value(124)); nutzen. (Natürlich mit entsprechend anderen IDs.)


    Im "normalen" Script-Befehl ist das etwas umständlicher, da man dort den Verweis auf den aktuellen Game_Character nicht ganz so leicht bekommt. $gameMap.event(this.eventId()) statt this sollte dort funktionieren.

    Ist nicht kompliziert, daher:

    Der Knackpunkt ist halt, dass "Text" auch "Auswahlmöglichkeiten zeigen" direkt mitverarbeitet, wenn das folgt, aber dabei keine Flusskontrolle überspringt.

    Ich habe das hier für das Verlassen von "If" implementiert, aber nicht für andere Sachen wie das Verlassen von "Auswahlmöglichkeiten zeigen".


    (Das Plugin verändert unter machen Umständen, wo der Game_Interpreter pausiert während die Dialogbox angezeigt wird.

    Das sollte allerdings keinen Einfluss auf das haben, was dann am Ende angezeigt bzw. ausgeführt wird.)

    An sich müssten ja nur alle möglichen Scripts (und somit auch Common Events) durchsucht werden und entsprechend angepasst.


    Btw: für den MV gibt es das Tool auch.


    Ich denke also schon, dass das funktionieren kann.

    Für MV geht es dann nicht, wenn in Plugin-Befehlen IDs verwendet werden, da die Parameter nicht als solche deklariert werden können.

    Wenn man irgendwo in note-tags IDs hat, dann geht das natürlich auch nicht (in beiden Versionen).


    Das Programm dürfte für MV und MZ identisch sein, die Datenbanken unterscheiden sich in der Hinsicht glaube ich nur bezüglich der MZ-Pluginbefehle.

    Ich gehe davon aus, dass es nur deshalb doppelt im Store ist, da es DLC immer nur für ein Basisspiel geben kann.

    Das ist vielleicht auch interessant, vor allem weil ich hier öfter mal Teamprojekte sehe.

    Pretty JSON

    Formatiert beim Spieltest eure JSON-Dateien menschenlesbar, damit ihr einfacher Git verwenden könnt.


    JSON-Formatierung mit Pretty JSON (Ereignisse) JSON-Formatierung mit Pretty JSON (Karte)
    Ereignisse (CommonEvents.json)
    Kartendaten (Map001.json)

    Funktionsweise

    Das Plugin liest beim Teststart die in den Plugineinstellungen angegebenen JSON-Dateien im Datenordner ein und formatiert alles schön. Falls sich daraus eine Änderung ergibt, dann wird die Datei auf der Festplatte ersetzt (und zwar als atomarer Vorgang, damit das Projekt auch durch plötzliche Stromausfälle oder volle Festplatten nicht kaputt geht. Wobei da RM selbst soweit ich weiß keinen ganz so guten Schutz eingebaut hat). Danach startet das Spiel wie gewohnt.


    Dadurch könnt ihr dann auch parallel an ein und demselben Ereignis arbeiten und die Änderungen relativ einfach per Git oder so zusammenführen, da z.B. Ereignisbefehle dann auf je einer Zeile landen, was git diff deutlich besser versteht.

    Benutzung

    Einfach hinzufügen und einschalten.


    Ich habe eine Standardkonfiguration eingebaut, die sowohl für MV als auch MZ nahezu perfekt sein sollte.

    Sowas wie die Kartendaten sind damit zwar immer noch lange undurchsichtige Listen, aber immerhin so umgebrochen, dass die meisten Editoren gut damit klarkommen sollten.


    Ihr könnt in den Einstellungen aber auch genau anpassen, welche Dateien formatiert und welche Werte einzeilig dargestellt werden, falls euch irgendwas nicht passt oder ein Plugin eine eigene Datei hinzufügt.

    JavaScript-API und so

    gibt es bei diesem Plugin nicht. Außer den langsamer startenden Tests (woran ich nicht einfach viel ändern kann) hat es keine Auswirkungen auf euer Spiel.

    Nach dem Deployment ist das Plugin automatisch komplett inaktiv.

    Wo gibt's das und was kostet es?

    Ich habe das wie üblich hier auf itch.io reingestellt und der Minimalpreis ist… 0€! :P

    Das war eine relativ schnelle Aktion, ich glaube ich hatte das nach zwei Tagen komplett fertig und veröffentlicht. Und reine Entwicklertools und Fixes gibt es bei mir sowieso meistens gratis.


    Ich würde mich aber trotzdem riesig über ein bisschen Trinkgeld oder eine Bewertung auf itch.io freuen, falls euch das hier irgendwann Zeit und Frust spart.

    Das ist wirklich interessant, vielen Dank! :D

    Das könnte man z.B für einen Fähigkeitsbaum in einem RPG nutzen.

    Gute Idee, hatte ich nicht im Sinn aber würde sogar mit dem Kartenraster gut funktionieren =)


    Meine Plugins sind fast alle ziemlich generisch, deshalb ist es immer eine coole Überraschung zu sehen, wofür die dann letztendlich verwendet werden.

    Meistens ist es irgendwas, was ich bei der Planung absolut nicht auf dem Schirm hatte :D

    Ich habe letzte und diese Woche relativ spontan was gebastelt (wobei mal wieder die meiste Zeit nur für das Promomaterial und die Dokumentation draufging :rolleyes:)

    OnTouch

    Pixelgenau klickbare Ereignisse, mit Klickregionen, mit Reichweitenbeschränkung, mit Farb- und Positionswähler, mit anpassbarem Bild für's Sampling, individuell per Links- und/oder Rechtsklick, als zusätzliche Einstiegspunkte


    OnTouch: Pixel-klick plugin für MV und MZ
    (Das ist ein GIF, spielt hier wohl nicht automatisch.)
    OnTouch: Pixel-klick plugin für MV und MZ


    Funktionsweise

    Ist recht unspektakulär: Wenn man auf die Karte klickt (rechts oder links), dann schaut das Plugin, ob da unter dem Zeiger ein entsprechend klickbares Ereignis ist. Falls ja, dann wird die normale Kartenklickfunktion unterdrückt.


    Wenn dann gerade auch noch kein modales Ereignis-Script läuft oder starten würde, das Spiel also nicht gerade mitten in einer Szene steckt, dann startet dieses Ereignis auch noch sofort modal beginnend am passenden Einstiegspunkt (!OnTouch:-Pluginbefehl). Wobei "startet" da etwas relativ ist, die Befehle werden dann zur normalen Zeit interpretiert. Ich muss das nur direkt in den Zustand "läuft" bringen, damit ich sicher an die passende Stelle springen kann (ohne, dass der Code unnötig kompliziert wird ;)).

    Benutzung

    Wenn ihr einfach nur ein Ereignis klickbar machen wollt, dann braucht ihr nur den !OnTouch:-Befehl irgendwo direkt auf der aktiven Seite. Dadurch fangen dann sofort alle sichtbaren Pixel Linksklicks ab. Der visuelle Stapel wird dabei beachtet, also sind große/überlappende Sprites auch kein Problem bzgl. welches Ereignis dann genau startet. (Standardmäßig sind Ereignisse aber klickdurchlässig, auch wenn sie relativ gesehen im Vordergrund sind. Packt da einfach !OnTouch: ganz ans Ende, falls ein Ereignis nur entsprechende Klicks blockieren soll.)


    Ihr könnt das auch noch mit diversen Bedingungen anpassen, also wo genau geklickt werden kann (mit Farb- und Transparenzbedingungen), wo die Spielfigur stehen muss (funktioniert auch alles mit Pixel-Bewegung/ohne Kachelbeschränkung), welche Maustaste(n) benutzt werden dürfen, und so weiter. Ihr könnt auch einzelne oder alle Farbkanäle, die Alphakanal und/oder Sprite-prozentuale Position des angeklickten Pixels in Variablen abspeichern.


    Falls das nicht ausreicht, z.B. weil ihr mehrere Regionen definieren wollt oder die interaktive Fläche zu klein oder zu groß ist, dann könnt ihr ganz einfach per !OnTouchColorImage dateiname eine andere Bilddatei dafür nutzen. Der Bildausschnitt bleibt gleich, kopiert also einfach das Spritesheet im tilesets/- oder characters/-Ordner und ändert das entsprechend ab. (In MV müsste ihr die Pluginbefehle wie gehabt eintippen, in MZ gibt es stattdessen für alles Auswahldialoge).


    Es gibt auch noch ein paar zusätzliche Optionen bei !OnTouch:, sodass die Drehung der Spielfigur und das Sperren (Drehen + Anhalten) des Ereignisses vermieden werden können.


    Der dritte verfügbare Befehl RevertOnTouchTurn dreht die Spielfigur zurück in die Ausgangsrichtung, so wie das die meisten Ereignisse nach der Interaktion auch tun.

    Stabile JavaScript-API und Entwicklerfunktionen

    Gibt es auch, würde an dieser Stelle aber den Rahmen sprengen. Schaut auf der Plugin-Seite nach, da ist das alles ausführlich aufgelistet und erklärt.

    Wo gibt's das und was kostet es?

    Ich habe das wie üblich hier auf itch.io reingestellt. Den Preis schaut ihr auch am besten da nach, falls ich den mal ändere. Als Startpreis habe ich $10 ausgewählt.

    Das ist etwas günstiger als die meisten anderen Klick-Plugins (außer TDDP - MouseSystemEx, da hat wohl Degica bezahlt um es frei verfügbar zu machen), hat dafür aber keine Hover-Cursor eingebaut.


    Ihr müsstet dieses Plugin hier aber ohne Probleme mit solchen Mauszeigerplugins nutzen können, i.d.R. selbst wenn diese auch Klick-Plugins sind. Falls MouseSystemEx in MZ nicht geht, dann sollte Mimosa Mouse Cursor ziemlich gut passen. Ich habe das aber beides nicht ausprobiert.

    So, da bin ich wieder. Die letzte Zeit war milde gesagt etwas drunter und drüber, deshalb hatte ich zuletzt nicht viel mit RPG Maker gemacht.
    Jetzt habe ich aber endlich wieder einen Satz Promomaterial fertig, deshalb geht's jetzt weiter ;) (und hoffentlich gibt es bald auch die ordentliche Vorstellung meiner Plugins, das habe ich nicht vergessen).


    Frisch veröffentlicht: Battler Reaction Flipbooks (für MV und MZ)

    Ich habe immer noch einige fehlende Einträge auf der Core-Seite, aber bin jetzt so langsam bei den großen/optionaleren Teilen angekommen.
    Die zusammengeklebten Screenshots aund der Trailer sehen diesmal auch etwas hochwertiger aus. (Ich nutze für letzteres jetzt Kdenlive.)


    Edit: Ich habe zu viel English gesprochen in letzter Zeit, jetzt vermische ich die Sprachen manchmal :D


    [...]


    Mal ne allgemeine Frage, da wir derzeitig die Schlösserknack-Tutorial Sektion überarbeiten:

    Spielt ihr RPG Maker Spiele mit Maus, Pfeiltasten oder WASD?

    Tatsächlich fast immer mit Touchscreen (wodurch ich das Menü nur etwas langsamer öffnen kann, aber sonst ist das quasi wie mit Maus).

    […]

    OK, habs mal geladen, ich kann mir jetzt aus einem Projekt alles auslesen. Ist dies jetzt gedacht, dass die Texte nun im Spiel überschrieben werden wenn ich speichere oder wie funktioniert das?

    Ich habe das selbst nicht benutzt, aber soweit ich weiß speicherst du erst mal eine Projektdatei, die auch mehr als zwei Sprachen enthalten kann.


    Der eigentliche Zweck ist, damit Fanübersetzungen zu machen, man kann dann wohl irgendwie am Ende die Projektdatei auf das Projekt anwenden und dadurch alle übersetzten Strings überschreiben. Du müsstest mal ausprobieren, ob die alte Projektdatei auch nach einem Bugfix noch passt.


    Mehrere Sprachen auf einmal kann das nicht direkt im Spiel ausliefern, aber falls die Projektdatei einfach genug ist, dann müsstest du die relativ leicht auch mit einem Plugin laden können, das die command___-Methoden im Game_Interpreter passend erweitert. Das ist bei Textboxen ein kleines bisschen nerviger, da dort die Zeilen in einzelnen Commands sind (die aber alle auf einmal ausgelesen werden), aber an sich nicht wirklich komplex. Items und so werden anders gehandhabt, aber ich glaube du kannst irgendwo getter überschreiben, um das global zu handhaben (oder die geladenen Daten direkt patchen und bei Änderung schnell neu laden).

    Hier ist ja ganz schön tote Hose im Sommerloch~

    Schreibt trotzdem mal, was euch gerade umtreibt und woran ihr arbeitet?

    Ich war die letzte Woche ziemlich beschäftigt mit Erledigungen und dem Fertigprogrammieren meines neuesten Plugins (📺).

    Ca. die Hälfte der Logik steckt da in einem neuen "Core" für Animations-Timeline-Ereignisse allgemein (und den gibt's für lau :)), ihr könnt also auch relativ bequem andere Sachen als Soundeffekte damit machen, wenn ein bisschen JS für euch okay ist. Ich glaube einen neuen Event-Schlüssel mit einfachem Parameter bekommt man in etwa 20 Zeilen hin, falls man's nur selbst braucht.

    Ich habe einen neuen Tabularasa Rechtschreib-und Grammatikdurchgang gestartet und schlage die Hände vor dem Kopf zusammen, was da IMMER NOCH für Fehler drin sind, z.B. Willkommen und willkomen zurück sind offensichtlich zwei Wörter unterschiedlicher Wortkategorien und sind erst seit dem neusten Erkenntnisstand das gleiche... Nein, Spaß beiseite, so viele Sachen sind so offensichtlich aber nicht offensichtlich genug für 300000 Spielvorgänge vorher...

    Es wäre echt nett, sowas wie die Rechtschreibprüfung in (Libre)Office auf das ganze Spiel anwenden zu können. Technisch ist das machbar, aber die Benutzeroberfläche dafür zu programmieren wäre extrem nervig. Wäre cool, wenn mal jemand so ein Rechtschreibkorrekturfrontend als Komponente schreiben würde, wo man dann nur noch die Daten reinschieben muss.

    Du könntest dort einen debugger;- oder console.trace();-Befehl einbauen, dann siehst du den stack trace wenn du vorher die F12-Tools aufrufst.

    Wobei ich nicht weiß, ob der brauchbar sein wird, da du VisuStella nutzt. Wahrscheinlich sind die Funktionen nicht lesbar benannt.


    Die Menüpunkte werden in der Regel von den abgeleiteten Klassen erstellt, welche zumindest in RM relativ dicht unter dieser stehen sollten.


    (Ich sehe irgendwie kein Bild. Liegt das an mir?)

    Tamschi du kannst ja sonst die Battler von zum Beispiel Holder nutzen, da diese frei zur Verfügung stehen.

    Die Battler von Holder sind leider gerade im falschen Format. Nicht nur wegen Spritesheet vs. einzelne Cels, sondern weil die Sprites selbst auf relativ einfache Animationssysteme ausgelegt sind (immer 4 Frames pro Aktion) und deshalb meine Features nicht gut darstellen können.


    So etwas wie 2D Zombie Sprite - Animated funktioniert vielleicht ganz gut als extremes Beispiel, wobei ich definitiv auch ein einfacheres und weniger "3D" haben sollte :hmm:

    Mit den aktuell öffentlichen Plugins geht das noch nicht, aber Battler Action Flipbooks kann so einen Zombie sauber ohne Sprünge in der Animation angreifen lassen.


    (Ich hab' Pläne, Spritesheets und lange Sequenzen von durchnummerierten Frames etwas praktischer nutzbar zu machen. Es dauert aber noch etwas bis das kommt und Einzelbilder mit variabler Leinwandgröße werden wahrscheinlich effizienter bleiben.)

    Tamschi
    Es freut mich zu sehen, dass Du mit dem Plugin weitere Fortschritte erzielen konntest. Das scheint mir eine Heidenarbeit gewesen zu sein! 8o
    Was die Systeme anderer Engines betrifft, so finde ich den Zuwachs an Möglichkeiten immer sehr begrüßenswert. Der Partikeleditor von Godot ist in meinen Augen beispielsweise auch um Welten ausgereifter, als jener von GDevelop. Da wird mit der Zeit vielleicht auch noch etwas kommen. Denn die größeren Engines sind leider auch nicht so ganz meine Welt. Für meinen Geschmack zu viele wechselseitige Abhängigkeiten von weiteren externen Programmen/Schnittstellen, Größe und Wartezeiten im Workflow.

    Und was den kommerziellen Aspekt betrifft, so bin ich damit mehr als cool. Da steckt einfach auch eine Menge Arbeit hinter und je nach Lebenslage muss man schauen, dass man die aufgewandte Zeit irgendwie kompensieren kann. Gerade wenn man sowas langfristig machen möchte.

    Die Plugin-Dateien haben insgesamt einige 1000 Zeilen, aber viel davon ist auch Dokumentation und Validierung, damit potentielle Fehler nach Möglichkeit immer direkt beim Spielstart auftreten. Ich habe etwas moderneres JS mit class-Syntax benutzt, deshalb war das nicht allzu aufwändig. Allerdings mache ich das so zum ersten Mal, deshalb hat sich das alles ein paar Monate hingezogen 😅


    Es war schon mehr Arbeit, war aber auch viel interessanter als Bookmarks, wo ich furchtbar lange Listen von sehr ähnlichen Parametern implementieren musste.

    (Das Plugin ist von der Radiant Historia: Perfect Chronology-Demo aus dem 3DS-e-Shop inspiriert.)

    Was die Präsentation des Systems betrifft, so würde ich dem YT-Video noch Timestamps hinzufügen, welche bestimmte Eigenschaften nochmal besonders hervorheben. Auf diese Weise kann man als Zuschauer intuitiv eine Übersicht erhalten, anstelle sich in der Videobeschreibung, durch Untertitel oder Bildelementen im Video selbst zu orientieren. Ich glaube gerade bei komplexeren und mächtigen Tools ist Anschaulichkeit das A und O. :)

    Super Idee, danke! Habe ich jetzt umgesetzt, wobei das Video im Nachhinein vielleicht noch etwas zu kompakt ist.

    (Mindestlänge der Kapitel sind 10 Sekunden laut WikiHow, die erreiche ich nicht immer ganz ohne die Timestamps dazu ein bisschen zu verschieben.)


    Nächstes Mal ziehe ich es etwas auseinander und/oder wiederhole die Aktionen, um es etwas besser aufzuteilen.

    Meine Plugins sind "leider" immer sehr flexibel, sodass ich eigentlich kaum richtig auflisten kann, was damit alles möglich ist.

    Tamschi Es ist definitiv ein sehr interessantes Plugin. Ich muss mir allgemein mal deine Plugins durchschauen. Bin aber auch gespannt, was da noch von dir so kommt. Gibts da schon pläne für ein nächstes Plugin, oder kommt das bei dir so spontan?

    Ich habe eine Ideenliste, weil ich nicht zu allem komme, was ich gerne implementieren würde.

    Vorerst kommen aber ein paar Plugins, die auf der Battler Flipbooks Core-Seite noch als "TBA" aufgelistet sind. Nicht sicher, in welcher Reihenfolge.


    Ich arbeite nebenher noch an einer Möglichkeit, die Bilddateien von fertigen Spielen neu zu komprimieren, um Installationsgröße zu sparen, habe da aber noch nicht viel gemacht. Es kommt natürlich auf die genaue Art der Bilder an, aber in meinen Tests kam ich auf gut 40% Verringerung im verlustfreien Modus.

    Da JPEG XL aber selbst (leicht) verlustbehaftet normalerweise keine sichtbaren Artefakte aufweist, geht da wahrscheinlich sogar noch mehr bzw. weniger im Vergleich zu PNG.

    Das Plugin ist ja mal richtig nice :o

    Der einzige Grund warum ich das nicht sofort einbaue ist der Riesenaufwand an Animationen, den das für ein Projekt mit vielen verschiedenen Gegnern und Akteuren bedeuten würde. Aber lohnen würde es sich auf jeden Fall.

    Danke! Ich tobe mich da allgemein beim Feinschliff etwas aus.


    Ist aber wohl wirklich eher was für ein bisschen größere Produktionen, oder mit vorgefertigten Gegnersprites (auch) für andere Engines, die dann schon die entsprechenden Bilder "eingebaut" haben. Limited Animation wäre auch eine Idee, man muss ja nicht immer so weit gehen wie ich mit meinem superpraktischen Testwürfel hier.