[RMXP] Kann ich die Macken des Makers bei Animation und Textbox beheben?
Hiho,
Ich habe seit einiger Zeit wieder etwas mit dem Maker (XP) gearbeitet und ein paar kleine Problemchen, aus denen ich nicht so richtig schlau werde.
Punkt 1: Wenn ich in Zwichensequenzen oder sonst wo, Charaktere animiere, verwende ich den "Set move route" > "Change Graphic"-Befehl, um die einzelnen Animationsphasen aus den Charakter- und Pose-Dateien einzustellen. Das klappt eigentlich auch meistens ohne Probleme, aber manchmal - und ich kann wirklich nicht nachvollziehen warum an diesen Stellen und anderswo nicht - kommt der Maker mit der Ausrichtung durcheinander und zeigt den falschen Animationsframe an. Das hat was mit der Ausrichtung der Events zu tun, aber manchmal kommt er an einer Stelle der Szene durchainander und bei all den anderen, genau auf die gleiche Art eingestellten Graphic-Changes geht alles ohne Probleme vonstatten.
Punkt 2: Ich war ja regelrecht entsetzt als ich gesehen habe, dass, nachdem ich mir nach langer Maker-Abstinenz den XP im Humble-Bundle gekauft hatte (bei meiner alten Version ging irgendwie die Aktivierung nicht mehr...), nach all den Jahren, die SCHEISS 3-Zeilen-Textbox immer noch drin ist! Die haben diesen Bug echt nie gefixt? Gibt's wenigstens irgendeine Community-Lösung für das Problem? Weil, es ist extrem nervig, wenn man längere Dialoge schreibt, vor allem wenn man hinterher merkt, dass irgendwo ein Tippfehler drinne ist und dann das Textmaß nicht mehr passt...
Punkt 1: Ja, der XP ist dort inkonsistent. Ich mache das so, dass ich beim Wechsel des Bildes immer die gleiche Blickrichtung benutze. Also: Schaut der Chara nach rechts, müssen alle Animationsschritte auch nach rechts schauen. Bei aufwändigen Animationen würde ich den Charset gegen einen Dummy austauschen und die Animation per Variable anzeigen.
Punkt 2: Der einzige Ausweg ist Rechtsklick und Batch Text Entry. Wenn man die Textbox überarbeiten möchte, ist das immer noch umständlich, aber zumindest kann man so alle 4 Zeilen nutzen.
Punkt 1: Es gibt also keine Lösung oder wenigstens eine Faustregel, bei welchen Konstellationen von Ausrichtung/Animationsframe das auftritt? Ärgerlich!
Punkt 2: Ja, genau so mache ich es die ganze Zeit. Aber wenn ich beim Testen dann einen meiner zahlreichen rechdshräipfelr finde bleibt mir nichts anderes übrig als den kompletten Text aus der Box zu kopieren und nochmal per Batch-Text-Entry einzufügen, damit ich einen einzelnen fehlerhaften Buchstaben austauschen kann. Nervig und beim nächsten Testlauf merke ich dann erst, das ich vergessen habe die alte Textbox zu löschen und der Typ jetzt 2 mal den selben Text aufsagt...
Du würdest einfach nur den Text in dem Scripteditor schreiben anstatt im Event.
Hier ist einmal ein ganz schnellers, einfaches Script, welches dir erlaubt die Nachrichten einfach im Scripteditor zu definieren und über die Call-Script Methode auf zu rufen:
Wenn du in deinem Event folgenden Code eingibst kannst du dann eine Nachricht anzeigen:
Du kannst also einfach die einzelnen Nachrichten mit einem Schlüsselwort versehen (im Beispiel "msg1") und dann den eigentlichen Text im Scripteditor schreiben.
Falls das Schlüsselwort nicht erkannt wird, würde das Script einfach "<Unknown Message>" in die Message-Box schreiben.
Du kannst es ja einfach einmal ausprobieren, am besten mit folgenden drei Zeilen:
Man könnte sogar die Texte aus einem Textdokument von der Festplatte laden lassen, damit du nichteinmal den Scripteditor öffnen musst. Das macht es auch unglaublich einfach das Spiel am Ende zu übersetzen.
Du würdest einfach nur den Text in dem Scripteditor schreiben anstatt im Event.
...
Yo, klingt zwar recht praktisch und interessant, aber ich glaube das ist nichts für mich. Nicht wegen des scriptens wegen, aber, jede Message mit einem eigenen Codewort zu versehen würde bei mir unglaublich schnell in Chaos enden. Ich arbeite recht iterativ musst du wissen, setze immer mal wieder Textboxen um oder neue dazwischen. So würde es nicht lange dauern und zwischen "msg1" und "msg2" würde "msg475" stehen. Und mich dann langfristig noch zurecht zu finden wäre ein Ding der Unmöglichkeit...
@Kelven:
Ich sehe schon, der XP hat wirklich ein schlechtes Scripting. Hier eine verbesserte Variante:
Ich würde auch nicht empfehlen die Schlüsselwörter "msg1" und dergleichen zu nennen. Du kannst dafür beliebig lange Texte benutzen, zum Beispiel:
Aber natürlich kann man das Script auch sehr leicht abändern, dass du den Text einfach direkt eingeben kannst. Natürlich hast du damit jedoch wahrscheinlich noch weniger Platz als zuvor.
Tja, also im Prinzip gibt's keine wirklichen Lösungen für diese Problem, mit denen ich zumindest im aktuellen Projekt was anfangen könnte.
Texte aus Dateien auszulesen wäre zwar eigentlich eine feine Sache, da ich aber an einem alten Projekt arbeite, was auch schon fast fertig ist, lohnt sich's wohl nicht mehr damit anzufangen. Vor allem mache ich mir da Sorgen wie ich das Textmaß einhalten soll, ich seh ja dann nicht, wie viel Text in die Box passt, wenn das Eingabefeld nicht da ist. Wie wird das eigentlich gelöst?
Viel problematischer ist aber immer noch die Sache mit der Animation. Ist schon doof wenn ein Charakter plötzlich ein Handy in der Hand hat, obwohl er doch eigentlich grade eine Axt schwingen sollte...
Naja, muss ich halt aufpassen.
Es sollte, theoretisch, kein Problem sein das Message-System so um zu schreiben, dass Zeilenumbrücke automatisch geschehen. Ich verstehe sowieso nicht, weshalb man die Zeilenumbrücke im Maker manuell setzen muss.
Aber ohne weitere Änderungen vorzunehmen wird es dir wohl nicht so sehr bei deinem Problem helfen wie du es gerne hättest. Man muss immer die Vor- und Nachteile für einen selbst abwägen.
vielleicht ist dieser Ansatz das, was du suchst. Du kannst Kommentare in Events verwenden, die dann in Texte umgewandelt werden.
Allerdings kam ich noch nicht dazu, das Script auch zu testen. Hab's nur kurz erstellt und an 2-3 Beispielen getestet. Sollten dir irgendwelche Fehler ins Gesicht springen, gibt einfach Bescheid.