Body Datas verändern und erstellen
Oft werden für neue Nornrassen bereits bestehende
Spritebilder als "Vorlage" verwendet".
Ab und zu möchte man aber gerne die Spritebilder
erweitern, wie z.B. mit Flügeln oder anderem.
Dabei entsteht das Problem, dass neue Body Datas
erstellt werden müssen, da die alten für
die neuen Ausmasse der Bilder nicht mehr ausreichen.
Aber eins nach dem anderen...
Da die Norns im Spiel aus Einzelbilder zusammengesetzt
sind, muss bestimmt werden, auf welche Art und Weise
die einzelnen Körperteile aneinandergesetzt
werden müssen. Man kann es sich ganz einfach
vorstellen, wie eine Art Marionette, die aus einzelnen
Körpergliedern zusammengesetzt an wenigen Punkten
miteinander verbunden sind. Und dass der Fuss nicht
am Kopf hängen sollte, ist ja logisch!
Mittels der Body Datas wird für jedes einzelne
Spritebild festgelegt, welches diese "Anknüpfpunkte"
sind, an denen die einzelnen Körperteile aneinanderhängen.
Die Daten sind X- Y- Koordinaten in Anzahl Pixel
des einzelnen Bildes. Der Nullpunkt des Koordinatensystems
befindet sich in der linken oberen Ecke des einzelnen
Bildes. Da sich mit dem Verändern der Grösse
der Spritebilder auch die Koordinaten relativ zu
dem einzenen Bild verschieben, müssen diese
Daten neu angepasst werden.
Als Beispiel werd ich Änderungen erklären,
die für die beflügelten Körper der
Winged Pixies im Lebensstadium
"Kind" nötig waren.
So sieht das geöffnete Spritefile b01j.s16
(Körper für "Kind") im Spritebuilder
aus. Insgesamt 10 Bilder, die von 0 bis 9 durchnummeriert
sind.
Dies ist das neue Spritefile mit den
"beflügelten" Körpersprites.
Es ist deutlich zu sehen, dass die einzelnen Bilder
um einiges grösser sind als die im originalen
Spritefile. Erkennbar auch an den Zahlen, die unterhalb
der Nummerierung des einzelnen Spritebildes stehen.
Sie geben die "Ausmasse" des einzelnen
Bildes in Anzahl Pixel an (z.B. 50 x 64)
Picken wir uns ein bestimmtes Einzelbild
heraus, dasjenige mit der Nummer (8), d.h. Körperstellung
frontal nach vorne.
So sieht das Bild der Originalsprites
aus, wenn man es im Programm "Paint" öffnet.
Bei 600% Vergrösserung sind die einzelnen Pixel
ganz gut zu sehen und es fällt ein violetter
Pixel ganz oben im Bild auf, auf den ich einen roten
Pfeil deuten lasse. Wenn man nämlich mit dem
Mauscursor auf diesen Pixel bewegt, werden die Koordinaten
dieses Pixels rechts unten in der Leiste angezeigt.
Da dies etwas klein ist, hier die Orignalgrösse:
Die Zahl vor dem Komma, also "13",
bedeutet die Angabe für die Abzisse (x-Achse),
die Zahl hinter dem Komma die Angabe der Ordinate
(y-Achse). Oder ganz einfach ausgedrückt: der
Pixel ist zu finden, indem man von links oben 13
Pixel nach rechts und zwei nach unten zählt.
Wichtige Anmerkung: eigentlich sind es 14 und 3
Pixel, die erste Reihe senkrecht und die erste Reihe
waagrecht werden als "0" gezählt,
d.h. man muss mit dem Zählen nicht bei "1"
sondern tatsächlich bei "0" anfangen!
Dazu hier das original Body Data File:
Rot umrandet die beiden Koordinaten
in Zeile neun, korrespondieren zu Spritebild mit
der Nummer 8 (eigentlich das neunte Bild, aber die
Nummerierung der Bilder fängt mit 0 an!)
Und was sind das die anderen Zahlen?
Der Körper des Norns hat sechs "Anknüpfpunkte":
für Kopf, Arme links, rechts, Beine links,
rechts und für den Schwanz. In einer Zeile
stehen so 12 Zahlen, je eine y und x Koordinatenzahl
für jeden Anküpfpunkt in dieser Reihenfolge.
Alle hintereinander geschrieben. Jede Zeile dieser
10 Zeilen "gehört" also zu dem entsprechenden
Spritebild.
Das neue Spritefile mit den Flügeln
ist um einiges grösser als das Original-Spritebild.
Mit dem Cursor auf dieselbe Anküpfstelle gezeigt,
zeigt unten rechts jetzt einen neuen Wert an.
Diesen trägt man in das neue
Body Data File ein:
Da man jetzt den ersten Datenpunkt
im Bild festgelegt hat, kann man anhand der originalen
Body Data ausrechnen, wo die anderen Datenpunkte
liegen. Die Anknüpfpunkte haben sich ja relativ
zu dem Körper nicht verschoben, ihre Abstände
sind ja gleich geblieben, sie liegen nur relativ
zu dem grösseren Spritebild einfach auf anderen
Koordinaten. Also muss man einfach die Differenz
(Neuer Koordinatenwert minus orignaler Koordinatenwert
je für x- und y- Achse) addieren bzw. subtrahieren.
Ein Taschenrechner oder Excel-Tabelle ist alles,
was man dazu braucht. Und etwas Geduld. ;-)
Hat man keine im Bild von vorneherein
festgehaltene Anhaltspunkte wie diesen Kopf-Anküpfpunkt
Pixel, ist es ratsam, erst das orginale Spritebild
in einem Grafikprogramm zu öffnen, auf eine
hohe Vergrösserung zu bringen und "von
Hand" einen Koordinatenpunkt anhand der orignalen
Body Data zu ermitteln. Diesen Pixel kann man übergangsweise
z.B. mit violetter oder einer anderen hervorstechenden
Farbe kennzeichnen. Danach sucht man im neuen Spritebild
im Vergleich zu dem originalen Spritebild denselben
Punkt. Hat man diesen, kennzeichnet man auch ihn
und ermittelt entweder mittels Abzählen der
Pixel die Koordinaten oder lässt sie sich im
Grafikprogramm (z.B. "Paint") anzeigen
und trägt diesen in das neue Body Data file
ein. Danach kann man ebenfalls die weiteren Anknüpfpunkte
berechnen, muss diese also nicht unbedingt suchen
im Bild.
Für C2 gibt's den Attachment
Editor von Creaturelabs. Er ist sehr hilfreich,
wenn man mal verstanden hat, wie man mit ihm umzugehen
hat. ;-) Die obig gezeigte Methode ist sicherlich
zeitintensiver, jedoch lässt sie sich für
alle Creatures Versionen verwenden.