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
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.
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!
|