PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Rm2k Script] Dynamic Charsets



Fauchi
02.05.2020, 19:41
Dynamic Charsets
- ein Script für den Rm2k -


http://www.youtube.com/watch?v=Px-ZsZFPrjM

Beschreibung
Der eine oder andere wird sich bereits hin und wieder gewünscht haben, während des Spiels die Grafik des Helden frei anpassen zu können. Sei es, um das Outfit zu ändern oder die ausgerüstete Waffe sichtbar zu machen. Bisher musste man für jede erdenkliche Kombination eine vorgefertigte Grafik erstellen. Damit soll jetzt Schluss sein.

Dank Bananen-Joe's DestinyPatcher ist es möglich, die Spielgrafiken zu manipulieren und damit dynamische Charaktergrafiken zu erzeugen. Auf dieser Grundlage habe ich ein Script entworfen, das die Nutzung dieser Funktionalität möglichst leicht zugänglich machen soll.

Dadurch ist es nun möglich, live im Spiel Charsets nach folgendem Schema aus einzelnen Templates zusammenzusetzen:

http://fauchi.bplaced.net/img/screenshots/characters/1_large.png

Dabei sollte besonders betont werden, dass die Templates durch dieses Script nicht über Pictures angezeigt und ein Charset simuliert wird, sondern die Templates temporär auf das Charset gezeichnet werden! Dadurch verhält sich das dynamisch erzeugte Charset wie jedes andere RPG-Maker-Charset, wird also durch höherliegende Tiles und Events auf der Map verdeckt.

Handhabung
Um das Script zu nutzen, ist lediglich folgender Eventcode nötig, den ich gleich ausführlich erklären werde:

<> Change Variable: [4021] = 10001
<> Comment: $
: a[900] = "BodyStandard";
: a[901] = "HeadAlex";
: a[905] = "HairAlexBrown";
: a[909] = "ClothesAlex";
<> Call Event: Common Event "Draw character"
In Variable #4021 gibt man die ID des Events an, dessen Grafik verändert werden soll. Die EventID 10001 entspricht der des Helden. Hiermit wird also die Heldengrafik verändert.

Darunter ist in einem Kommentarfeld ein DestinyScript eingefügt (DestinyScripts erkennt man daran, dass sie mit '$' beginnen). Darin wird den Strings mit den IDs 900, 901, 905 und 909 jeweils ein Wert zugewiesen (in DestinyScript befinden sich alle Strings im Array a[ ]). Bei dem Wert handelt es sich um den Dateinamen des Templates, das man nutzen möchte. Die String IDs geben an, um welchen Layer es sich handelt (Körper, Kopf, Haare, Kleidung, etc. - dazu gleich mehr!).

Zuguterletzt wird ein CommonEvent aufgerufen, das die angegebenen Templates auf die Grafik des angegebenen Events zeichnet.

Layers
Das Script bietet 20 funktional verschiedene Layer, für die jeweils ein Template angegeben werden kann:

900. Körper
901. Kopf
902. Ohren
903. Augen
904. Brille
905. Haare
906. Bart
907. Kopfbedeckung
908. Halskette
909. Kleidung
910. Hose
911. Gürtel
912. Schuhe
913. Mantel
914. Umhang
915. Handschuhe
916. Gegenstand in der linken Hand (Waffe, Schild, etc.)
917. Gegenstand in der rechten Hand (Waffe, Schild, etc.)
918. Rückenanhängsel 1 (Flügel, Schwanz, Rucksack, etc.)
919. Rückenanhängsel 2 (Flügel, Schwanz, Rucksack, etc.)

Bei der vor jedem Layer stehenden Zahl handelt es sich um die ID des Strings, in dem der Dateiname des zu verwendenden Templates angegeben wird. Wenn man die Liste mit dem oben angegebenen Eventcode vergleicht, sollte das verständlich werden.

Die Layer sind funktional unterschiedlich, da sie beim Zeichnen unterschiedliche Prioritäten besitzen. Wenn der Charakter einen Rucksack trägt und nach unten schaut, soll der Rucksack hinter dem Charakter angezeigt werden, muss also als erstes gezeichnet werden. Wenn der Charakter jedoch nach oben schaut, soll der Rucksack über dem Charakter angezeigt, also als letztes gezeichnet werden. Jedoch werden nicht alle Prioritäten einfach umgekehrt. Die Kleidung eines Charakters soll z.B. immer über dem Körper angezeigt werden, egal in welche Richtung er schaut.

Das Script einbinden
Das Script lässt sich in jedes Rm2k-Projekt einbinden, das mit DestinyScript kompatibel ist. Dazu müssen lediglich 1-2 CommonEvents aus der Demo kopiert werden. Eine genaue Anleitung in englischer Sprache findet sich hier (http://fauchi.bplaced.net/readme/characters/). Wer das Script nutzen will, sollte die Anleitung mindestens einmal durchlesen, da dort viele wichtige Details besprochen werden. Die Anleitung ist auf Englisch gehalten, damit das Script möglichst vielen Nutzern zugänglich wird.

Kompatibilität
Das Script ist mit allen RPG-Maker 2000-Spielen kompatibel, die mit Bananen-Joe's DestinyScript kompatibel sind. Soweit ich weiß trifft das auf alle Spiele zu, deren RPG_RT.exe mit dem RPG-Maker 2000 v1.07 erzeugt wurde. Mit der auf Steam erhältlichen Version des RPG-Maker 2000 ist der DestinyPatch nicht automatisch kompatibel. Man kann jedoch die RPG_RT.exe durch eine mit v1.07 erzeugte Version ersetzen. Dadurch gehen soweit ich weiß nur ein paar Funktionalitäten bei der Textausgabe im Kampfsystem verloren.

Credits
Wenn du das Script in deinem Spiel verwenden willst, erwähne bitte den Autor (Fauchi) und den Namen des Scripts (Dynamic Charsets). Zusätzlich sollte Bananen-Joe für die Entwicklung des DestinyPatchers Erwähnung finden.

Demo
Eine Demo, in der das Script ausprobiert werden kann, steht unten zum Download bereit. Darin lassen sich verschiedene Kleidung, Frisuren, Hüte, Ausrüstung und dergleichen kombinieren. Wer einen Blick in den Picture-Ordner wirft, wird dort die zugrundeliegenden Templates finden.

Links

Dynamic Charsets Demo v1.1 (5.1 MB) (http://fauchi.bplaced.net/download.php?file=DynamicCharsets.zip) (kein RTP nötig)
Anleitung (Englisch) (http://fauchi.bplaced.net/readme/characters)
Übersicht meiner Rm2k Scripts (http://fauchi.bplaced.net/scripts.php)


Für den Download müsst ihr ein bisschen Geduld mitbringen, da der Webspace recht lahm ist. Ich hoffe aber, dass die Geduld sich lohnt und würde mich über eure Rückmeldungen freuen.