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

    Meine Ressourcen
    smiley43.png smiley44.png smiley45.png cover_icon.png kiste_icon.png tarot_icon.png
    MV_Help.png
    8/137
    Mit freundlichen Grüßenmaru_mv.png
    ~Maru
  • Da muss ich schlicht zugeben, dass ich von der Existenz solcher Scripts und Plugins weiß, aber nie eines selbst benutzt habe und nicht speziell welche heraus gesucht habe. Für den Aufbau der Grafiken an sich war es einfach nicht nötig, extra danach zu suchen. :) Es ist mehr ein Hinweis, damit man weiß, wonach man in etwa suchen muss, wenn man sich in die Richtung weiter informieren will.

    Sollte mal jemand über passende Scripts/Plugins stolpern, kann ich sie an dieser Stelle gerne einfügen.

    Meine Ressourcen
    smiley43.png smiley44.png smiley45.png cover_icon.png kiste_icon.png tarot_icon.png
    MV_Help.png
    8/137
    Mit freundlichen Grüßenmaru_mv.png
    ~Maru
  • Hallo,

    tolles Tutorial, hat mir schon geholfen ^^, hätte aber eine Frage am Rande, funktioniert das $ vor dem Dateinamen auch bei anderen Dingen, z.B. Türen oder beweglichen Objekten? Währe gut zu wissen, da man ja ab und an eine Tür oder ähnliches bracuht die etwas größer ist, z.B. bein ner Burg oder so.

  • Mike44

    Das $ hat absolut gar nichts mit der Größe des characters/Sprites zu tun, es ist ein Kennzeichen für die Struktur.


    Mit $ erwartet der Maker eine Struktur eines einzelnen Spites von 3x4 gleich großen Zellen.

    Ohne $ erwartet der Maker eine Struktur von 4x2 Sprites mit insgesamt 12x8 gleich großen Zellen.


    Die Größe der Zellen ist dabei schnurz pieps egal, solange alle Zellen gleich groß sind. Wenn Du acht große Türen von 96x96 pixeln pro Tür hast, dann mache dies als ein Spritesheet von 1152x768 Pixeln (12x8 mal die Türgröße von 96x96) und es wird auch ohne dollarzeichen mit großen Türen funktionieren.

    Wenn Du nur eine Tür hast, dann brauchst Du das $ - egal wie groß die Tür ist.

  • Hallo,

    OK, hatte mich etwas missverständlich ausgedrückt, trotzdem eine befriedigende Antwort, also danke erstmal:).

    Mir war schon klar das sich das $ nicht auf die Größe bezieht, allerdings wollte ich mein Türen halt als Einzelstück einpflegen, mir ging es nur darum ob das $ für alle selbst eingepflegten Objekte in Char Ordner gilt.

  • Moinsen,

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

    Ist das mit dem gleichgroß so gemeint das, dass Bild innerhalb der verwendeten Zellen gleichgroß sein muss oder darf es einfach nur nicht außerhalb der Zellen sein?

    Ist das Blatt bei der rechten Tür schon zu viel oder geht das so?


    Gruß

    Infernos

  • Super hilfreich, danke. Charsets hatte ich in RM2k schon für Türen, Fackeln etc genutzt, aber das mit der beliebigen Framegröße (unter VX auch schon?), und das die Chars ein paar Pixel nach oben verschoben werden war für mich neu. Ich weiß genau, dass mich letzteres in den Wahnsinn getrieben hätte ... Auch dass man jetzt unter Vorzeichen 3x4 Charsets verwenden kann ... Hat sich ja doch einiges geändert. :huh: