Attachmentfiles

Definition * Besonderheiten/Fehlerquellen

Zu jedem Spritefile (*s16) für Wesen im Ordner Images gehört eine gleichlautende Attachment-Datei im Ordner Body Data. Die Dateiendung ist *.att.

a00j.s16 im Ordner Images entspricht also a00j.att im Ordner Body Data

Attachment Dateien und Spritefiles stehen in engem Zusammenhang miteinander, denn die Attachmentfiles definieren, wo die einzelnen Körperteile aneinander festgemacht (attached) sind.
Oder anders gesagt: Das Spiel muß wissen, wie es die vielen Einzelbilder für die Körperteile (Spritefiles) zusammenfügen soll. Dieses Wissen bezieht es aus den entsprechenden Angaben in den Attachmentfiles.
a00j aus unserem Beispiel definiert also, bei welchen Koordinaten der Kopf eines männlichen Pixie Norns im Babyalter in den unterschiedlichen Stellungen (poses) erscheinen und dargestellt werden soll. Die Darstellung erfolgt also durch Auslesen des Spritefiles, die Plazierung durch Auslesen des entsprechenden Attachmentfiles.

Die Attachment-Datei a00j, mit einem Texteditor geöffnet, zeigt euch eine Reihenfolge von Koordinatenangaben für die verschiedenen Stellungen des Kopfes

attfile a00j

attachment body

Und hier (Abb. links) seht ihr, was ihr euch unter den Koordinatensequenzen einer Attachment-Datei vorstellen müßt. Die Abbildung zeigt die Attachmentpunkte (Koordinaten) für den Körperteil "body" in der Frontalansicht, also die Ansatzstellen für Kopf, Oberarme, Oberschenkel und Schwanzansatz am Rumpf.

 

 

Wenn nun den Spritefiles für neue Rassen keine Attachment-Dateien mitgegeben wurden, greift das Spiel automatisch auf die installierten Attachment-Dateien der Rasse auf dem vorherigen Slot zurück.
Das funktioniert aber nur, wenn im Slotbereich vorher eine Rasse installiert ist, deren Sprites in ihren Abmessungen nicht von der neu installierten Rasse abweichen.

Um diesen Mechanismus zu verstehen, stellt ihr euch am besten so einen Slotbereich als Schiene vor, auf der die Einzel-Slots von A-Z angeordnet sind.

Slotbereich Norns A B C D E F usw.
installierte Sprites A-Norns

NornSprites mit Standard-
abmessungen

B-Norns

NornSprites mit Standard-
abmessungen

C-Ettins

EttinSprites mit Standard-
abmessungen

D-Ettins

EttinSprites mit Standard-
abmessungen

Scorpio-
Norns

Sprites mit völlig neuen Abmessungen

F-Norns

NornSprites mit Standard-
abmessungen

-
installierte Attachments (atts) StandardNorn-
atts
keine eigenen atts keine eigenen atts StandardEttin-
atts

umgeschrieben nach Slot Norn D

neue atts keine eigenen atts -
Darstellung erfolgt: korrekt korrekt

denn Spiel greift zurück auf die atts auf Slot A; das sind Standard-atts und sie passen daher für die B-Norns

fehlerhaft

denn das Spiel greift zurück auf die Norn atts auf Slot A und die passen nicht für Ettins

korrekt korrekt fehlerhaft

denn Spiel greift zurück auf die Scorpio-atts auf Slot E und die passen nicht für die F Norns

-

 

Ähnlich verhält es sich, wenn innerhalb einer Rasse nicht für alle Altersstufen, für die es Sprites gibt, Attachmentdateien vorhanden sind. Fehlen also z.B. die korrespondierenden Attachmentfiles zu den Sprites für die Altersstufe "adult/erwachsen", so wird das Wesen "gestaucht" dargestellt, weil das Spiel dann weiterhin die atts für die Altersstufe "adolescent/Vorpubertät" hernimmt. Deren Koordinaten sind jedoch auf die kleineren Abmessungen der entsprechenden Bilddateien definiert (Wesen in der Vorpubertät sind kleiner, als Erwachsene)

Die folgende Abbildung zeigt einen Norn in der Altersstufe "adult". Es waren jedoch nur Attachmentdateien für die Altersstufe "embryo/baby" vorhanden. Der Norn erscheint "gestaucht", weil die Koordinatenpunkte für "baby" nicht mit den Abmessungen der Bilddateien für "adult" zusammenpassen.

Pixie Norn, gestaucht

 

Zu fehlerhafter Darstellung von Wesen kann es auch in folgeden Fällen kommen:
  • Es handelt sich um eine Rasse, die sich in der Größe nicht verändert. Der Rasse wurde zwar der komplette Satz Spritefiles mitgegeben, aber nur Attachmentfiles für die Altersstufe"baby". In diesem Fall greift das Spiel beim Wechsel der Altersstufen auf die BodyData der Babys zurück.
    Dies funktioniert, solange auf diesem Slot nicht vorher etwas anderes installiert war. Nehmen wir aber an, vor der Installation dieser Rasse war auf dem gleichen Slot eine Rasse installiert, deren Sprites die Größe verändern, und die deshalb auch BodyData für alle Altersstufen mitgebracht hat. In diesem Fall werden nicht alle Attachmentfiles der vorherigen Rasse überschrieben. Beim Wechsel der Altersstufe kommt es zu Darstellungsfehlern, da dann auf die verbliebenen Attachmentfiles der Rasse zugegriffen wird, die vorher dort installiert war.
  • Es wird eine neue Rasse hergestellt, bei der beim Erstellen die Größe der Originalbilder verändert wird (z.B. um Flügel an den Rumpf zu hängen oder die Ohren zu vergrößern.) In diesem Fall wird bei der Verwendung der Standard-Atts die Darstellung fehlerhaft, weil durch die veränderten Abmessungen der einzelnen Bilder die Ansatzpunkte der Körperteile an einer anderen Stelle des Bildes im Bezug zum Bildrand sind.

Wer also eine neue Rasse kreiert, der sollte sich die Mühe machen, den neuen Sprites auch einen kompletten Satz Attachmentfiles mitzugeben, denn man kann nie wissen, wer auf dem vorausgehenden Slot einzieht, bzw. was der jeweilige Spieler auf dem Slot dieser Rasse vorher installiert hatte ;-)

 

Creature Labs and CyberLife are registered trademarks and the Creature Labs, CyberLife, Creatures, Creatures 2, Creatures 3 and Creatures Adventures logos are trademarks of CyberLife Technology Ltd in the United Kingdom and other countries. CyberLife, Creatures, Albia, and Norn are also trademarks of CyberLife Technology Ltd which may be registered in other countries.