Auto-Template - fertig!

Top  Previous  Next

Das Auto-Template ist endlich fertig. Ich bin noch einmal Alles durchgegangen und jetzt ist es noch einfacher zu handhaben als je zuvor. Da sich seit der ersten Folge des Auto-Templates vieles verändert hat, gehen wir am besten nochmal durch den ganzen Prozess hindurch: Aufstellen und Spielen eines schnellen Rennspiels, das auf diesem Template basiert.

 

Zuallererst brauchen Sie eine Main-Skriptdatei. Ich habe dem Template ein Skript namens main.c beigelegt (natürlich können Sie auch irgendeinen anderen Namen dafür nehmen). Sie können aber auch ganz bei Null anfangen und so etwas einfaches wie dieses nehmen:

 

#include <acknex.h>
#include "t_car.h" // include player's car code
#include "t_car_cameras.h" // include the car camera code
#include "t_car_ai.h" // include the enemy cars AI code
#include "t_car_props.h" // include the template car speedometer, racing timer, semaphore
#include "t_car_tracks.h" // include racetracks detection code for ice, grass, water and oil
#include "t_car_keys.h" // include user-defined keys for racing, jumping, etc

 

function main()

{

  video_mode = 8; // run at a 1024x768 pixels resolution

  level_load("racetrack01.wmb"); // use your own level name here

}

 

Das Skript oben enthält sämtliche Template-Goodies, Sie müssen aber nicht sämtliche der Dateien 'includen'. Schauen wir mal, was jede einzelne davon macht:

 

1. t_car.h

 

Dieses Skript enthält die Aktion für das Player-Auto. Sobald Sie diese per "include" einbinden, erscheint die Aktion mit dem Namen "t_players_car" in WEDs Aktionsliste und kann dem Automodell angefügt werden. Vergewissern Sie sich, auch wirklich separate Auto- und Radmodelle zu benutzen. Das Player-Auto benutzt nämlich die Physik-Engine und die Räder treiben es an. Sie können ein einzelnes Modell verwenden. Nehmen Sie entweder die mitgelieferten Modelle "bmw.mdl" und "wheel.mdl" oder aber Sie designen sich Ihre eigene Karosserie- und Radmodelle.

 

Klicken Sie in WED auf "Recources", öffnen Sie "script files" und wählen Sie dann "t_car.h".

 

 

aum90_cartemplate08

 

Klicken Sie mit Rechts auf die Datei und wählen Sie "Customize", um das folgende Panel angezeigt zu bekommen.

 

 

aum90_cartemplate01

 

Wenn Sie wollen, verändern Sie die Werte, mit den gegebenen Auto- und Radmodellen funktionieren Sie aber gut. Vergessen Sie nicht den Knopf "?" in der oberen, rechten Ecke des Panels anzuklicken und dann klilcken Sie zum Anzeigen zusätzlicher Informationen auf eines der Felder.

 

aum90_cartemplate09

 

 

2. t_car_cameras.h

 

Dieses Skript ermöglicht es dem Player, für´s Game eine der 3 eingebauten Kameras (Orbit, Cockpit, Verfolgung) zu benutzen.

 

aum90_cartemplate10

 

aum90_cartemplate11

 

aum90_cartemplate12

 

Mit der "C"-Taste können Sie durch alle verfügbaren Kameras gehen. Sie können bei Spielstarten Default-Kameramodus setzen sowie die Verfolgungsgeschwindigkeit, die Winkel und Offsets, indem Sie die Datei "t_car_cameras.h in WED anpassen.

 

 

aum90_cartemplate02

 

 

3. t_car_ai.h

 

'Includen' Sie dieses Skript in Ihre Main-Datei und Sie können die folgenden Möglichkeiten aus WEDs Aktionsliste nutzen:

 

t_race_finischer. Diese Aktion kann jedweder Entity, die am Ende des Levels platziert ist, zugewiesen werden. In meinem Rennbahn-Level ist das die weiße Flagge am Ende. Sobald eines der Autos (Player- oder Feindautos) ihr nahe kommt, ist das Rennen für dieses bestimmte Auto zuende. Ist die Rennbahn einigermassen groß, fügen Sie soviele "t_race_finischer"-Entities in Ihr Level ein, wie Sie mögen. Wenn Sie wollen, können Sie in WED auch ein paar der finisher-Entities unsichtbar machen.

 

t_ai_car. Weisen Sie diese Aktion einer Feindauto-Karosserie zu (bis zu 1.000 Feindautos lassen sich in einem Level verwenden) und es wird sich automatisch selbst aufstellen. Achten Sie darauf, dass Sie für jedes Auto in WED einen eigenen Pfad erstellen und dessen Ursprung nah am Auto platzieren, bei Spielstart erkennen die Autos den nächstliegenden Pfad und benutzen diesen. Die AI-gesteuerten Autos können andere Autos erkennen und werden, um Kollisionen zu vermeiden, abbremsen. Nichts desto trotz werden sie, fallsi der Player Ihnen in den Weg kommt und Sie zu blockieren versucht, in sein Auto rauschen und nach vorne gelangen.

 

Sie können das Skript "t_car_ai.h" gerne über den WED-Tab "resources -> script files" anpassen. Der Trigger-Wert "end of race" setzt den Abstand (in Quants), der das Rennen beendet sobald die Autos der "t_race_finisher"-Entity nahekommen.

 

aum90_cartemplate03

 

 

4. t_car_props.h

 

Dieses Skript enthält verschiedene Komponenten:

- Tacho

- Hochpräzisionszeitnehmer für´s Rennen

- Semaphor

- Wasser-Shader (hilfreich, wenn es in Ihrem Rennlevel Wasser gibt).

 

Tacho, Zeitnehmer und Semaphor werden in Ihrem Projekt durch einfaches 'Includen' der Datei t_car_props.h automatisch aktiviert. Sie können deren Verhalten jedoch anpassen oder auch komplett deaktivieren.

 

aum90_cartemplate04

 

Der Wasser-Shader verwendet Gamestudios eingebauten Wassereffekt, der in der Datei mtlFX.c enthalten ist. Weisen Sie Ihrem Wasser-Modell oder -Terrain die Aktion fx_water zu und es wird, sofern Ihre Engine-Version und Ihre Videokarte das unterstützen, aktiviert (dazu wird eine V.S / P.S. 2.0-Videokarte oder besser gebraucht). Haben Sie eine schwache Videokarte oder eine niedrige Engine-Version, wird das Wasser einen einfachen Wasser-Schiebeeffekt verwenden.

 

 

5. t_car_tracks.h

 

Dieses Skript verändert das Verhalten des Player-Autos beim Fahren über die vereisten, grasbewachsenen oder ölverschmierten Bereiche des Levels (Geschwindigkeit, Reibung, Drehung etc.). Das Auto bremst ab wenn zumindest eines seiner Räder Gras berührt und gerät ausser Kontrolle sobald die Räder auf die vereisten Areale geraten. Berühren seine Räder einen ölverschmierten Bereich, wird es schwierig für den Player, sein Auto zu kontrollieren. Zusätzlich dazu generiert das Skript Wasserspritz-Partikeleffekte und Wasser-Soundeffekte wenn die Räder des Player-Autos im Level eine Wasserfläche berühren.

 

Fangen Sie damit amn, der entsprechenden Terrain- oder Modell-Entity die Aktion "tcar_terrain" zuzuweisen. Das Verhalten auf Gras, Eis usw. wird von der Farbe der Leveltextur ausgelöst. Wollen Sie dieses Feature nutzen, muß eine spezielle Bitmap vorbereitet werden. Exportieren Sie die Skin des Terrains oder Modells, das für das Level verwendet wird und nennen Sie sie "colormap.tga". Färben Sie in Ihrem Lieblingsmalprogramm die Bereiche, die vereist sein sollen in RGB = 255 255 255 ein, für das Gras nehmen Sie RGB = 0 255 0, für´s Öl RGB = 0 0 0 und 0 0 255 für´s Wasser. Hier ein Beispiel ein er colomap.tga:

 

aum90_cartemplate06

 

In diesem Beispiel fährt das Playerauto im roten Bereich ganz normal und wird in den grünen, blauen, weißen und schwarzen Bereichen von Grass, Wasser, Eis und Öl beeinflußt. Die aktiven Farben von colormap.tga sowie die Eigenschaften der Wasserpartikel lassen sich in WED anpassen, s. u.:

 

aum90_cartemplate05

 

 

6. t_car_keys.h

 

Dieses Skript erlaubt es dem Player, die Tasten und Joystick-Buttons, die vom Auto-Template benutzt werden, anzupassen. Klicken Sie mit Rechts in WED unter "resources -> script files" auf t_car_keys.h und schon können Sie die neuen Tasten und Joystick-Buttons nach Belieben zuweisen.

 

aum90_cartemplate07

 

Das war´s für heute. Ich sehe Sie nächsten Monat wenn ich mit der Arbeit am Shooter-Template anfange.