ja2basis


Faces Tutorial
05.06.2003

 

1. 1a) Grundlagen: Formate

Es gibt 7 verschiedene Formate für Faces:

Verzeichnis Filename Grösse in Pixel (Breite x Höhe) Bemerkung
\faces xx.sti 48 x 43 animiert (RPCs und EPCs)
  Bxx.sti 90 x 100 animiert (RPCs und NPCs)
\faces\13face xx.sti 15 x 14  
  Bxx.sti 29 x 33  
\faces\15face xx.sti 31 x 27  
  Bxx.sti 58 x 65  
\faces\bigfaces xx.sti 106 x 122  

 

2. 1b) Grundlagen: Animationen

Mit Ausnahme von dem Bigface (106x122) ist jedes STI-Bild für die Faces ein Multi-page Bild mit 8 Einzelbildern. Sie sind folgendermassen aufgebaut:

Teilbildnr. Verwendung Mimik (Richtlinie)
1 ganzes Gesicht neutral
2 Augen Augen geschlossen
3 Augen Augen halb offen
4 Augen ernster/finsterer/kritischer Blick
5 Augen erstaunter/heiterer Blick, Augenbrauen hochgezogen
6 Mund Mund halb offen
7 Mund Mund offen, zeigt Zähne, Kiefer nach unten
8 Mund Mund zu "O" geformt, Kiefer nach unten

Die Faces von Sirtech sind alle animiert, das heisst, sie enthalten bei allen Formaten sämtliche 8 Teilbilder, was völlig unnötig ist. Wie der Tabelle der Formate entnommen werden kann, genügt es, wenn für die NPCs die Faces im Format 90x100 erstellt und animiert werden. Lediglich bei den EPCs, also NPCs, die sich eskortieren lassen, muss zusätzlich auch das STI im Format 48x43 bereitgestellt werden, weil man diese Personen vorübergehend in ein Team aufnimmt. Dieses zusätzliche STI für die EPCs sollte ebenfalls animiert werden. Bei den RPCs benötigt man alle Formate, wobei lediglich die Faces im Format 90x100 und 48x43 alle 8 Teilbilder benötigen.

Bei den übrigen Formaten genügt es, Teilbild 1 (ganzes Gesicht) herzustellen. Mit den übrigen 7 Teilbildern verfährt man wie folgt:

Soll ein Teilbild in einem STI nicht sichtbar sein, dann färbt man dieses einfach mit der Hintergrundsfarbe des STIs ein, wodurch es im Game transparent wird und nicht mehr wahrgenommen wird.

 

3. 1c) Grundlagen: Teilbilderpositionen

Die Position eines Teilbildes ist festgelegt durch den Offset-Wert der linken oberen Ecke des Teilbildes auf der x- und y-Achse im Verhältnis zur linken oberen Ecke des Gesamtbildes bzw. Teilbild 1.

Die Position eines Teilbildes in einem STI hängt kumulativ von 2 bzw. 3 verschiedenen Faktoren ab.
- Offset-Werte in der JA2.EXE bzw. JA2UB.EXE, für jede Person individuell festgelegt;
- Offset-Werte, die in dem jeweiligen STI-File enthalten sind.
- beim Format 90x100 noch zusätzlich von der Einstellung der Werte in der Datei JAPROF.DAT (bei UB: JA25PROF.DAT), die mit Proedit.exe bzw. Proedit25.exe geändert werden können.

Das hört sich kompliziert an und ist es leider auch! Die Werte in der EXE sind fix, diejenigen im STI-File sowie in der JAPROF.DAT (bzw. JA25PROF.DAT können jedoch geändert werden.

StiEdit.exe, das geniale Programm von Bimbo, erlaubt es, die Position der einzelnen Teilbilder in einem STI zu verändern. Dabei kann der x- bzw y-Achsenwert verändert werden.

Mit diesem Werkzeug kann die Position eines falsch positionierten Teilbildes grundsätzlich korrigiert werden, aber nur bis zu einem gewissen Masse. Die Erfahrung hat gezeigt, dass der Offset-Wert eines Teilbildes in den Faces nicht beliebig verändert werden kann. Das liegt an dem bereits erwähnten Offset-Wert in der exe! Dieser ist für jede Person und dazu noch für jedes Face-Format verschieden.

Experimente haben ergeben, dass beim Format 90x100 mit StiEdit.exe noch Korrekturen von bis zu plus/minus 10 Pixel vorgenommen werden können. Bei höheren Korrekturwerten riskiert man, dass die Animationen nicht mehr funktionieren.

Bei den Bildern im Format 48x43 ist die Sache noch viel heikler, nicht nur, dass sehr schnell mal fehlerhafte Animationen auftreten, hier genügt unter Umständen eine Korrektur von 2 Pixeln auf der x- oder y-Achse, um das Game zum Absturz zu bringen!

Ich rate daher davon ab, von der Offset-Korrektur mit StiEdit.exe Gebrauch zu machen. Im folgenden ist beschrieben, wie falsch positionierte Teilbilder mit sicheren Methoden korrigiert werden können.

Teilbilder haben nicht nur ein bestimmtes Offset, sondern auch eine bestimmte Grösse. Ich empfehle, sich mal die Werte dieser Grössen mit StiEdit anzuschauen, damit man bei jedem Format-Typ ungefähr weiss, in welcher Bandbreite sich die Grössen bewegen. Sind die Teilbilder zu gross für das jeweilige Format, treten ebenfalls Probleme auf.

 

4. 2a) Bilder für NPCs herstellen: Allgemeines

NPCs benötigen lediglich ein animiertes Face im Format 90 x 100 (Bxxx.sti im Ordner /faces)

Dieses Format wird nur für die NPCs benutzt. Nota bene: jeder RPC ist zuerst NPC, bis er angeheuert wurde!

Wenn kein Bild vorhanden ist, wenn man einen NPC im Spiel anspricht, dann kommt das Face von Micky O'Brien inkl. einem Warnhinweis als Default (jedenfalls in UB).

Jeder Charakter in JA2/UB hat andere Werte für die Teilbilder von Mund und Augen!!

Für "stumme NPCs" genügt es, wenn man die Teilbilder 1 bis 5 erstellt. Die Mundanimationen kann man sich dann sparen. Die entsprechenden Teilbilder für den Mund füllt man mit der Hintergrundfarbe des STIs. GAP-Files braucht es übrigens nicht, wenn die NPCs stumm sind.

 

5. 2b) Bilder für NPCs herstellen: sichere Methode

1. Festlegen, welche Person (Profil-Nummer) ein neues Gesicht erhalten soll. Wichtig: Ein Face (eine Person) vom Orginalspiel nehmen, wo Mund und Augen ungefähr am selben Ort sind wie bei dem neuen Face. Gegebenenfalls Bild horizontal spiegeln.

2. Genaues Offset (x-/y-Achse) und Grösse der Teilbilder beim Orginal-Face von Sirtech notieren. Die Offsetwerte lassen sich aus der Einstellung bei ProEdit.exe bzw. ProEdit25.exe ablesen. Den Wert für die Grösse kann man mit StiEdit.exe ablesen. Die Offset-Werte sind je nach Profil sehr unterschiedlich. Als gängige Bildgrösse für die Teilbilder der Augen gilt ca. 46x22, für den Mund ca. 55x35.

3. Ein Bild mit dem neuen Gesicht in das Format 90x100 bringen. Daraus die 4 Teilbilder für die Augen und die 3 Teilbilder für den Mund herstellen.

Wer hier beim Ausschneiden der Teilbilder 2 bis 8 auf die zuvor ermittelten Werte der Teilbilder für Augen und Mund (Offset, Grösse) zurückgreift, kann sich die folgenden Schritte (Punkte 4 und 5) ersparen und gleich gemäss Punkt 6 weitermachen. Punkte 4 und 5 sind dennoch wichtig, und zwar dann, wenn man beabsichtigt, aus dem NPC einen RPC zu machen.

Wichtig: alle Bilder müssen im Format BMP mit 16 Mio Farben (RGB) gespeichert werden. Vom grossen Bild (Teilbild 1, 90x100) muss eine Farbpalette mit 256 Farben angelegt werden, wobei das erste Pixel dieser Farbpalette eine Farbe sein muss, die im Bild nicht vorkommen darf. Das ist dann die "Transparente Farbe" im STI.

4. Sämtliche Teilbilder an die richtige Position von Gesamtbild (Teilbild 1) kopieren. Man hat dann 8 verschiedene Bilder im Format 90x100, welche alle verschiedenen Mund/-Augen-Bewegungen enthalten.

Das ist sehr praktisch, weil man damit gleich auch noch ein animiertes GIF machen kann. Das animierte GIF erlaubt einem dann ausserhalb des Games zu prüfen, ob die Bewegungen ok sind. Für die RPCs ist die Herstellung dieser 8 Bilder ein "muss", damit die Sache dann bei den 48x43-Faces problemlos klappt!

5. Aus den 8 grossen Bildern die einzelnen Teilbilder neu ausschneiden, und zwar exakt mit den Werten (Offset, Grösse), die man aus dem Sirtech-Face erhalten hat.

(Diesen Schritt kann man sich - wie bereits erwähnt - sparen, wenn man vorgängig bei der Herstellung der Teilbilder für Augen und Mund bereits mit den korrekten Offset-Werten ausgeschnitten hat.)

6. Orginalbild von Sirtech mit der betr. Charakter-Nr. in StiEdit.exe laden, Farbpalette laden und die 8 Teilbilder mit den 8 neuen Teilbildern überschreiben und abspeichern.

Nun erübrigt es sich, an den Mund-/Augen-Positionen noch was ändern zu müssen, die Teilbilder sind im Game automatisch am richtigen Ort.

 

6. 2c) Bilder für NPCs herstellen: flexible Methode

Die "flexible Methode" kommt dann zum Zug, wenn man es nicht so hinkriegt, dass das neue Gesicht Mund und Augen an der selben Stelle hat wie das Face der Person von Sirtech. Das heisst also, die neuen Teilbilder haben nicht das selbe Offset wie die alten.

Nun kommt Proedit.exe bzw. ProEdit25.exe zum Zug. Wie bereits erwähnt, gibt es dort (linke untere Ecke des GUI) die Möglichkeit, die Offset-Werte für Augen und Mund zu verändern. Um zu erfahren, welche neuen Werte in Proedit eingegeben werden müssen, muss der sog. Korrekturfaktor" ermittelt werden.

Der "Korrekturfaktor" besteht je für Augen und Mund aus einem x- und einem y-Achsen-Wert.
Korrekturfaktoren ermittelt man wie folgt:

1. Spiel starten und mit dem NPC sprechen.

2. Wenn der NPC spricht und dabei verschobene Teilbilder für Augen und/oder Mund aufweist, einen Screenshot machen. Da man nicht immer den richtigen zeitlichen Moment erwischt, besser gleich ein halbes Dutzend Screenshots anfertigen.

3. Die Screenshots in ein Bildbearbeitungsprogramm laden. Nun mit dem Rechteck-Auswahl-Tool das falsch plazierte Teilbild erfassen und an die richtige Stelle schieben. Dabei notieren, um wieviele Pixel das Teilbild verschoben werden muss. Verschiebungen nach rechts und nach unten ergeben positive Korrekturwerte, Verschiebungen nach links und nach oben ergeben negative Korrekturwerte. Im nachstehenden Bild beträgt der Korrekturfaktor x = -2 / y = +3

4. Nun kann man die Zahlenwerte in ProEdit bei x und y für Augen (bzw. für Mund) um die gemessenen Werte korrigieren.

 

7. 3) Bilder für RPCs herstellen: Allgemeines

Für die RPCs benötigt man sämtliche Formate. Wie das Face im Format 90x100 hergestellt wird, habe ich oben beschrieben. Das wichtigste Face für die RPCs ist dasjenige im Format 48x43. Dieses muss animiert sein mit sämtlichen 8 Teilbildern und wird für das Interface in der strategischen Übersicht wie auch in den Sektoren selber benötigt.

 

8. 3a) Bilder für RPCs herstellen: 48x43, Vorbemerkungen

Die 48x43-Faces haben andere Offsets für die Teilbilder 2 bis 8 als die 90x100 Bilder. Ist ja klar, weil ein anderes Bildformat und ein anderer Bildausschnitt vorliegt. Korrekturen bei der Plazierung der Teilbilder sind bei den 48x43-Faces recht heikel, darum empfehle ich hier auf jeden Fall, die Offset und Grössen-Werte der Teilbilder aus dem Sirtech-Bild, das man überschreiben will, genau anzuschauen und für das selber zu machende Face exakt zu übernehmen. Damit spart man sich grossen Ärger!


Die Teilbilder-Werte aus den Orginal-Sirtech-Bildern kriege ich mit den folgenden Methoden:
- Grösse: kann direkt in StiEdit.exe abgelesen werden;
- Offset: Orginalbild und je ein Teilbild für Mund und Augen mit StieEdit.exe als BMP abspeichern (aus dem STI extrahieren). Dann die Teilbilder im Bildbearbeitungs-programm auf dem Gesamtbild (Teilbild 1) so hin- und herschieben, bis sie am richtigen Platz sind (siehe dazu oben unter Ziff. 2 lit. c). Den relativen Wert der linken oberen Ecke notieren (x-/y-Achse).

Da ich keine Lust habe, die Animationen für das neue Format neu zeichnen/malen zu müssen, greife ich auf die bereits fertigen Animationen im Format 90x100 zurück. Wer hier - wie oben angeregt - von allen verschiedenen Gesichtsausdrücken ein 90x100 Bild erstellt hat, ist fein raus. Sonst muss diese Arbeit noch nachgeholt werden.

Farbpalette nehme ich die selbe wie für das 90x100 Bild. Eine neue anzufertigen ist nicht notwendig.

 

9. 3b) Bilder für RPCs herstellen: 48x43, erstellen

1. Die 90x100 Faces als Vorlage nehmen. Allenfalls beim neuen Gesamtbild (Bild 1) den Bildhintergrund verdunkeln (ist bei den Sirtech-Faces so).

2. Aus dem ersten 90x100 Bild einen Bildausschnitt wählen, der dem neuen Format (breiter als hoch im Verhältnis von ca. 10 zu 9) entspricht. Meistens bedeutet das, oben und unten vom 90x100 Bild etwas abschneiden; unten nur soviel, dass das Kinn immer im Bild bleibt. Augen und Mund sollten in etwa am selben Platz sein, wie im 48x43 Face von Sirtech, das man überschreibt.

3. Das beschnitte Bild auf das Format 48x43 verkleinern. Hierbei den Prozentsatz merken, der dem Verhältnis vom verkleinertem Bild zum Orginalbild entspricht (ist bei mir meistens so um 55% rum.

4. Punkte 2 und 3 für die restlichen 7 Teilbilder im Format 90x100 wiederholen. Dabei darauf achten, dass genau der selbe Ausschnitt des Bildes gewählt wird (vorgängig notieren) und dass die Verkleinerung mit demselben Prozentsatz und der selben Methode (z.B. Paintshop Pro 7.0: Methode "smart") vorgenommen wird.

5. Nun hat man wiederum 8 Einzelbilder im Format 48x43. Aus den Bildern 2 bis 8 die Teilbilder für Augen und Mund ausschneiden. Hierbei den Offset- und Grössenwert verwenden, den man zuvor aus dem Sirtech-Orginalbild ermittelt hat. Falls man den Hintergrund verdunkelt hat noch prüfen, ob die Teilbilder davon betroffen sind. Ggf. retouchieren, bis keine Unterschiede mehr feststellbar sind. Am einfachsten findet man Fehler im Hintergrund, indem man sich das Ganze mal im Spiel anschaut.

6. Einbau der Teilbilder in das STI wie oben zu den NCP-Faces beschrieben. Die Ausführungen betreffend Farbpalette, Farbtiefe beim Speichern etc. gelten analog, ausser, dass hier im Regelfall auf die bestehende Farbpalette von den 90x100 Bildern zurückgegriffen werden kann. Ausnahme: wenn man den Hintergrund radikal ändert bzw. keine ähnliche Farbe in der Palette vorhanden ist.
Falls man keine 8 verschiedenen Bilder im Format 90x100 angefertigt hat, kann man auch mit folgender Methode vorgehen:
- 90x100 Bild beschneiden, so dass das Bild breiter als hoch wird;
- alle 7 Teilbilder reinkopieren, man hat dann ebenfalls 8 Bilder
- die 8 Bilder alle um den selben Faktor verkleinern
- wie oben, ab Punkt 5 weiterfahren.

 

10. 3c) Bilder für RPCs herstellen: Bigface (106x122)

Bigfaces von Sirtech zeigen einen Charakter meistens mit einem etwas grösseren Bildausschnitt. Man sieht nicht nur den Kopf sondern auch einen Teil des Oberkörpers und einen deutlichen Hintergrund mit - in vielen Fällen - einer Landschaftsszene. Hier einfach ein gutes Bild von der neuen Person nehmen und auf einen passenden Hintergrund setzen. Die STIs enthalten nur ein Bild. Für das Bigface muss immer dann eine neue Farbpalette erstellt werden, wenn man nicht auf das selbe Ausgangsbild zurück greift oder aus diesem einen grösseren Bildausschnitt als zuvor wählt.

 

11. 3d) Bilder für RPCs herstellen: die übrigen Formate

Alle Faces-Bilder (Ausnahme: Bigfaces) fallen in 2 Kategorien: in jedem Ordner hat es jeweils ein grösseres STI mit dem Filenamen Bxxx.sti und ein kleineres mit dem Filename xxx.sti (ohne vorangestelltes "B"). Faces mit "B" sind nicht nur jeweils grösser, sie sind auch höher als breit und zeigen den ganzen Kopf, während die Faces ohne "B" breiter als hoch sind, einen oben und unten beschnittenen Kopf sowie einen schwarzen Hintergrund aufweisen.

Die Faces in den Ordnern faces/33face und faces/65face brauchen nicht animiert zu werden. Benötigt wird je nur das 1. Teilbild. Die übrigen 7 Teilbilder einfach mit der Hintergrundsfarbe des STIs füllen. Das geht prima mit dem Füllwerkzeug von StiEdit.exe.

Die Bilder werden durch Verkleinern der entsprechenden Bilder vom Format 90x100 und 48x43 gewonnen. Aus dem 90x100 Face macht man also die 58x65 und 29x33 Bilder und für die anderen nimmt man das 48x43 Face als Vorlage.

Dazu einfach das Ausgangsbild in das Bildbearbeitungsproggie laden, die in der Tabelle oben enthaltenen Werte als neue Bildgrössen angeben und fertig! Die Proportionen bleiben dabei ungefähr erhalten was für unsere Zwecke mehr als reicht.

Einbau ins STI, Farbtiefe etc. wie bei den 90x100 bzw. 48x43 Bildern. Es kann die vorhandene Farbpalette vom 90x100 Bild verwendet werden.

 

30. April 2003 / Sinclair



copyright by www.jaggedalliance.de - Stand: 05.06.2003