Creatures 3 > Tutorials > Agent Spielzeug
Home

Creatures 1
Creatures 2

Creatures 3
*
Agenten
* Breed List
* Breeds
* Docking Station
* Ettins
* Forschung
* Grafiken
* Grendels
* Hilfe
* Namen
*
Norns
* Specials
* Sprites

* Tipps & Cheats
* Tutorials
* Utilities
*
Welten

Community
Website

Mein erstes Agenten-Tutorial ist ein einfaches Spielzeug, das sich bewegt und ein Geräusch von sich gibt. Am Beispiel der Nornpuppe habe ich versucht, die notwendigen Schritte zu erklären. Die benötigten Programme sind Agent Works und SpriteBuilder.

1. Grundlagen
2. Das Skript (COS)
3. Die Sprite-Datei (c16)
4. Die Hilfe-Datei (catalogue)
5. Kompilieren des Agenten

1. Grundlagen

Alle Skripte für Creatures 3 sind in der Programmiersprache CAOS geschrieben, vielen sicherlich schon ein Begriff durch die Cheats, die über die CAOS-Befehlszeile eingegeben werden können. CAOS-Befehle bestehen immer aus vier Buchstaben oder Zeichen, z. B. attr, endm, kill, perm, wait usw., bei Bedarf kann dahinter eine Zahl stehen. Das Skript selbst wird als COS-Datei abgespeichert, wobei COS "Creatures Object Script" bedeutet.

Jedes Skript hat eine Nummer; C3 kann Skriptnummern von 1 - 65.000 verwalten, wobei die ersten 10.000 für Creatures Labs und die Originalskripte reserviert sind. Es ist sinnvoll, sich zu informieren, welche der restlichen Nummern bereits vergeben sind, denn es sollte vermieden werden, Nummern doppelt zu verwenden, da sonst ein Skript das andere überschreibt. Listen der reservierten Skriptnummern können bei Bibble World und beim CDN eingesehen werden, dort kann man sich auch eintragen lassen.

Außer dem Skript benötigen die meisten Agenten eine Bilddatei, die im Format "c16" stehen muss. Solche Dateien nennt man Sprites. Möchte man dem Agenten auch ein Geräusch oder eine Melodie zuordnen, braucht man eine Sound-Datei im Format "wav". Wenn auch ein Hilfetext integriert werden soll, ist eine Catalogue-Datei erforderlich.

2. Das Skript (COS)

Das Skript für die Nornpuppe ist relativ kurz, deshalb ist es für Einsteiger recht gut geeignet. Es besteht aus drei Teilen, dem Install-Skript, dem Event-Skript und dem Entfern-Skript. Man öffnet bei Agent Works eine neue Datei und gibt dort den Text ein. Das gesamte COS sieht folgendermaßen aus:


inst
new: simp 2 21 25501 "nornboy1" 0 0 5000
attr 199
clac 0
bhvr 33
accg 3
elas 20
perm 60
fric 100
pose 0
mvto 5450 3580
velo rand 30 40 -5

scrp 2 21 25501 1
stim writ from 97 1
anim [0 1 2 3 3 3 2 1 0]
setv vely -10
sndc "gig2"
wait 20
pose 0
endm

rscr
enum 2 21 25501
kill targ
next
scrx 2 21 25501 1
Install-Skript
inst - installiert das Objekt, sämtliche Folgebefehle werden sofort ausgeführt
new: simp 2 21 25501 "nornboy1" 0 0 5000
* new: simp - ein neues einfaches Objekt (simple object) soll hergestellt werden
* 2 21 - 2 = family (gilt für die meisten Objekte), 21 = Genus Spielzeug
* 25501 - eigene (reservierte) Skriptnummer (bitte nicht die gleiche verwenden, siehe Grundlagen!)
* "nornboy1" - Name der benötigten Sprite-Datei
* 0 0 - beginnend beim Bild 0 sollen alle Bilder der Sprite-Datei verwendet werden
* 5000 - bestimmt die Tiefe des Objekts, wie weit der Agent im Vordergrund stehen soll (5000 = weit vorn)
attr 199
* attr - attributes (Eigenschaften) des Objekts
* 199 - die Werte für die verschiedenen Eigenschaften werden addiert (1 = tragbar für die Creatures, 2 = tragbar für die Hand, 4 = aktivierbar, 128 = Schwerkraft, 64 = erkennt Wände als Grenze)
clac 0 - nach dem Anklicken durch die Hand wird das (erste) Event-Skript ausgeführt, vorausgesetzt bei den Eigenschaften ist "aktivierbar" eingeschlossen
bhvr 33
* bhvr
- behaviour (Verhalten) des Objekts
* 33
- die Werte für die verschiedenen Verhaltensweisen werden addiert (Norns können das Objekt aufheben (32) und aktivieren (1))
accg 3 - acceleration (Beschleunigung), der Schwerkraft angemessen, Wert meistens 3
elas 20 - elasticity (Elastizität) beim Aufprall in Prozent (0 = bleibt sofort liegen, 100 = springt hoch)
perm 60 - permeability (Durchlässigkeit) durch Wände und Decken (Werte 1 - 100)
fric 100 - friction (Reibung), je höher der Wert, desto weniger gleitet das Objekt einen Abhang hinunter
pose 0 - ruft das Bild mit der Nummer 0 aus der Sprite-Datei auf, Objekt wird in dieser Position eingefügt
mvto 5450 3580 - move to (füge an dieser Stelle ein), die beiden Zahlen geben die Koordinaten an (mit Strg + Shift + X können die Koordinaten aufgerufen werden)
velo rand 30 40 -5
* velo
- velocity (Geschwindigkeit), gibt an, mit welcher Geschwindigkeit das Objekt eingefügt werden soll
* rand 30 40 -5 - random (zufällig, willkürlich), wähle einen zufälligen Wert in diesem Bereich
Event-Skript
scrp 2 21 25501 1
* scrp
- script, hier beginnt ein neues Skript, in diesem Fall ein Activate1-Skript (definiert das Ereignis "Aktivieren")
* 2 21 25501 - "family" und "genus" und die spezielle Nummer für diesen Agenten (siehe Install-Skript)
* 1 - dieses Skript ist ein "activate 1 event"
stim writ from 97 1
* stim writ from
- stimulus (Reiz), sendet einen Stimulus an das Wesen, etwas zu lernen oder zu erfahren
* 97 1 - diese Nummer sagt dem Wesen, dass es sich um ein Spielzeug handelt, dabei wird Langeweile reduziert
anim [0 1 2 3 3 3 2 1 0]
* anim
- animate! (starte eine Animation)
* [0 1 2 3 3 3 2 1 0] - die Bildreihenfolge der Animation, die Nummern beziehen sich auf die einzelnen Bilder der Sprite-Datei, die gleiche Nummer mehrmals hintereinander bewirkt, dass dieses Bild länger zu sehen ist
setv vely -10
* setv
- set variable value (ein variabler Wert wird gesetzt)
* vely -10 - vertical velocity (Geschwindigkeit auf der y-Achse), ordnet der Animation Geschwindigkeit in vertikaler Richtung (hier: nach oben) zu
sndc "gig2"
* sndc
- sound file (spiele ein Geräusch ab), ordnet dem Objekt während der Bewegung ein Geräusch zu
* "gig2" - Name der Sound-Datei, in diesem Fall das Lachen eines Norns aus dem Verzeichnis "Sounds"
wait 20 - warte eine kleine Weile bis zum nächsten Befehl (etwa 1 Sekunde)
pose 0 - nimm Position 0 ein, ruft das Bild mit der Nummer 0 aus der Sprite-Datei auf
endm - Ende des Event-Skripts "activate 1"
Entfern-Skript (Removal) *
rscr - kennzeichnet das kommende Skript als Entfern-Skript
enum 2 21 25501 - enumerate (aufzählen), alle Objekte mit dieser Skriptnummer sollen entfernt werden
kill targ - kill (zerstöre) target (Zielgruppe), entfernt das Objekt
next - wählt das nächste Spielzeug mit dieser Nummer aus
scrx 2 21 25501 1 - entfernt das Event-Skript (activate 1) mit dieser Skriptnummer
* Das Entfernskript ist nicht unbedingt nötig, wenn man Agent Works verwendet, da dieser Befehl beim Kompilieren eingegeben werden kann. Der Vollständigkeit halber habe ich es jedoch mit in die COS-Datei aufgenommen.
3. Die Sprite-Datei (c16)

Alle in Creatures 3 verwendeten Bilder haben das Format "c16", sie sind im Ordner "Images" zu finden. Mit dem SpriteBuilder kann man Bitmaps (bmp) in dieses Format umwandeln.

1. Der Hintergrund jedes einzelnen Bildes muss ganz schwarz (alle RGB-Werte auf 0) sein, denn schwarz erscheint im Spiel transparent. Das Bild des Objekts selbst sollte möglichst kein Schwarz enthalten.

2. Jedes Bild bzw. der schwarze Hintergrund muss (für eine Animation) die gleiche Größe haben.

3. Die Bilder müssen als Bitmaps (bmp-Format) abgespeichert werden, und zwar der Reihe nach mit den Endungen -0, -1, -2 usw., z. B. bild-0.bmp, bild-1.bmp, bild-2.bmp.

Um die Sprite-Datei zu erstellen, öffnet man den SpriteBuilder und geht auf File/Import All..., sucht das richtige Verzeichnis und öffnet die Datei bild-0.bmp. Alle anderen Bilder dieses Namens werden miteingefügt. Nun kann man die Datei unter dem gewünschten Namen im c16-Format abspeichern: File/Save As... "nornboy1.c16".

4. Die Hilfe-Datei (catalogue)

Für die meisten Objekte in Creatures 3 gibt es einen Hilfetext, der nach Drücken der F1-Taste mit der rechten Maustaste aufgerufen werden kann. Diese Dateien sind im Format "cataologue" abgelegt und können auch mit Agent Works erstellt werden, sind aber nicht unbedingt nötig. Wer seinem Agenten keine Hilfe-Datei mitgeben möchte, kann dieses Kapitel überspringen.

Man öffnet das Fenster für den Agent Help Editor, gibt dort den Namen, die Klassifizierung und den Text ein. Dann speichert man unter dem gewünschten Dateinamen ab - fertig!

5. Kompilieren des Agenten

Der letzte Schritt ist die Zusammenstellung des Agenten, alle bisher erstellen Files müssen zu einer einzigen agent-Datei kompiliert werden. Agent Works bietet auch diese Funktion an. Man öffnet das entsprechende Fenster und trägt die notwendigen Daten ein.

Der Name des Agenten muss der Name des Verzeichnisses sein, in dem sich alle Dateien für diesen Agenten befinden. Die Dateien, die für den Agenten (cos, c16 und catologue) erstellt wurden, müssen eingetragen werden, auf korrekte Schreibweise ist unbedingt zu achten. Die Sound-Datei muss in diesem Fall nicht angegeben werden, da sie sich schon im Sound-Verzeichnis befindet. Weiter unten, unter Creator Info, muss noch einmal der Name der Sprite-Datei eingetippt werden, denn das erste Bild davon wird im Erzeuger angezeigt. In die letzte Zeile gehört das Entfern-Skript mit der bekannten Skript-Klassifizierungsnummer.

Jetzt muss nur noch "Compile Agent" gedrückt werden, und wenn man Glück hat, passiert das auch ;-). Der neue Agent ist fertig, herzlichen Glückwunsch!

Copyright © 1999+ Mummy - all rights reserved