Aufbau der Character-Grafik

  • Vorwort

    Das meiste aus dem nachfolgenden Inhalt kann auch in den Maker-internen Hilfen gefunden werden. Da die Frage nach dem Aufbau von Charsets allerdings häufiger auftritt, einigen die Maker-Hilfe zu kompliziert ist, oder sie der englischen Sprache nicht so mächtig sind, hier das ganze noch mal auf deutsch.


    Das folgende Tutorial gilt für i_RMVXAceund i_RMMV




    Aufbau

    Character-Grafiken (auch Chars, Charsets oder Sprites genannt) sind die Bilder, die wir an Stelle der Events auf der Map anzeigen lassen. Das können z.B. animierte Menschen, Tiere, Monster, oder auch einzelne Objekte sein.


    Eine Standard-Character-Grafik (im Folgenden als Charset bezeichnet) besteht aus einem Set von 8 verschiedenen Charakteren (Chars) > 4 Chars nebeneinander, in 2 Reihen untereinander.


    Tut_Chars_Aufteilung1.png



    Ein Char hat dabei 12 Einzelbilder (im Folgenden als Frame bezeichnet).

    3 Bilder pro Zeile für die Animation und 4 Zeilen, eine für jede Blickrichtung > von oben nach unten gelesen:


    Blick nach unten
    Blick nach links
    Blick nach rechts
    Blick nach oben


    Tut_Chars_Aufteilung2.png


    :!:Diese Reihenfolge ist wichtig!


    Zum einen, weil die Bewegung des Makers mit der entsprechenden Zeile im Charset verknüpft sind. Würde man also z.B. die seitliche Gehbewegung in die erste Zeile des Chars setzen, würde der Char im Spiel, bei der Bewegung nach unten, optisch seitwärts runter gehen.

    Zum anderen, weil man statt Menschen z.B. Objekte als Grafik verwenden kann, die keine sichtbare Blickrichtung habe. Die man aber über den Befehl der Bewegungsroute, bei der man diese Blickrichtungen angeben muss, animieren kann. Beispiel: Türen und Schatzkisten, die sich langsam öffnen.


    Die Größe eines Frames ist beliebig. Aber alle Frames innerhalb eines Chars und gesamten Charsets müssen genau gleich groß sein.

    Der Maker ermittelt die Größe eines Frames, in dem er die ausgewählte Charaktergrafik in Breite und Höhe durch die Anzahl der Frames rechnet.

    Mehr dazu unter Besonderheiten ($) und Anzeige.


    Besonderheiten

    Vorzeichen im Dateinamen


    ! in normales Charset wird im laufenden Spiel um 6 Pixel (im Ace sind es nur 4px) nach oben verschoben angezeigt.
    Dies dient dazu, dass der Char etwas mittiger auf einem Tile angezeigt wird, was natürlicher aussieht.
    Möchte man diesen Effekt deaktivieren, damit z.B. Türen nicht mitten in der Wand schweben und bündig mit dem Boden sind, muss man als Vorzeichen vor den Dateinamen ein ! setzen.

    Tut_Chars_Aufteilung6.png
    $ Wer eigene Grafiken importiert steht öfter vor dem Problem, dass man plötzlich nur noch ein Teilstück seines Chars auswählen kann.
    Möchte man statt 8 Chars ein Einzelset mit nur einem Char verwenden, muss man als Vorzeichen vor den Dateinamen ein $ setzen.
    Dann rechnet der Maker die ausgewählte Character-Grafik nicht durch (4x3 Frames) 12 in der Breite und (2x4 Frames) 8 in der Höhe, sondern nur noch durch 3 und 4 um die Größe eines einzelnen Frames zu bestimmen.
    !$ Man kann beide Ausnahmeregelungen kombinieren, aber nur in der Reihenfolge !$.
    Beispiel: !$Gate1.png für das einzelne große Tor



    Animationsablauf

    Die normale Animation eines Chars in Bewegung besteht aus den 3 Frames einer Charzeile.

    Diese Frames werden in folgender Reihenfolge abgespielt: 2 - 1 - 2 - 3 - 2 - 1 - ...



    Tut_Chars_Aufteilung3.png :arrow1: Tut_Chars_Aufteilung4.gif


    :info: Die gleiche Animation kann (auf der Stelle stehend) mit der Eventoption "Treten" aktiviert werden.


    Beispiel: um ein Lagerfeuer zu animieren


    Tut_Chars_EventOptionTreten.png


    Möchte man eine komplexere Animation, also mehr Frames für die Animation, oder eine andere Reihenfolge, erstellen, ohne auf Scripts/Plugins zurück zu greifen, kann man die Bewegungsroute eines Events und seine Blickrichtungen nutzen. Für mehr als 4 Frames muss man dann die Animation über mehrere Chars verteilen.


    Anzeige

    Die Frames vom im Maker mitgelieferten Helden-Grafiken sind genau 1 Map-Tile (Rastereinheit des Makers) groß.


    Tut_Chars_Aufteilung5.png


    Im i_RMVXAce sind das 32 x 32 Pixel, imi_RMMV sind es 48 x 48 Pixel. Wie bereits im Aufbau erwähnt, können sie aber beliebig groß sein. Sowohl kleiner als 1 Tile, als auch größer.


    Die Grafik des ausgewählten Frames wird immer unten mittig am Tile ausgerichtet, auf dem man das Event platziert.

    Das gilt auch für Grafiken, die nicht genau 1 Tile groß sind.


    Tut_Chars_Aufteilung7.png



    :!:Eventgrafiken können ohne Scripts/Plugins nicht unterhalb ihres Zentrierungspunkts angezeigt werden.

    Dies ist besonders hinderlich, wenn man Char-Animationen wie Angeln, Fischen, Schwertschlag in alle Richtungen machen möchte. Dreht sich der Char nach unten, "springt" der Char optisch nach oben, damit die untere Grafik bündig am Zentrierungspunkt anliegt.


    Tut_Chars_Aufteilung8.png


    Hier hilft es nur, dass man das Event für diesen Schritt entsprechend weiter runter setzt, damit die Grafik optisch am richtigen Platz sitzt.


    :!:Überlagerung

    Ein häufiger auftretendes Problem bei Chars, die größer als 1 Tile sind, ist die Überlagerung von mit ★ Stern-markierten gemappten Tiles.


    Tut_Chars_Aufteilung9.png


    Der Hut wirkt im Spielbetrieb abgeschnitten, weil er von dem Stand-Tile überlagert wird.

    Um dies ohne größere Umstände und für alle Chars zu beheben, ist ein Script/Plugin nötig.


    :!:Kollision

    Man sollte wissen, dass der Maker die Einstellungen für die Kollision eines Events nur für das 1 Tile große Feld übernimmt, auf dem das Event platziert wurde und nicht in der Größe der tatsächlichen Grafik, oder des Frames.

    Das heißt, man kann durch den Teil der Grafik hindurch laufen, der über das Zentrierungstile hinaus ragt. Um eine passende Kollision zu erzeugen, müssen entweder leere Events als Blocker eingesetzt werden, oder man greift zum Script/Plugin.




    Ich hoffe, das schafft noch mal etwas Klarheit.

    Sollte noch etwas fehlen, oder zu umständlich formuliert sein, sollten mir sogar Fehler unterlaufen sein, schreibt es mir bitte.

    Ich freue mich immer über Feedback, ob das Tutorial von Nutzen war. :)



    ~Maru

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!