Insanity Editor
Copyright © 2002, Lonely Cat Games, s.r.o.
Nach
der Installation befinden sich
folgende Ordner und Daten im Zielordner (insofern
die vollständige Installation ausgewählt wurde):
Data\*.dta
|
Data-Daten
- beinhaltet Bitmaps, Geräusche, Modelle, und
andere Spielressourcen Dies ist ein unkomprimiertes RAR-Archiv, dessen Inhalt in das Spielverzeichnis zu entkomprimieren ist. Dabei musst du die DTA-Datei löschen/verschieben, sonst wird das Spiel immer nach den Ressourcen in der DTA-Datei schauen und nicht direkt in dem System-Verzeichnis (alle Änderungen, die du bei den existierenden Daten gemacht hast, wären dann nicht sichtbar). Um eine DTA-Datei zu erstellen, benutze einfach RAR ohne zu komprimieren (nur speichern). |
| Data\*.cnt |
Dies ist eine zu den DTA-Daten passende Inhaltsdatei, welche die Namen, die Position und Größe innerhalb einer DTA-Datei enthält. Du brauchst dich nicht um diese Datei zu kümmern. Jedes Mal, wenn eine DTA-Datei modifiziert wurde oder die CNT-Datei nicht vorhanden oder falsch ist, wird sie rekonstruiert sobald eine DTA- Datei geöffnet wird. |
| Bin\*.* |
Spiel und Editor binaries - Diese Daten beinhalten alle wichtigen ausführbaren Daten und Bibliotheken, die das Spiel und der Editor für eine einwandfreie Funktion benötigen. |
| Bin\H&D.exe |
ausführbare Spieldatei |
| Bin\HDEdit.exe |
Insanity Editor - zum Editieren und Einstellen von Hidden & Dangerous |
| Bin\IConfig.exe |
Dienstprogramm zum Einstellen deiner Grafikhardware |
| _tmp\Dbase.bin |
Spielecache - dieser wird benutzt um Laufzeitdaten zu speichern und wiederzuverwenden. Diese Datei wird von der Insanity Engine erstellt und vollständig gemanaged. Falls du sie löschst, wird sie erneut erstellt sobald das Spiel oder der Editor gestartet werden. |
Sobald du dich entscheiden hast den Editor zu installieren werden folgende Daten erstellt:
| Editor\editor.bin |
Diese Datei beinhaltet die momentanen Einstellungen des Editors. Sie wird erstellt, wenn der Editor das erste Mal gestartet wird. |
| Editor\Help\*.htm |
Hilfe-Daten zum Insanity Editor und zum Editieren von Hidden & Dangerous |
| Editor\MaxPlugins\ |
Plug-ins zum Import und Export der Insanity 3D-Daten von und zu 3D Studio MAX 3.x. |
Wenn du den Inhalt der DTA-Daten in ihr Zielverzeichnis extrahierst werden folgende Verzeichnisse erstellt:
| Maps\ |
beinhaltet
alle Texturen des Spieles Anmerkung: Du kannst nur das Stammverzeichnis benutzen (ohne Unterverzeichnisse), um deine Bitmaps zu verwenden. Alle Unterverzeichnisse, die sich in dem Maps\ Verzeichnis befinden, werden für spezielle Zwecke des Spiels benutzt. Folgende Dateitypen werden unterstützt: PNG, BMP, JPG palletized,
true-color, grayscale |
| Sounds\ |
enthält
Spieltöne und -stimmen folgende Dateitypen werden unterstützt: WAV & OGG Behalte die Daten im 22025 Hz, 16-bit Format für die beste Performance. |
| Sounds\Common\ |
allgemeine Töne für alle Sprachen - Dieses Verzeichnis ist innerhalb des Editors verwendbar, Unterverzeichnisse werden erlaubt. |
| Sounds\English\ |
sprachspezifische Töne (Stimmen) - Für andere Sprachen besteht ein ähnliches Verzeichnis. |
| Music\ |
Spielmusik
/ Soundtrack. |
| Tables\ |
spielspezifische Daten - Es wird nicht empfohlen, irgendwelche von diesen Daten zu editieren (obgleich der Editor dies erlaubt). Das Editieren der Tables kann zur unsachgemäßen Arbeit des Spiels führen. |
| Text\ |
Spieltextdateien - Für jede unterstützte Sprache gibt es ein Unterverzeichnis mit Namen der Sprache. |
| Procedurals\ |
Engine Scripts - Sie definieren Funktionen von vorgegebenen Texturen und morphenden Objekten. |
| Models\ |
Modell Dateien - Alle Dateien in diesem Verzeichnis (incl. Unterverzeichnis) haben als Erweiterung I3D. Dies ist die Erweiterung, welche für die Insanity 3D-Szenen und -Modelle benutzt wird. Unterverzeichnisse werden erlaubt. |
| Anims\ |
Spielanimationen |
| Missions\ |
Spielmissionen, Anweisung, Diagramme usw. |
Anmerkungen:
Das Sounddateiformat OGG ist eine Alternative zu MP3. Es hat ein ähnliches Kompressionsverhältnis und eine ähnliche Kompressionsqualität, aber es erfordert kein Copyright für seinen Gerbrauch. Du kannst Plug-ins für viele Tonverarbeitungsprogramme wie WinAmp, GoldWave usw. downloaden.
Wichtig!
Bevor
du anfängst Veränderungen am Spiel vorzunehmen, versichere
dich, dass alle Daten, die du ändern möchtest, zugänglich
sind. Weil diese in der .DTA-Datei in Data\directory gespeichert
werden, sind nicht alle Dateien beschreibbar. Um diese Daten
zu ändern extrahiere den Inhalt der DTA-Daten in das
Spielinstallationsverzeichnis. Dann lösche den Inhalt der
DTA-Datei, damit das Spiel nicht nach Dateien in den DTA-Dateien
sucht und sie stattdessen direkt von den extrahierten
Verzeichnissen lädt.
Wenn der Inhalt der internen Tables oder anderer wichtiger
Dateien geändert wurde, funktioniert das Spiel nicht mehr
einwandfrei. Bei Änderungen, die nicht mehr rückgängig zu
machen sind, solltest du das Spiel wieder deinstallieren. Lösche
den gesamten Inhalt des Zielverzeichnisses und installiere das
Spiel noch einmal von der CD.
Die
Arbeit im Editor wird mit zwei Eingabemodi durchgeführt - einem Ansichtmodus
und einem Eingabemodus . Durch das Wechseln
zwischen diesen zwei Modi kann ein Designer durch eine Mission
frei steuern und gleichzeitig Gegenstände in eine Szene
einfügen.
Im
Folgendem ist das Verhalten der Maus und der Tasten während
dieser beiden Modi beschrieben.
Sowohl
im Ansichts-, als auch Eingabemodus :
| Leertaste | umschalten zwischen Eingabe- und Ansichtsmodus | |
| 0 .. 9 | wählt die Geschwindigkeit der Kamerabewegung, der Übersetzung, der Umdrehung, der Skala und anderer Aktionen | |
| Shift | + Maus X/Y bewegen | bewegen ausgewählter Objekte in X/Z Achse |
| Alt | + Maus Y bewegen | bewegen ausgewählter Objekte in Y Achse |
| Strg + Alt | + Maus X bewegen | Größe der ausgewählten Objekte - abhängig vom gegenwärtigen Skalamodus, der konstant oder ungleichmäßig ist |
| Shift + Alt | + Maus X bewegen | rotieren ausgewählter Objekte um die gegenwärtige Achse, in der Welt oder an lokalen Koordinaten (abhängig vom momentanen Rotationsmodus) um den Drehpunkt |
Nur im Ansichtsmodus :
| Strg | + Maus- bewegung | Orbit Kamera um ein Objekt in der Mitte des Bildschirmes |
| Linke Maustaste | verschiebt die Kamera vorwärts in der gegenwärtigen Geschwindigkeit | |
| Rechte Maustaste | verschiebt die Kamera rückwärts in der gegenwärtigen Geschwindigkeit | |
| Linke + Rechte Maustaste | + Maus-bewegung | verschiebt die Kamera auf ihren lokalen XY-Achsen in der gegenwärtigen Geschwindigkeit |
Nur im Eingabemodus :
| Linke Maustaste | Auswahl eines Modells oder Objektes - oder abbrechen, wenn auf den Hintergrund geklickt wird | |
| Rechte Maustaste | Auswahl eines Objektes - oder abbrechen, wenn auf den Hintergrund geklickt wird | |
| Doppel-Klick (linke oder rechte Taste) | auswählen
eines unbenutzbaren visuellen Gegenstandes, wie
particles, aufflackern usw. |
|
| Strg | + Linke Maustaste | hinzufügen oder löschen eines Modells oder Objektes zu/von einer momentanen Auswahl |
| Strg | + Rechte Maustaste | hinzufügen oder löschen eines Objektes zu/von einer momentanen Auswahl |
| Strg + Shift | + Linke Maustaste | verbindet momentane Auswahl zu einem Modell oder Objekt oder zum primären Sector, wenn auf den Hintergrund geklickt wird |
| Strg + Shift | + Rechte Maustaste | verbindet die momentane Auswahl zu einem Objekt |
| Strg + Shift + Alt | + Rechte Maustaste | Auswahl der Kollisionsvorgabe |
Der Insanity Editor ist ein Werkzeug, welches Designern erlaubt Szenen zu entwerfen und "rohe" 3D Graphiken einem Spiel hinzuzufügen. Dieser Editor ist KEIN Modellierungswerkzeug. Jegliche Modellierung wurde mit einem anderen Grafikprogramm entworfen. Diese CD beinhaltet die Import- und Export-Plug-ins für 3D studio Max 3.1. Du kannst jede mögliche Mission, jedes Modell oder jede Animation im Spiel importieren, ändern und wieder exportieren.
Im Allgemeinen werden "rohe" Szenen in einem anderen Grafikprogramm modelliert und texturiert. Dann werden sie in der Szene fein-abgestimmt. Modelle sind Mikro-Szenarien, die in eine große Spielszene eingefügt werden. Sie werden dann benutzt, wenn das gleiche Modell an vielen Stellen der Karte wiederverwendet werden soll. Es wäre ineffizient die gleiche Geometrie in jede 3D Szene einzufügen. Daher verwendet eine Szene einen Hinweis auf eine andere 3D Modell-Datei. Solch ein Modell kann öfter in der gleichen Mission oder in vielen Missionen benutzt werden.
Die Arbeit des Designers mit dem Editor umfasst:
- die Beleuchtung und Licht-mapping,
- das Hinzufügen der Töne,
- das Hinzufügen von Modellen in die Szene,
- die Einstellung der Kameraeigenschaften,
- das Einstellen der Kollisionen und
- die Platzierung der Spielelemente (Schauspieler, Checkpoints).
In den folgenden Punkten werden wir nun zum Prozess des Erstellens einer Spielszene kommen.
Eine typische 3D Szene wird von folgenden Elementen
gebildet, die dann eine Szene bilden. Diese
beinhaltet sichtbare Objekte und Hilfsobjekte. Bild 1 zeigt
das Objektauswahlmenü des Editors.
| Elemente: - Visual sichtbare Objekte, also alles was angezeigt wird; verschiedene Typen von visuellen Objekten verfügbar - Light Hilfsobjekt, welches die Quelle eines Lichtes darstellt - Sound Hilfsobjekt, welches die Quelle eines Geräusches darstellt - Model Gruppe von verschiedenen Elementen; wird normalerweise von einer Datei geladen - Camera Blickpunkt - Volume Hilfsobjekt, das die ungefähre Form eines sichtbaren Objektes schätzt und seine Kollision darstellt - Sectors Hilfsobjekte, erleichtern zusammen mit Portalen die Sichtoptimierung - Target Helfer, welcher benutzt wird um ein anderes Objekt darauf steuern zu lassen; hauptsächlich für Kamerafahrten - Dummy Hilfsobjekt, zur Spezifizierung der Position und der Rotation für verschiedene Zwecke des Spiels - Occluder Objekt für Optimierungszwecke; es ist möglich die Geometrie hinter ihm zu verstecken - Joint Gegenstand der benutzt wird um zusammen mit den einfachverstrickten Visuals die definierten Rotationsverbindungen anzuzeigen. - User benutzerdefinierter Typ oder Gegenstand um Checkpoints zu bearbeiten |
![]() Bild 1 Objekt Auswahl |
||
3D Objekt EigenschaftenAlle diese Objekte haben folgende Gemeinsamkeiten: - Position im 3D Raum - Rotation - Größe Bild 2 zeigt die gemeinsamen Eigenschaften der
ausgewählten Objekte. Anmerkung: Der Insanity Editor
arbeitet mit Mehrfachauswahl, also sind die
Einstellungen, die im Eigenschaftsfenster angezeigt
werden, von den Objekten abhängig, welche ausgewählt
wurden. |
|
||
Visual
- Type Hier kann der Benutzer die Einstellungen eines sichtbaren Objektes sehen oder modifizieren. Anmerkung: Es ist auch möglich diese Einstellungen mit einem Modellierungsprogramm (MAX) einzustellen. -
Flags folgende Flags sind möglich: - Mat Art des Materials, welches benutzt wird, wenn das Objekt auf eine statische Kollision eingestellt wird - Properties visuelle Einstellungen, abhängig von dem visuellen Gegenstand, der editiert wird - Pick props, Browse props Tasten, um Einstellungen von anderen visuellen Objekten einfach zu kopieren |
|
||
Light
-
Type hier kann der Benutzer die Art des
Lichtobjektes sehen oder verändern. Die Lichtarten sind: - Color die Farbe des Lichtes - Power Vervielfacher für die Farbe (um die Stärke des Lichtes einzustellen) - Range Gebiet von einigen Arten des Lichtes in Metern; ausgenommen ist der Nebel, wo die nahe Entfernung im Verhältnis von 0.0 bis 1.0 (wo der Nebel anfängt, und die weite Entfernung 0 sein kann) in dem Falle das die Entfernung der Kamera benutzt wird als weit entfernte Entfernung des Nebels. -
Mode Folgende flags sind
möglich: Light sectors Diese Tabelle wird benutzt um bestimmte ausgewählte Lichter mit bestimmten einzelnen Sectoren arbeiten zu lassen. |
|
||
Sound
-
Type - hier kann der Benutzer die Typen der
Geräuschobjekte ändern oder sehen. Die Geräuschtypen
sind: - Browse Knopf um die Quelle eines Geräusches auszutauschen - Range - Entfernung für einige Arten von Geräuschen; Angabe in Metern - Cone der Kegel des Spot sound typus, in Winkelgraden angegeben: die Lautstärke ändert sich linear von voller Lautstärke im Kegelmittelpunkt zur Outside volume Lautstärke außerhalb des Kegels - Volume Main Lautstärke der Geräusche, Wert von 0.0 bis 1.0 - Volume Outside Lautstärke außerhalb der Klangkegels, möglich 0.0 bi 1.0 -
Mode folgende flags sind möglich: Sound sectors Dieser Teil wird benutzt um ausgewählte Geräusche in bestimmten Sektoren laufen zu lassen. |
|
||
Model
- Browse disk Knopf um ein ausgewähltes Modell von einem Modell von der Festplatte auszusuchen - Reload lädt das Modell noch einmal, Einstellungen werden nicht übernommen - Same As dadurch verwendet das markierte Modell die gleiche Datei wie das gewünschte Objekt. -
Flags folgende flags sind möglich: |
|
||
| Volume -
Type - Hier kannst du die Art des Modells lesen
und verändern. Die Gestallt eines collision volume
entspricht im Groben der des Modells, aber diese Form ist
im mathematischen Sinne viel einfacher gehalten (einfache
Körper wie Kegel, Zylinder, Würfel...). Möglich sind: - Material - die Materialart, die dem Objekt zugeordnet werden soll - Non-uniform scale die veränderbare Größe mancher Volumenarten - Static collision bei Aktivierung wird die Kollision in die Statische Gruppe (BSP) eingefügt; ist für Objekte nützlich, die nie bewegt werden |
|
||
| |
|
|
|
Neue Objekte einer Szene werden durch ihre Namen identifiziert. Aus diesem Grund müssen alle Objekte, die der Benutzer erstellt, einen einheitlichen Namen haben. Jedes Mal, wenn ein neues Objekt erstellt wird, wird der Benutzer dazu aufgefordert einen neuen Namen einzugeben. Es erscheint jedes Mal vom Editor ein Beispiel mit einem Namen, der noch nicht benutzt wurde. Der Editor überprüft jedes Mal, ob dieser Name nicht schon an ein anderes Objekt bereits vergeben wurde.
Die Namen der Objekte sind von Fall zu Fall abhängig.
Die Insanity Engine unterstützt Sektoren (sectors) und Portale für verschiedene Zwecke. Einer der wichtigsten Zwecke ist die Optimierung der Darstellungsgeschwindigkeit. Sektoren sind verknüpft mit kleinen Portal-Öffnungen. Jedem Sektor ist eine bestimmte Anzahl an Lichtern zugewiesen, welche nur den mit dem Sektor verbundenen sichtbaren Bereich beleuchten. Auch ist jedem Sektor eine bestimmte Anzahl an Geräuschen zugewiesen, welche nur hörbar sind, wenn eine aktive Kamera sich in diesem Sektor befindet. Jedes Geräusch oder Licht kann irgendeinem Sektor in der Szene zugewiesen werden.
Das Bauen von Sektoren wird später beschrieben.
Die Missionen sind alle im Missions\ -Ordner zu finden. Jede Mission wiederum hat einem eigenen Ordner bestehend aus zwei Dateien - Scene.i3d (die aus 3DS MAX exportierte 3D-Datei) und Scene.bin (eine durch den Editor geschaffene Datei). Scene.bin beinhaltet alle eventuellen Veränderungen, die vom originalen Scene.i3d abweichen. Das wären zum Beispiel neu eingefügte Objekte, deren Lage, lightmaps, neue Spiel-Parameter, usw. Im Editor lassen sich die geladenen Scenes sehr vielseitig verändern.
Anfangs sollen nun die einzelnen Befehle und deren mögliche Auswirkungen erläutert werden, die der Editor bietet. Jedem Befehl ist ein gewisser Platz im Menu zugeordnet, manche kann man auch über Kurzbefehle erreichen, so kannst Du schneller arbeiten, wenn Du Dich mit den Tastenkombinationen vertraut gemacht hast. Falls diese Tastenkombinationen möglich sind, dann stehen diese zukünftig immer nach dem angeführten Befehl (ein Beispiel: "Undo Ctrl+Z").
Gehe auf File und klicke Open
mission im Menu an. Darauf wird eine Dialog-box erscheinen,
die dir alle möglichen Missionen anbietet. Der Editor sucht alle
Dateien aus dem Missions\ Ordner und zeigt dir jene, die eine
Scene.i3d Datei aufweisen.
Bevor du aber eine neue Scene öffnest, solltest du vorher die
momentan geöffnete Scene abspeichern, falls du beabsichtigte
Veränderungen durchgeführt hast, sonst gehen diese verloren und
die Arbeit war umsonst.
Gehe auf File und klicke Save mission. Dadurch wird die momentane Scene gespeichert, Scene.bin wird demnach neu geschrieben. Keine Angst, vorher sichert der Editor die alte Scene.bin im Ordner Missions\_backup\ , dadurch kann die zuletzt gesicherte Scene.bin wieder hergestellt werden.
|
Durch Anklicken von File->Scene properties
gelangst du zu den der Scene zugeordneten Eigenschaften,
welche wären: - Background color das ist die Farbe, mit welcher der Bildschirm ausgefüllt war, bevor mit dem Rendern begonnen wurde. - Backdrop range nahe und entfernte Kamerareichweite im Hintergrund des Sektors; Reichweite für die Nähe und größere Entfernungen im Hintergrundbereich - Camera FOV horizontales Blickfeld der Kameras in der Scene - Camera Range die optische Reichweite der Kamera bzw. die Sichtweite - Orthogonal (=achteckig) falls eine 8eckige Projektion in der Szene verwendet wird; ist normalerweise auf False gesetzt - Orthogonal scale Skala für die 8eckige Projektion |
|
Am besten die Finger davon lassen! Eine Veränderung der game tables (Spiele-Datenbanken) wird nicht empfohlen, sie sind der Grundstein des Spieles. Eine Änderung der gegebenen Werte würde möglicherweise das Spiel unbrauchbar machen.
Durch Anklicken von File->Save shot kann man von der aktuellen Ansicht einen Screenshot machen.
Klicke File->Exit (vorher aber bitte noch überlegen, ob man nicht eventuelle Veränderungen abspeichern möchte...).
Die sogenannte Wiedergutmachungs-Opion bzw. War-doch-besser-oder-lieber-doch-nicht-Taste ... . Der Editor hat eine unbegrenzte Anzahl dieser Befehle für die Unschlüssigen unter uns. Dadurch kannst du sorglos herumexperimentieren ohne Angst zu haben irgendetwas unwiederbringlich zu machen (solange du nicht abspeicherst und aus dem Editor aussteigst ...). Die Befehle findest du unter Edit->Undo und Edit->Redo.
Der Editor kann eine Vielzahl von ausgewählten objects bearbeiten (z.B.: Modelle, Beleuchtung, Kameras...), und das auf verschiedene Art und Weise. Um die Auswahl an Objekten zu durchforsten kannst du den selection dialog, wie in Figure1 gezeigt, verwenden. Hier kannst du aber nur gewisse Objekte aufrufen, oder eben durch Quick search unter Verwendung sogenannter Zufallsmasken ( character um Buchstaben zu ersetzen, * character um die Namensendung der Datei zu ignorieren).
Wähle Edit->Select by name, um diesen Dialog aufzurufen.
Um die getroffene Auswahl eines Objektes rückgängig zu machen, klicke File->Clear selection. Um die Auswahl zu invertieren (so siehst du alle verwendeten Features der Map), klicke File->Inver selection.
Um ein Bezugsobjekt (parent) zum gewählten Objekt zu bestimmen bzw. die vom gewählten Objekt abhängigen Objekte (children), klicke Edit->Select parent oder Edit->Select children.
Durch Klicken von Edit->Draw links schaltet man die Option, ein ausgesuchtes Objekt mit einem Bezugsobjekt (parent) zu linken, ein oder aus.
Ausgewählte Objekte sind abhängig von ihrem Typus speziell markiert. Ausgewählte sichtbare Gegenstände sind von einem springenden Kasten umgeben, während unsichtbare Gegenstände auf verschiedene Weise, abhängig von ihrer Art und ihrem Zweck, gekennzeichnet werden. Du kannst die unsichtbaren Gegenstände im Menü View->Debug anzeigen lassen.
Die meisten Befehle, welche eine Änderung der Objekteigenschaften bewirken, arbeiten auf der gesamten "selection". Für nähere Informationen über den Gebrauch von der Maus in Kombination mit den Tasten Ctrl, Alt und Shift zur Änderung von Objekten siehe Controlling the Editor .
Weitere Befehle zum Ändern wären:
Edit->Rotate 45 degrees - dadurch wird das ausgesuchte Objekt 45° um die eingestellte Achse (X,Y oder Z) gedreht.
In Edit->Gravitation findest du Möglichkeiten, das Objekt einfach auf den Spielplan "fallen" zu lassen oder eben mit dem Spielplan zu verbinden.
Die Auswahl der Rotation und
der Achsen
Ausgewählte Objekte können um jede Achse gedreht werden. Um die benötige Achse auswählen zu können klicke Axis, dann erscheint das entsprechende Untermenü. Dort kannst du nun die Achse auswählen, um die rotiert werden soll. Die eigentliche Rotation geschieht über die Maus, näheres siehe Controlling the Editor .
Du kannst entweder mit den lokalen Koordinaten des Objekts arbeiten (voreingestellte Methode) oder in den absoluten Koordinaten der ganzen Map. Um zwischen den beiden Modi zu wechseln, wähle Axis -> Local. |
|
Modifikationen von Objekten
Jegliche Veränderung von Objekten merkt sich der Editor auch an den vom Scene importierten Objekten (die du von Scene.i3d hochgeladen hast). Wenn du beispielsweise einen zur Scene gehörenden Körper bewegst, dann merkt sich das der Editor (vorher speichern) und wird dies beim Wiederhochladen der Scene berücksichtigen. Du kannst eine oder mehrere Veränderungen an einem ausgewählten Objekt rückgängig machen, indem du Edit->Reset modify wählst und danach auswählst, welche Veränderungen rückgängig gemacht werden sollen. Bild 10 zeigt, wie dieses Dialog-Fenster aussehen könnte. Du kannst deine Veränderungen an der Position, Rotation, Skalierung oder Verknüpfung vergessen. Beachte, dass du keine Veränderungen an implizit erstellten Objekten rückgängig machen kannst, da es keine Original-Position gibt, in die man das Objekt zurücksetzen könnte. Deswegen müssen alle Veränderungen an solchen Objekten gespeichert werden. |
|
Während des Editierens kannst du den Kollisionsmodus ein- oder ausschalten. Dies geschieht durch Klicken von Edit->Collisions. Sind die Kollisionen eingeschaltet, dann "stößt" sich die Editor-Kamera an Objekten, genauso wie Objekte mit sogenannten collision sphere volumes (das Objekt hat sozusagen einen Körper in sich, und zwar in der selben Form wie das Objekt, und gerade dieser Körper, im Editor grün-transparent, ist das eigentliche Hindernis) sich an anderen Objekten mit den selben Eigenschaften stoßen werden.
Das ist recht nützlich, wenn man das in der Scene überprüfen möchte. Einerseits, um gewollte "Hindernisse" zu schaffen, andererseits, um Objekte sinnvoll zu platzieren. Manchmal will man aber mit der Kamera wie ein Geist durch Wände fliegen können, dann sollte man diese Option besser ausschalten.
Alle Objekte der Scene sind miteinander durch Links verbunden, dadurch entsteht eine gewisse Hierarchie. Der Primary sector ist die eigentliche Basis, der Backdrop sector besteht aus Objekten vom Typus SECTOR, die unabhängig bzw. unverlinkt sind. Für gute und saubere Arbeit an der Scene ist das Linking entscheidend. Du wirst es auch brauchen, wenn du ein Objekt bewegen bzw. um ein anderes rotieren lassen willst. Das ausgesuchte Objekt benötigt einen Bezugspunkt (parent), um entsprechend zu rotieren, die Größe darauf zu beziehen oder eben den eigenen Standort festlegen zu können. Dasselbe Prinzip wird in den meisten modeling packages verwendet.
Eine Link zu einem neuen parent (Bezugspunkt/-objekt) schaffst du entweder durch Halten der Tastenkombination Ctrl+Shift und anschließendem Mausklick oder aber durch Abrufen von Edit->Link to und im Browser nach einem neuen parent direkt zu suchen.
Normalerweise sind sichtbare Objekte gerendert und auch im Spiel sichtbar, in manchen Fällen aber sind sie auch nicht sichtbar, entweder zu Zwecken des Editors oder eben wegen des Spieles. Die Sichtbarkeit anderer am Objekt verlinkter Objekte (children) ist abhängig von der Sichtbarkeit des parent, ist dieses also versteckt, dann sind die damit verlinkten children eben auch unsichtbar.
Der Editor merkt sich versteckte Objekte. So kannst du deine Objekte, (z.B. um Übersicht auf dem Spielfeld zu wahren) erst verstecken und später wieder einzeln oder alle auf einmal aufrufen. Die entsprechenden Befehle findest du im Edit Untermenü des Editor-Menüs.
Innerhalb des Editors kannst du gewisse Sorten von Objekten selbst kreieren. Gewöhnlich wird ein neues Objekt vor die Kamera gesetzt, man sollte sich aber nicht darauf verlassen, denn manche Objekte machen dies eben nicht.
Modelle erstellen
Wenn du ein neues Modell einfügen willst, dann musst du die Datei angeben, die zum Öffnen des Modells genutzt wird. Ein Fenster wird auf dem Bildschirm erscheinen, das dir die Files anbietet und eine Vorschau auf das aktuell ausgesuchte Objekt gibt. Die Dateien im Models\ Ordner stehen hiefür zur Auswahl. Anmerkung: Es besteht die Möglichkeit Modelle aus Unterordnern aufzurufen, der Editor merkt sich die Unterordner von dort ausgewählten Objekten (ähnlich dem Models\ Ordner). |
|
Wie schaffe ich ein collision
volume?
Collision volume (der Körper im Hindernis, der das Objekt erst unpassierbar macht - sozusagen der Körper zur Seele) muss direkt ausgewählt werden. Das volume ist automatisch in der Größe so angepasst, dass das ausgewählte Objekt optimal umschlossen wird. In dem Fenster kannst du wählen welche Art von volume du verwenden möchtest. Single volume - wenn nur ein Volumen erstellt werden soll, dass die Gesamtauswahl betrifft, oder ein Volumen, dass für jedes ausgewählte Objekt einzeln erstellt wird (falls mehrere Objekte markiert sind) Static collision - ein erstelltes Volumen wird automatisch statisch (schau bei Volumen Eigenschaften nach, um hierzu mehr Informationen zu erhalten) |
|
Erschaffen von occluders
Bevor du einen occluder einsetzt musst du wissen welchen Typ du verwenden willst. Es gibt zwei zur Auswahl - Mesh occluder (netzartig) und Sphere occluder . Hast du dich für einen entschieden, so kommt es darauf an, ob du jetzt ein Objekt gewählt hast oder nicht. Ist ein Objekt ausgewählt, dann passt sich der occluder so gut es geht dem Objekt an; wenn nicht, dann erscheint ein occluder direkt vor der Kamera. Denke daran, dass neue occluder manchmal etwas korrigiert werden müssen. Genaueres findest du unter Editing occluders. |
|
Objekte verstreuen
Eine hilfreiche Option zur Platzierung vieler Objekte bietet der Befehl Create->Seed. Auf diese Weise kannst du ganze Ansammlungen von Objekten schaffen, die dann überall dort in der Scene erscheinen, wo du mit dem Cursor hinklickst. Du kannst ein oder mehrere Objekte gleichzeitig verstreuen, dadurch werden auch verschiedene Arten von Objektansammlungen geschaffen. Jedesmal wenn du auf die Spielfläche klickst, erscheint dort eines der Objekte, die du für diese Option bestimmt hast. |
|
Klonen von Objekten
Manchmal erweißt es sich als ratsam bereits geschaffene Objekte, die sowieso die gleichen Eigenschaften haben werden (z.B. beim Bau von Siedlungen) einfach zu klonen. Klicke hierfür Create->Duplicate. |
|
Löschen von Objekten
Objekte können aus der Scene gelöscht werden aber nur jene, welche du im Editor kreiert hast. Das bedeutet, dass du kein Objekt, das aus Scene.i3d stammt, löschen kannst. |
|
Der Editor bietet dir einige Möglichkeiten dir deine Scene zu veranschaulichen. So kannst du Objekte in Form von Symbolen auswählen, die für den Spieler dann aber nicht sichtbar sind, beispielsweise ein bestimmtes Geräusch, eine Beleuchtungsform, collision volumes, occluders ... .
Das Koordinatensystem (Grid)
Bei Aktivierung kannst du die jeweiligen Hilfslinien zu den Achsen anzeigen lassen, klicke View->Grid. In diesem Menü kannst du auch das Koordinatensystem selbst konfigurieren. |
|
Der Gebrauch von Kameras
Sind mehrere Kameras in der Scene vorhanden, dann kannst du zwischen ihnen hin- und herwechseln. Ein paar Befehle zur Steuerung der Kamera findest du im View->Camera Untermenü. Beachte, dass nur die voreingestellte Editier-Kamera zum Editieren vorgesehen ist. Wenn du zu einer anderen Kamera wechselst und dich dann auf der Map im View Mode bewegst, veränderst du die Einstellungen (Position oder Rotation) der Kamera, was aber wieder rückgängig gemacht werden kann. Eine hilfreiche Option (vor allem in einer recht großen Scene) ist die Möglichkeit, die Kamera zu den derzeit ausgesuchten Objekten zu bewegen. Das geht auf diese Weise: Klicke View->Camera->Find selected objects, dann dreht sich die Kamera zu dem von dir vorher ausgewählten Objekt, so kannst du es recht schnell finden. |
|
Das Debugging einer Scene
Das Untermenü View->Debug bietet dir recht viele Möglichkeiten für das debugging : - Hierarchy boxes, Bounding boxes zeigt die Anordnung (Hierarchie) der springenden Kästen an - Wire-frame bei Aktivierung siehst du nur das Drahtgerüst der gesamten Landschaft - Occluders schaltet zwischen den Sorten der occluder (green spheres oder meshes) hin und her - Dummies alle Dummies werden sichtbar - Sectors verändern der Anzeige des Drahtgitters des Sektors - Portals - verändern der Anzeige der Portale - Volumes anzeigen der collision volumes - Cameras - zeigt die platzierten Kameras (nur wenn sie im Editor aktiviert sind!) - Lights -zeigt die eingesetzte Beleuchtung und Reichweite an - Sounds - veranschaulicht dir die eingesetzten Geräusche und deren Reichweite - LM textures -verändern der Anzeige des Texturen-Speichers des light-mapping - Joints - zeigt die beweglichen Gelenke an Objekten (achte auf die Personen) - Dynamic shadow casters - zeigt die verwendeten Schattenarten bei beweglichen Objekten an -
Dynamic shadow receivers - zeigt die Flächen an,
an welchen ein Schatten zu sehen sein wird -
BSP tree - verändern der Anzeige der
BSP-Kollisions-Verzweigungen -
Dynamic collision hierarchy - verändern der
Anzeige dynamischer Kollsions-Verzweigungen -
Static collision frames - verändern der Anzeige
der Objekte (Sichtbarkeit und Volumen), bei denen Static
collision aktiviert ist -
LOD Untermenü, in dem man den aktuellen
Detail-Grad der Objekte verändern kann (voreingestellt
ist 1), wenn das automatische LOD verwendet wird
|
|
Möglichkeiten zum Rendern
Durch das Untermenü View->Quality kann der Benutzer verschiedene Render-Einstellungen verändern: - Clear background Löschen des Hintergrundes bevor er gerendert wird - Draw visuals verändern das Rendern der sichtbaren Objekte - Filtering Wechsel zwischen Texturen-Filtern - MipMapping Texturen-Mipmapping-Schalter - Dithering Dithering-Schalter - Fog Nebel an/aus -
Light-maps lightmapping an/aus - Textures Texturen an/aus -
Environment mapping Enviroment mapping
an/aus - Bump mapping Bump-mapping an/aus - Mirrors Spiegel-Renderns an/aus - Shadows bewegliche Schatten an/aus - Use occlusion Verändern des abschließenden Tests |
|
Auswahl des
Fensterformats/Bildschirmauflösung
Man kann sich für eine Fenstergröße (das Fenster des Editors!) entweder anhand der vorgegebenen Werte entscheiden oder man klickt auf den jeweiligen Wert im View->Screen Untermenü. Natürlich kannst du auch einfach die Ränder des Editor-Fensters nach Belieben verschieben. |
|
Helping light
Das ist im Prinzip nichts anderes als eine Arbeitslampe für den Editor, die sich auch dann wieder selbstständig einschaltet, wenn der Editor neu gestartet wird. Du kannst es im Debug->Helping light Untermenü ein- bzw. ausschalten. Der Befehl dafür schaltet eigentlich zwei Lichter ein (ein Stimmungslicht und eine direkte Beleuchtung) und setzt diese an alle möglichen Sektoren der Karte ein. Im Spiel selbst ist das Licht nicht vorhanden, es kann demnach auch nicht editiert werden. |
|
Scene validation (Fehlerüberprüfung)
Ab einem gewissen Punkt sollte die Scene auf eventuelle Fehler überprüft werden. Der Editor sucht in diesem Vorgang nach den gängigsten möglichen Fehlern, die beim Editieren auftreten können, und berichtet anschließend darüber. Diese Qualitätskontrolle startest du mit Debug->Scene validity check. Alle gefundenen Fehler werden in einem Fenster (Log window) angeführt, sobald der Editor seine Überprüfung beendet hat. Findet er keine, dann wird er folgende Meldung angeben: Scene is OK. Die Überprüfung deckt folgende Punkte: - models überprüft, ob ungewollte Zwillinge, also dieselben Modelltypen, im selben Winkel an derselben Stelle stehen - lights prüft, ob eventuell überflüssige Lichtquellen vorhanden sind - sounds - sectors - volumes ähnlich wie bei models, keine doppelten volumes für ein Objekt - links untersucht, ob alle sichtbaren Teile und Modelle ordnungsgemäß den richtigen Sektoren zugeordnet wurden - checkpoints prüft, ob diese mit dem Programm vereinbar sind - geometry sucht nach doppelt gelegten Spielflächen Wird ein Fehler gemeldet, dann ist das betroffene Objekt automatisch markiert (wie wenn du es anklickst), dadurch kannst du den Fehler schneller finden und beheben. Bedenke, dass diese Überprüfung phasenweise verläuft. Wenn also in einer dieser Phasen ein Fehler gemeldet wird, dann wird keine weitere Überprüfung stattfinden, solange nicht alle Fehler dieser einen Phase behoben wurden. Stößt du also auf Fehlermeldungen, dann heißt das noch lange nicht, dass das die einzigen Probleme sind. Vielleicht ergibt sich ein neues, wenn du den alten Fehler nicht passend behebst. |
|
Der Editor liefert wertvolle Rückmeldung in Form einer laufenden Statistik. Auf diese Weise erfährst du stets viel über deine Scene und noch mögliche Quellen sowie Speicherkapazität. Diese Informationen sind im Stats-Menü zu finden. Folgende Punkte sind abrufbar:
- FPS frames per second; diese Information wird links oben angezeigt und zeigt die aktuelle Rendergeschwindigkeit.
- Video informiert über verfügbaren Videospeicher und Texturen
- System memory informiert über verwendeten Systemspeicher (derzeit nicht in Kraft gesetzt)
- Collision informiert über die Zahl der getesteten collisions (per frame) sowie deren Art
- Scene informiert über die Zahl der gerenderten Dreiecke und Scheitelpunkte sowie die Zahl der sichtbaren Objekte
- Selection informiert über das derzeit ausgesuchte Objekt (Scheitelpunkte und Oberflächen)
- Sounds informiert über die verwendeten Sounds in der Scene
- BSP Statistiken zu den BSP-Kollisions-Verzweigungen
Bedenke, dass Lightmaps Platz (und Texturen) deines Systemspeichers verbrauchen, daher ist die Anzahl an light-map Objekten begrenzt.
Lightmaps passen für:
- große, ebene Flächen (Wände, Boden, Kisten)
Lightmaps sind ungeeignet für:
- allzu komplizierte detaillierte Objekte (z.B. der Jeep) oder unebene Oberflächen
Das Light-mapping vermittelt den Eindruck realistischer Schatten in einer Scene. Bedenke aber, dass die betroffenen Objekte an einer Stelle im Spiel bleiben sollen. Das gilt auch für die Schattenspender: keine beweglichen Objekte! Würde sich ein Schattenspender bewegen, dann bliebe der Schatten am Ausgangspunkt. Willst du ein Objekt (und dessen children) von seinem Schatten befreien, dann siehe unter den Eigenschaften von Visual und Model .
Wie kreiere ich ein
light-mapped Objekt?
Ein Light-mapped Objekt erschaffst du indem du die Eigenschaften des normal sichtbaren Objektes im Visual Properties Fenster veränderst. Suche dir hiefür ein oder mehrere sichtbare Objekte aus und ändere den type von Object zu Lit-object. Du kannst später immer noch die Eigenschaften zurück auf ein standardmäßiges, von oben beleuchtetes Objekt ändern, indem du wieder auf Visual gehst und den type wieder von Lit-object in Object wandelst. Wenn du ein Objekt in ein light-mapped Objekt umwandelst, dann ist es anfangs nicht berechnet. Das geänderte Objekt erscheint in der gleichen Textur wie das Original mit einem dunkelgrünen Farbschema. |
Computing light-maps
Um Light-maps zu generieren, musst du erst einmal eine Lichtquelle ins Spiel bringen, die auch Schatten verursacht. Dann musst du die Auflösung der lightmaps bestimmen jedes lightmap Objekt kann eine unterschiedliche Auflösung vorweisen. Die jeweilige Auflösung der lightmaps (deren Qualität) findest du bei den properties (Eigenschaften) des Visual Menüs. Der Grundwert beträgt 1.0. Dieser Wert zeigt die Anzahl der lightmap pixel pro Meter an. Je größer deren Anzahl, desto detaillierter wird die Lightmap berechnet, aber das wirkt sich eben auch auf die Speicherkapazität aus. Bist du mit den Einstellungen fertig, kannst du lightmaps durch Klicken von Lightmap->Construct selection oder Lightmap->Construct all an den ausgewählten Objekten berechnen. Dadurch werden die lightmaps an den entsprechenden Objekten berechnet. |
Die Qualität der lightmaps
Die Qualität der berechneten Lightmaps ist auch vom verwendeten Algorithmus abhängig. Im Moment kann der Benutzer den während der Berechnung der Lightmaps verwendeten Antialiasing-Modus im Untermenü Lightmap->Antialiasing anpassen. Während des Entwerfens einer Scene wird der Wert 1x1 empfohlen, so sieht man am schnellsten die Auswirkung der Beleuchtung. Ist man mit der Scene fertig, dann können die lightmaps neu berechnet werden, indem man den Wert auf 2x2 oder 3x3 ändert. Das verbessert die Qualität und verhindert Stufen in berechneten Lightmaps. |
Speichern von lightmaps
Computed lightmaps findest du im Scene.bin Ordner wieder, sobald die Scene abgespeichert wurde. Bedenke aber, dass du die Gestalt eines light-mapped Objektes veränderst, wenn dessen lightmap nicht geladen wird. Du musst sie dann wieder neu berechnen. |
Damit das Spiel auch einwandfrei funktioniert musst du auch collisions (unpassierbare Orte, sonst geht die Spielfigur durch alles durch) setzen. Mit den Informationen über die Eigenschaften der sichtbaren Objekte sowie Volumen-Objekte (helper collision volume objects) wird ein BPS Kollisions-Baum erzeugt. Bei jedem Kollisions-Objekt (Visual oder Volume) kann das Material eingestellt werden, dass später das Verhalten definiert, wenn ein Kollision mit diesem Objekt erkannt wird.
Das bedeutet, dass du Kollisionen entweder einstellen kannst, indem du jede Oberfläche des Objektes einzeln einstellst, oder, viel einfacher, indem du ihm ein Form vorgibst (Bereich, Rechteck oder Quader). Es liegt an demjenigen, der die Map erstellt, die richtige Einstellung zu wählen. Jedoch sind Objekte mit weniger großen Oberflächen in der Regel einfacher, um sie auf ihre Kollision zu testen (für diese kannst du die Statische Kollision (static collision) in den Einstellungen wählen). Du kannst auch alle markierten Objekte und Volumen sichtbar machen, indem du View->Debug->Static collision frames wählst, was statische Kollisionen hervorrufen wird. Dies wird alle statischen Kollisionen gelb markieren. Bedenke, dass du alle nicht beweglichen Volumen Quader als static deklarieren musst, sonst werden sie als mobile Elemente gesehen und das wirkt sich auf den Spielfluss aus. Wenn du die Static collision bei einem sichtbaren Objekt nicht überprüfst, dann wird dieses Objekt auch mit keinem der Spielelemente zusammenstoßen.
Bei einigen Kollisions Volumen sollte Static collision nicht markiert sein, und zwar bei solchen, die sich bewegen. Wenn du z.B. ein Modell eines Spielers lädst, wirst du sehen, dass es zwei Kollisions Volumen beinhaltet. Um sich alle Kollisions Volumen der Scene anzeigen zu lassen, wähle View->Debug->Volumes. Die gelben sind statische und die roten sind nichtstatische Volumen.
Um die statischen Kollisionen zu aktivieren musst du einen BSP collision tree kreieren. Gehe auf BSP-tree->Create um einen BSP tree zu berechnen. Das wird dich, falls die Scene viele Kollisions-Objekte beinhaltet, für eine Weile beschäftigen. Sobald du die Mission abspeicherst wird der BSP tree im Scene.bin Ordner gesichert. Bedenke auch hier, dass der BSP tree als ungültig gesehen wird und wieder neu berechnet werden muss, wenn du seine Gestalt änderst.
Das Spiel lässt sich ohne gebildeten BSP tree weder testen, noch starten.
Spielelemente sind die Elemente in der Szene, welche direkt zum Verlauf des Spieles gehören. Die wichtigsten Elemente sind Actors und Checkpoints.
Checkpoints und ihr Verbindungsgitter sind ein System des KI-Navigations-System in der Szene. Die KI weiß nicht mehr über die Szene als ein Mensch wissen kann, und es ist sehr schwierig der KI die Umgebung mitzuteilen. Aus diesem Grund gibt es das helfende Navigationsnetz in jeder Szene, welches definiert wo sich die KI hinbewegen kann. Designer sind für das Plazieren der Checkpoints in einer Szene und die Anwendung deren Verbindungen verantwortlich.
Bedenke, dass die KI nicht nur genau auf den Verbindungslinien läuft, sondern auch Abkürzungen verwendet, um zum Ziel zu gelangen.
Das Checkpoint Gitter kann über CheckPoint->Show angezeigt werden. Durch diese Auswahl im Menü werden dann existierende Checkpoints und ihre Verbindungen in der Szene angezeigt.
Wenn die Checkpoints sichtbar sind, können sie mit dem Cursor ausgewählt werden wie andere Objekte in der Szene. Sie können bewegt (Größe oder die Rotation zu verändern würde keinen Sinn machen) und auch gelöscht werden.
Um einen Checkpoint zu erschaffen und zu editieren, gehe zu dem Checkpoint edtiting- Werkzeug indem du CheckPoint->Edit wählst. In diesem Modus kannst du neue Checkpoints erschaffen. Verwende hierzu CheckPoint->Edit, mit diesem Werkzeug kannst du durch Mausklick neue Checkpoints errichten, löschen oder beispielsweise deren Verbindungen untereinander verändern. Klickst du auf eine Verbindungslinie, dann wird diese gelöscht. Um eine neue Verbindung zu errichten, klicke auf einen Checkpoint, halte die Maustaste gedrückt und ziehe die Maus zu dem Checkpoint, zu dem die Verbindung führen soll. Wenn du einen neuen Checkpoint haben möchtest, dann klicke irgendwo ins Gelände, dort wird er dann erscheinen. Der Editor wird gleich automatisch neue Verbindungen zu benachbarten Checkpoints legen oder alte Verbindungen umorganisieren. Vielleicht möchtest du dennoch diese Verbindungen aber noch selbst nachkorrigieren, dann gehe dabei wie oben vor.
Auch wenn du einen Checkpoint anklickst, den Cursor dann irgendwo an einen gewünschten Ort ziehst und dann die Maustaste loslässt, wird sich dort ein neuer Checkpoint errichten, ebenfalls mit Verbindungen zu benachbarten Checkpoints.
Checkpointarten
Es gibt drei Arten von Checkpoints:
- AI navigation (KI navigation), gelb
- destination and helper (Ziel und Orientierungspunkte), grün
- vehicle navigation (Checkpoints für sich bewegende Fahrzeuge), rot
Beachte, dass die gelben (AI) immer eine Netzform ergeben sollen jeder Checkpoint diesen Typs muss mit einem anderen in diesem Netz (aus vielen verbundenen Checkpoints) kommunizieren können. Das ist essentiell für die KI, die ihren Weg in dieser Mission überallhin finden muss. Wenn du einen oder mehrere Checkpoints nicht verlinkst, dann wird die KI nicht wie gewünscht reagieren.
Um einem Checkpoint einen anderen Typus zu verleihen gehe auf CheckPoint->Type. Dieser Befehl trifft dann nicht nur auf diesen Checkpoint zu, sondern auch auf alle miteinander verbundenen Checkpoints.
Es ist möglich und sogar wünschenswert manchen Checkpoints spezielle Namen zu geben. Du wirst das später für das Setup der KI und deren Verhalten brauchen. Du kannst dann nämlich der KI einen benannten Checkpoint als Zielort für die programmierte Handlung angeben. Um einen Checkpoint zu benennen, klicke diesen an und wähle den Befehl CheckPoint->Rename . Der Name des Checkpoints wird im Editor als Text über dem Checkpoint angezeigt.
Verbindungen zwischen den Checkpoints sieht der Editor als einfachen ebenen Weg. Einige spezialisierte Verbindungen müssen daher für den Editor genauer definiert werden. Um dies zu tun, klicke mit der Maus den Checkpoint an während du die Strg-Taste gedrückt hältst. Eine Tabelle wird erscheinen, die dem Designer erlaubt die entsprechenden Parameter für die gewünschte Verbindung festzulegen. Folgende Möglichkeiten gibt es:
- Use ladder diese Verbindung liegt zwischen Ein- und Ausstieg von Leitern (am Boden und an der Leiterspitze), so weiß die KI, dass sie die Leiter benutzen soll.
- Use door diese Verbindung ist zum Durchqueren von Türen. So weiß die KI, dass sie Türen öffnen soll, falls diese geschlossen ist.
Der jeweilige Verbindungstypus wird über der Verbindungslinie vermerkt.
Bis jetzt haben wir nur das Editieren der Spiellandschaft behandelt, doch jetzt ist es an der Zeit endlich Leben in die Scene zu bringen. Dies geschieht durch Einfügen sogenannter Actors in die Scene. Actors sind entities (= Einheiten), die immer als ein 3D Objekt in der Szene fungieren.
Um einen Actor zu schaffen klicke auf das Objekt und wähle Game->Create actor im Menü. Du wirst dann gefragt, welche Form von Actor dir vorschwebt. Wenn du eine auswählst, dann wird der Actor durch die Markierung und Enter geschaffen.
Du kannst dir die Namen der Actors durch Klicken von Game->Draw actor names zeigen lassen. Dadurch erscheinen über allen Actors im Spiel die jeweiligen Namen.
Mancher Actor hat ihm spezielle zugewiesene Fähigkeiten. Um dessen Eigenschaften zu bestimmen, klicke auf den Actor und wähle File->Edit table->Current scene-actor aus dem Menü. So wird ein Eigenschafts-Fenster geöffnet. Auf den Inhalt dieses Fensters gehen wir nun näher ein:
In Folge nun die möglichen Actors und eine kurze Beschreibung:
Player und Enemy (können nur
einer Person gegeben werden)
Dieser Actor stellt einen Menschen in der
Szenerie dar. Das kann entweder eine Spielfigur sein, ein
Gegner oder ein NPC.
|
Resource Dieser Gegenstand kann durch den Spieler aufgenommen werden. Dessen Eigenschaften sind: - Inventory type Um welchen Gegenstand es sich denn eigentlich handelt wird durch eine Indexnummer bestimmt. Um eine Liste über die vorhandenen Gegenstände zu erhalten, siehe auf die Auswahl, indem du auf File->Edit table->Inventory. klickst. Danach schreibst du die jeweilige Indexnummer in diese Zeile. - Amount Inhalt des Gegenstandes, dessen Anzahl oder die Menge an Munition |
Door
Diesen Actor wählt man um Türen zu bezeichnen. Die Eigenschaften sind: - Close angle Winkel zum Schließen der Tür - Open angle - Winkel zum Öffnen der Tür - Auto-close time Die Zeit, in der die Tür automatisch wieder zufallen wird, mit der Eingabe von 0 bleibt die Tür geöffnet - Lock Wenn du dies wählst, dann benötigt deine Spielfigur einen key im Inverntar, um passieren zu können. - Open sound wenn die Tür schön krächzen soll (sowohl beim Öffnen als auch beim Schließen), lass es frei, wenn du kein Geräusch willst |
Ladder
Dies ist ein hilfreicher Actor zur Bewältigung von Leitern. Du kannst ihn nur an Modellen einsetzen, und auch nur an zwei Dummies mit der Bezeichnung _lad_up.i3d und _lad_dn.i3d. Diese Modelle sind bereits im Models\ Verzeichnis. Für diesen Actor gibt es kein Setup. Du plazierst einfach das Modell _lad_up an den Leiterboden, die positive Z-Achse sollte zur Leiter gerichtet sein, Y zeigt nach oben. Auf die gleiche Weise setzt du das Modell _lad_dn an die Leiterspitze, die positive Z-Achse zeigt nun von der Leiter weg, Y wieder nach oben. Setze die Modelle etwa einen Meter über den Untergrund, den am Leiterboden etwa 20cm von der Leiter entfernt und den oberen über Grund, wieder etwa 20 cm von der Leiter entfernt. Gib beiden dann den Ladder actor , wenn du mit der Justierung fertig bist. |
Mine
Der Mine actor ist recht simpel: er detoniert einfach, wenn irgend etwas (eine Figur oder ein Fahrzeug) damit in Berührung kommt. Aus diesem Grund sollte die Mine mit einem non-static collision volume verbunden sein, damit dies dann die Berührung auch registriert. Für diesen Actor gibt es keine Eigenschaften. |
KillAnim
Dieser spezielle Actor ist dafür vorgesehen, dass manche animierte Modelle Spielfiguren töten können, wenn sie mit diesen zusammenstoßen. Das für den KillAnim actor bestimmte Objekt sollte mit einem non-static collision sphere volumes verbunden sein, damit es die Kollisionen mit anderen Actors auch registriert. Dieser Actor ist recht brauchbar für Modelle, die zur Spielstimmung beitragen, z.B. Züge oder Straßenbahnen, deren einziger Zweck darin besteht, für entsprechende Atmosphäre zu sorgen. Dennoch sollten diese aber im Spiel vom Spieler gemieden werden. |
Version
Dieser Actor wird für zerstörbare Objekte verwendet. Er registriert Treffer und Explosionen. Anfangs ist das Objekt zwar ein Schutz, doch wenn die Widerstandsfähigkeit des Materials nachlässt, dann wird sich das Modell in ein zerstörtes verwandeln. Normalerweise gibt man Modellen diesen Actor, aber das ist keine Regel. Solch ein Modell muss eine zerstörte Version sichtbar im Paket enthalten oder mit dem nicht zerstörten sichtbar gelinkt sein. Der Name des zerstörten Objektes muss mit "~01" beginnen, damit das Spiel das Modell auch finden kann. Anfangs ist die zerstörte Version versteckt. Sobald die Modelle durch Zerstörung die Plätze tauschen, wird diese Version sichtbar und die andere wird versteckt. Die Eigenschaften des Actors sind: - Default version welche Version anfangs gezeigt wird (0 or 1) -
Resistance set der Wert für die
Widerstandsfähigkeit des Objektes, welche als Zahl in
die Tabelle eingegeben wird. Um die Widerstandstabelle
aufzurufen, klicke File->Edit table->Resistance.
Hier erfährst du alles über die jeweiligen
Widerstandsgrade, es wird aber nicht empfohlen, diese
Werte zu verändern! |
Cannon
Dieser Actor ist für schwere unbewegliche Geschütze im Spiel gedacht. Für diesen Waffentyp gibt es folgende Eigenschaften: - Type der eines Geschützes oder der eines Scheinwerfers; das bedeutet, dass dieser Actor auch für Suchscheinwerfer genutzt werden kann - Rotation Feuerbereich und Drehgeschwindigkeit - Firing alles über die Feuerwirkung der Waffe; hier kannst du die Munitionsmenge bestimmen, sowie die Durchschlagskraft der Munition, Geschossknall (lass es leer, wenn du keinen willst) sowie die Munitionsart entweder Projektile oder ungelenkte größere Kaliber (für Panzerwaffen) |
Automobil
Dieser Actor steht für ein Fahrzeug, das sowohl vom Spieler, als auch vom Gegner genutzt werden kann. Dieser Actor ist gleichzeitig ein Version, der auch dessen Eigenschaften beinhaltet (das Fahrzeug kann zerstört werden, explodieren, usw.). Hier gehen wir jetzt aber nur auf den Fahrzeugteil ein: Das Fahrzeug-Setup ist etwas kompliziert. Du kannst Dinge festlegen wie die Anzahl der Gänge, Treibstoff (stellst du hier auf null, dann wird sich das Fahrzeug keinen Meter bewegen), Motorengeräusch (lass es aus, wenn du keines willst) und ein recht großes Gebiet weiterer spezieller Einstellungen. Wir empfehlen einfach auszuprobieren und zu sehen, was jede Einstellung bewirkt. Tune dann nach Wunsch. In diesem speziellen Teil kann der Designer auch das Setup für die Anzahl der Sitze festlegen, wie sie genutzt werden und ob man von dort seine Waffen einsetzen kann usw. . |
AutoCannon
Das ist eine Kombination von Automobil und Cannon actors. Dieser Actor wird für die meist fortschrittlicheren Fahrzeuge verwendet, die zusätzlich zur Standartversion auch noch eine montierte Waffe haben. Diese Waffe kann von einem Platz im Fahrzeug bedient werden. Für diesen Typ gibt es keine weiteren Eigenschaften, er lässt die gleichen Einstellungen zu wie all die Actors, die er beinhaltet. |
Detector
Zuletzt nun der Actor, der das gesamte Spiel erst logisch erscheinen lässt. Das ist der Actor, der die vom Designer gewünschten Handlungen erkennt und entsprechend reagiert. Im Prinzip ist das die Seele des Spiels, dadurch kommt erst Leben hinein. Das Arbeitsprinzip eines detectors ist folgendes: - zuerst kann er bis zu 16 verschiedenen Handlungen registrieren, - dann kann er bis zu 16 verschiedene Aktionen durchführen. Das ist zwar nicht das optimale Arbeitsschema, aber durch Kombination mehrerer Detectors werden die gewünschten Resultate erzielt. Diesen Actor kannst du an jedem beliebigen Modell ansetzen, aber gewöhnlicherweise wird er an Dummies eingesetzt, denn alles, was er benötigt ist eine 3D-Position in der Szenerie. Aber wie gesagt, du kannst ihn an jedem Objekt anbringen. Die Arbeitsschritte gehen in der Reihenfolge vor. Sobald eine Situation erkannt wurde, geht der Detector zur nächsten über, bis schließlich alle durch sind. Folgende Situationen können wahrgenommen werden: - Player in range erkennt, ob ein Spieler sich in einer gewissen Entfernung zum Detector aufhält - All alive players in range erkennt alle noch lebenden Spieler in einer gewissen Entfernung - Any human in range - schlägt an, wenn irgendeine Spielfigur in der Nähe ist - All players dead schlägt an, wenn alle Spieler tot sind - All enemies dead schlägt an, wenn alle Gegner vernichtet wurden - Countdown das wird den Detector für die eingestellte Zeit deaktivieren - Resource in range erkennt einen bestimmten Auslöser in einem bestimmten Umkreis - Signal received Detectors können sich Befehle untereinander zuschicken, dies ist jener, auf den der Detector wartet; Befehle werden durch Kennzahlen erkannt, die vorher bestimmt werden müssen - Actor destroyed erkennt, wenn ein bestimmter Actor (Kennzahl oder Kennwort nicht vergessen!) zerstört oder getötet wurde; der Befehl erkennt Version, Player and Enemy actors, bei Personen gilt: actors destroyed = dead - Explosion in range erkennt, ob eine Explosion in einem bestimmten Umkreis stattfindet - Sounds erkennt Sounds, die bei einer bestimmten Aktion starten sollen - Actor in range erkennt einen actor (durch Kennwort oder Kennzahl) in einem bestimmten Umkreis Jede Situation kann auch umgekehrt werden, so dass genau das Gegenteil erkannt wird (z.B. ob sich der Spieler NICHT in einer gewissen Entfernung zum Detector aufhält). Beachte: Wenn von Entfernungen die Rede ist, ist die Entfernung zwischen dem Objekt des Detectors und dem Objekt, das erkannt werden soll, gemeint. Wenn von einem Namen die Rede ist, dann ist der Name des Objektes gemeint. Der Name des Benutzers ist immer der Name des Objektes in der Szene, mit welchem der Benutzer verbunden ist. Die Arbeitsschritte werden auch vom ersten bis zum letzten durchgegangen. Dem Detector stehen folgende Möglichkeiten zur Durchführung offen: - Play sound spielt ambient Geräusch (von CD), spezifiziert bei dessen Namen - Send signal sendet einen Befehl an einen speziellen actor (Kennwort oder -zahl), oder an alle actors (wenn kein/-e Kennwort/-zahl eingegeben wurde); der Befehl wird durch eine Nummer identifiziert - Mission successful teilt dem Spiel mit, dass die Mission erfolgreich beendet wurde - Mission failed teilt dem Spiel mit, dass die Mission gescheitert ist - Pause detector verzögert die Ausführung einer Handlung für eine bestimmte Zeit - Explosion erstellt eine Explosion an einem bestimmten Checkpoint; die Explosion wird durch eine ID definiert und benannt (diese ID wird in die Datenbank der Explosionen geschrieben, die unter File->Edit table->Materials erreichbar ist) - Set on/off aktiviert oder deaktiviert ein spezielles Objekt, das durch das/die Kennwort/-zahl vorher festgelegt wurde - Deactivate detector deaktiviert einen vorher bestimmten Detector - Destroy actor so wird ein bestimmter actor zerstört; der actor explodiert (bzw. stirbt) - Objective completed das lässt den Text, der bei Erreichen des Teilzieles oder Missionszieles gezeigt wird, erscheinen (dieser befindet sich in der Datei mit den Texten des Spiels) - Set focus das schwenkt die Kamera auf einen bestimmten Actor (durch Kenwort/-zahl), wird diese Zeile freigelassen, dann schwenkt die Kamera auf die aktuelle Spielfigur |
Der Editor ist mit Export- und Import-plug-ins für 3D Studio Max ausgestattet. Diese Plug-ins findet man unter dem Verzeichnis Editor\Plugins\Max3.0\ . Die Insanity Engine importiert vom 3D Studio Max exportierte Dateien mit dem Insanity export plug-in, welches auf dem original 3D Studio 4 (DOS) kompatiblen Dateiformat, mit wenigen spezifischen Erweiterungen basiert. Die Dateien haben die Endung .i3d.
Generelle (Modellierungs-)Regeln:
|
Importierte Lichter werden in Punktlichter umgewandelt. |
| Die folgenden Symbole (soweit diese im Materialnamen enthalten sind) haben verschiedene Auswirkungen... | |
| ! | Die Textur wird farbverschlüsselt dargestellt, und zwar in der Palette erstgenannten Farbe (für Texturen, die mit gespeicherten Paletten aufgebaut wurden) oder schwarz (für RGB-Texturen). |
| !! |
Dasselbe wie oben, allerdings wird veranlasst zero alpha-ref zu nutzen, welches mipmapped farbverschlüsselte Texturen verschönert. Das ist passend für Zäune und Texturen mit dünnen undurchsichtigen/undurchlässigen/unklaren Pixeln, welche in niedrigem mipmap Level verloren gehen würden. |
| $ | So werden Mipmap-levels Texturen geschaffen (voreingestelltes Verhalten auch ohne diese Einstellung). |
| $$ | Auf einer geladenen Textur werden Mipmaps nicht erzeugt. |
| + | Wähle "true-color" als Pixelformat für Texturen, falls es die Hardware erlaubt. |
| % | Umgebungs-/Umweltmaterial - die Umwelttextur befindet sich in der "Reflection map" -Spalte des 3DS MAX material editor. |
| @ | Behält die originalen verbreiteten Materialfarben bei (wie im Material-Editor eingestellt), auch wenn das Material die Textur überträgt. Wenn dieses Symbol nicht gesetzt wird, werden die diffusen Materialfarben auf weiß gesetzt. |
| &<proc_name> | Verfahrensanhänge zum Material - diese Prozeduren werden genutzt, um verschiedene Echtzeiteffekte auf Materialien und Texturen zu generieren. Ihre genauere Erklärung findet man im Procedurals\ Verzeichnis. |
Anmerkung: Man kann Kombinationen dieser Spezialzeichen in Materialnamen verwenden, z.B. kann der Materialname $!+Clouds lauten.
3D Objekte:
Vom Designer extra eingestellte Eigenschaften von 3D-Objekten in einer Scene werden auf Klammerbezeichnungen abgesucht, die eben zwischen '{' und '}' stehen. In diesem Klammerbock sucht das Programm nach bekannten Schlüsselbegriffen für vom Designer ausgewählte Leistungen. Auf diese Weise kann Objekten eine spezielle Eigenschaft gegeben werden, oder sie können in völlig neue Objekte umgeändert werden.

Bild 17 Beispiel von benutzerdefinierten Einstellungen in 3DS MAX
Folgend Schlüsselwörter und ihre Bedeutung für verschiedene Typen:
| Sobald ein Schlüsselwort aus 4 Buchstaben besteht .... | wird das geladene Objekt umgestaltet zu .... |
| PRTC | Partikel; nur Material des (sichtbaren) Objekts wird verwendet |
| LMAP |
Light-mapped
Objekt |
| BBRD |
Notizbrett |
| SNGM |
Single-mesh
Objekt |
| MRPH |
Morphing
/ wackelndes Objekt |
| FLRE
a b c d e |
(auf)flackerndes
Objekt; diese Parameter bedeuten folgendes: a = Entfernung, von welcher die Gestaltung und Transparenz sich langsam mit dem Hintergrund verwischt b = Winkel (positiv zur Z-Achse), in dem die Transparenz angezeigt werden soll c = Verhältnis in welcher Entfernung die Drehung entlang der Z-Achse verwendet wird; Wenn dieses auf "1" gesetzt wird, verändert es jede Veränderung der Entfernungseinheiten (in Meter) um ihre Z-Achse. d = abschließende Zeit des Verblassens - wird benutzt, um die Transparenz in Phasen verblassen zu lassen; bei 0 wird der Z-Buffer verwendet e = Achsen-Verschiebung. Die Verschiebung wird entlang der Z-Achse angezeigt und wirkt sich während des Schreibens des Z-Buffers (falls Parameter d auf 0 gesetzt ist) und auf alle Entfernungsberechnungen aus. Anmerkung: Ist irgendein Parameter auf 0 gestellt, so ist das Feature deaktiviert. Alle Parameter sind optional. Beispiel: {FLRE, 5 90 0.02 500} |
Zusätzliche Merkmale sichtbarer Objekte: |
|
| smooth | glättet gängige (sichtbare) Objekte mit angrenzenden Objekten desselben Schlüsselwortes; glätten bedeutet, dass die Standards der Punkte der unterschiedlichen sichtbaren Objekten auf der gleichen Position vermischt werden, sodass diese Objekte ununterbrochen aussehen; Effekt ist im Lighting und Light-Mapping sichtbar |
| auto_lod
a b c d |
kreiert
automatisch die Detailgenauigkeit im Netz; die Parameter
bedeuten folgendes: a = minimale Entfernung zu dem, welche im besten Level genutzt wird b = maximale Entfernung, nach welcher kein weiterer Wechsel eintritt c = Anzahl der zu kreierenden Level d = Qualität des niedrigsten Detaillevels, ausgedrückt als Verhältnis von Scheitelpunkten in diesem Level zur Anzahl der Scheitelpunkte im originalen Level ein Beispiel: {auto_lod 5 20 12 .05} schafft 12 Level an Details, das letzte LOD also in der Qualität von 0.05, die Entfernungsspanne des LOD liegt zwischen 5 bis 20 Metern
Für die meisten sichtbaren Objekte sollte man automatisches LOD zuweisen. |
| hide d | Ist
die Entfernung von der Kamera größer als d ist,
so wird das Objekt verborgen. Anmerkung: Die Entfernung gilt für eine Einstellung des Kamerasichtfeldes von 65 Grad. Wenn ein anderer Sichtwinkel benutzt wird, dann skaliert die LOD-Qualität dementsprechend. |
| material <n> | Macht statische Kollisionen sichtbar und definiert die passende Material-ID. |
Beispiel:
{SNGM auto_lod 4 20 6 .3}
Joints (Bindeglieder) oder bones (Knochen in Graphikpaketen) |
|
| Anerkannte Parameter: | |
| lock | Das Bindeglied ist gesperrt, d. h. seine Position kann nicht angepasst werden. |
Beispiel:
{lock}
| |
|
| JTBB
(joint's bounding-box) |
Die Attrappe wird als springender Kasten der momentanen Bindeglieder benutzt. Sie wird nicht in die 3D-Anordnung gesetzt. |
| JTVB
(joint's volume box) |
Die Attrappe wird als eine Darstellung der Volumen der momentanen Bindeglieder oder der einzeln ineinandergreifenden Objekte verwendet. Sie wird nicht in die 3D-Anordnung gesetzt. |
| region | Die Attrappe umgibt die Region der Spitze des momentanen sichtbaren Objekts. Regionen werden aus verschiedenen Gründen verwendet, abhängig vom Typ des sichtbaren Objekts werden sie angehängt um z.B. die Morphing-Regionen der Morph-Objekte zu definieren. |
Beispiel:
{JTBB}
| Sectors/Sektoren: | |
| Sektoren werden während des Ladens einer Szene aufgebaut. Die Frames, die ein Sektorengerüst bilden, müssen folgende Schlüsselwörter und wählbare Parameter aufweisen: | |
| SECT (sector) | Das Frame ist die Quelle eines Sektors oder einer Sektorenwand. Die Hierarchie verläuft von oben nach unten. Und wenn ein "top-level frame" mit diesem Schlüsselwort gefunden wird, bildet er die Basis eines neuen Sektors, und alle Folgeprodukte mit demselben Schlüsselwort bilden die Wände dieses neuen Sektors. |
| help | Das Objekt ist eine Hilfswand, welche wieder gelöscht wird, nachdem der Sektor erstellt worden ist. Einige Folgeprodukte, welche ursprünglich mit dem Frame verlinkt waren, werden mit dem Erzeuger des gelöschten Objektes wieder verlinkt. |
| simple | Der mit dieser Einstellung gebildete Sektor wird keine Eingänge haben. Er wird somit immer sichtbar werden, sobald sein Erzeuger-Sektor (meistens Primary Sector) sichtbar ist. Dieser Sektor ist nur zum Gruppieren der Beleuchtung, Soundmerkmale und wählbaren occlusion bestimmt. Dieser Parameter kann nur an den Anfang des Sektors gesetzt werden. |
Beispiel:
{SECT help}
| Wenn das Schlüsselwort ... ist | wechselt der Dummy in folgenden Volumentyp... |
| VOLS (volume sphere) | Kugel |
| VOLR (volume rectangle) | Rechteck |
| VOLB (volume box) | Box/Kasten |
| Anerkannte Parameter: | |
| material <n> | setzt die Material ID zum erschaffenen Volumen |
Beispiel:
{VOLS}
Sowohl der Editor als auch das Spiel arbeiten mit Metern als Maßeinheiten. Achte also darauf, dass die Objekte beim Modellieren in der Ansicht der dritten Person in einer angemessenen Auflösung dargestellt werden.
Du brauchst dich nicht um Kameras zu sorgen. Im Editor ist eine immer mitschneidende Kamera präsent. So brauchst du nicht explizit Kameras in Szenen einzubauen. Die einzig nötigen Einstellungen sind die Kamerasicht (FOV) und die Sichtweite. Wir empfehlen eine Kamerasicht von 80 Grad. Die Sichtweiteneinstellung ist abhängig von der Szene, aber je geringer die Sichtweite, um so schneller ist die Szene gerendert.
Occlusion testing ist eine besonders wirksame Eigenschaft für hidden surface removal, aber es erfordert etwas Erfahrung. Es ist nützlich zu sehen, was der occluder tatsächlich während des Wechselns zum wire-frame rendering versteckt und "optional occluder Visualisation" eingeschaltet wird.
Der Occluder versteckt nur Objekte im selben Sektor, wo er auch verlinkt ist. Es mag einige Probleme verursachen, wenn occluders Gebäuden zugeteilt werden. Gewöhnlich ist der occluder (wie andere kreierte Objekte) mit dem Sektor verbunden, in dem er auch kreiert wurde, sodass du ihn mit dem Sektor, in dem er arbeiten soll, neu verbinden musst (z.B. primärer Sektor).
Schließlich, nachdem du einen occluder ausgewählt hast, kannst du den sub-object edit mode unter dem Menüpunkt Edit->Sub-object edit aktivieren. In diesem Modus hast du die Möglichkeit ein Feintuning an occluder's vertices vorzunehmen, vertices zu löschen und neue zu kreieren. Dies schafft viele Möglichkeiten occluders in genau der Form, welche du magst, zu konstruieren. Wenn du in diesem Modus Strg+Shift drückst, kannst du neue occluder vertex durch anklicken auf der Geometrie herstellen. Es ist auch zu empfehlen Boden- occluder's vertices unter Terrain zu stellen, so dass der/die occluder eine größere Chance hat dahinter Objekte zu verdecken.
In diesem Abschnitt werden wir den Prozess des Erstellens einer eigenen Mission Schritt für Schritt erklären. Wir werden alle Aufgaben besprechen, die man berücksichtigen muss, um eine spielbare Mission zu erschaffen, die man dem Rest der Welt anbieten kann.
Wir empfehlen dringlichst, die Arbeit mit einem Blatt Papier, auf dem man das Design erstellt, zu beginnen. Das bedeutet, dass man zuerst alles zu Papier bringen sollte (Mission, Ziele, Models usw.). So kann man sich leichter vorstellen, wie man nachher die gewünschte Mission im Editor kreieren kann.
Ein weiterer Schritt ist die geometrische Erstellung der Mission in einem Modeling-Package. Da im Moment die einzige Möglichkeit, eine Landschaft zu importieren, 3D Studio Max bietet, werden wir dieses Programm als Beispiel-Programm nehmen. Wenn man eine Landschaft, Gebäude, Flüsse usw. erstellt, sollte man folgendes berücksichtigen:
- Lass die Landschaft nicht als ein großes Stück mit 40.000 Polygonen. Unterteile sie lieber in kleinere Einheiten mit jeweils 30 bis 300 Polygonen. So wirst du Probleme mit der Performance (eine große Einheit wird immer umgewandelt und gerendert, während kleinere Teile Chancen haben, manchmal nicht gesehen zu werden und somit nicht gerendert werden müssen) und außerdem Probleme mit Light-mapping (Lichtmasken, die auf ein Modell oder Objekte gelegt werden können) und der Definition der Materie vermeiden können.
- Füge keine Items mit 3D Studio Max ein, die oft wiederholt werden (wie Bäume, Kisten, Steine, etc), da diese einzeln gespeichert werden und so viel Speicherplatz verbrauchen. Außerdem werden dadurch deine Freiheiten beim Designen im Editor nachher eingeschränkt. Lass diese Items lieber als Models und füge sie später im Editor ein.
- Verwende keine anderen Maßstabsgrößen in 3D Studio Max. Diese werden als falsch erkannt und vom Editor nicht unterstützt. Sie werden, wenn entdeckt, wieder in den ursprünglichen Maßstab geändert, ohne die eigentliche Form des Objektes zu beeinflussen. Aber diese Änderung beeinflusst die Position und den Maßstab verlinkter Objekte, verwende daher immer den Originalmaßstab, wenn möglich. Falls du dennoch einen anderen Maßstab verwendest, dann arbeite mit 3D Studio Max' Reset Xform.
Die Mission muss im i3d-Format gespeichert werden. Auch wenn du vielleicht das 3D Studio Max-Format beibehalten willst, um später etwas zu verändern, lass dir gesagt sein: Man kann auch das i3d-Format wieder importieren und bearbeiten ohne dabei irgendwelche Informationen zu verlieren.
Speicher deine i3d-Datei in dem \missions-Unterordner in H&D Deluxe. Du solltest die vorhandenen Models, Texturen und Sounds aus dem Spiel benutzen, da alle Spieler, die diese Mission im Multiplayer spielen, die Dateien schon installiert haben. Falls du weitere Dateien zu deinem AddOn hinzufügst, solltest du sie in den folgenden Verzeichnissen behalten:
- Models.mod\ - für Models
- Sounds.mod\ - für Sounds
- Maps.mod\ - für Texturen und Bitmaps
- Texts.mod\ - für alle Texte, die du hinzufügst
- Missions\AddOn für AddOn-Missionen
Der Grund dafür, dass du diese nicht in den Standard-Verzeichnissen des Spiels speichern solltest (Models, Sounds, Maps und Texts) ist, dass du sonst nicht mehr weißt, welche Teile von deinem Addon stammen. Später lernen wir eine einzige Datei aus diesen Files für das AddOn zu erstellen. Das Spiel kennt die oben genannten Verzeichnisse und kann aus ihnen die Dateien für das Spiel laden .
Achtung: Achte darauf, dass du den Dateien keine Namen gibst, welche schon in Verzeichnissen des Original-Spiels existieren. Falls du das tun würdest, gäbe es beim Laden Fehler und das Spiel würde andere Dateien, als erwartet, laden. Du kannst dies vermeiden, indem du eine einzigartige Zeichenfolge am Anfang aller Bitmaps, Sounds, Models, usw. wählst.
Falls du mehrere AddOns kreierst, musst du dich nicht um solche Doppel-Vorkommen der Namen kümmern, da das Spiel nur die Dateien eines AddOns gleichzeitig öffnet. Du kannst auch mehrere Missionen in ein Addon packen.
Deine Missionen werden im Missions\AddOn-Verzeichnis gespeichert. Du kannst bis zu sechs Missionen in ein Addon packen, die nacheinander gespielt werden. Die Spieler werden keinen Zugriff auf spätere Missionen haben, ohne die vorherigen Missionen geschafft zu haben.
Um Missionen zu speichern, erstelle jeweils ein eigenes Verzeichnis im oben genannten Ordner, das du 1\ bis 6\ nennst. Jede Mission besteht aus der spielbaren Mission selbst, die im Unterverzeichnis Game\ liegt, und einem optionalen Briefing, dass sich im Unterverzeichnis Briefing\ befindet - und schließlich noch aus einer ebenfalls möglichen Karte, die sich im Map\ -Unterverzeichnis befindet.
So wird zum Beispiel die erste Mission in deinem Addon im Ordner Missions\AddOn\1\Game\ gespeichert.
Für deine Bitmaps kannst du zwischen 3 Formaten wählen: PNG, BMP und JPG. Wir empfehlen, das PNG-Format zu benutzen, da dieses die optimalste Kompression verwendet, ohne das graphische Verluste entstehen. Das ist ein klarer Gewinn gegenüber BMP (keine oder nur RLE-Kompression) und JPG (Kompression mit Verlusten).
Für deine Sounds wähle das Format, welches für dich einfacher ist entweder WAV oder OGG. OGG benutzt eine Kompression mit Verlusten, weswegen man immer eine Kopie der Sounds im WAV-Format behalten sollte, während man die Sounds editiert. OGG komprimiert die Sound-Dateien bis auf 20% ihrer ursprünglichen Größe, und ist so von Vorteil bei Spielen, die übers Internet übertragen werden.
Wir empfehlen genau 4 Spieler in die Mission einzufügen. Bitte nimm eines der Sas*.i3d-Models aus dem Original-Spiel und teile ihm actor Player aus dem Spiel-Menü zu. Teile den Tabellen der Spieler keine Eigenschaften wie Program, Inventory usw. zu, da dies automatisch erfolgt, wenn das Spiel gestartet wird.
Danach kannst du beliebig viele Gegner in die Mission einbauen. Lade ein Gegner-Modell (z.B.: German*.i3d) in die Mission und teile diesem actor Enemy aus dem Hauptmenü zu. Danach kannst du die Gegner ausrüsten, indem du ihr Eigenschaften-Fenster (Properties) benutzt. Du kannst ihnen Inventar-Items zuweisen (normalerweise will man, dass sie eine deutsche Waffe und möglicherweise ein paar Granaten haben). Lass sie schließlich noch unter dem Program tab im Properties-Fenster einen Auftrag ausüben.
Um deine K.I. (Künstliche Intelligenz) zum Leben zu erwecken, musst du noch einige Navigations-Punkte in die Szene einfügen. Bezieh dich hier auf den Checkpoints-Abschnitt für weitere Details. Mit dem bereitgestellten Checkpoint-Editor ist es einfach, das Gitter zu erstellen, indem man einfach auf das Terrain klickt. Auf jeden Fall musst du dabei aufpassen und selber Verbindungen, bei denen du glaubst die Gegner können diese nicht schaffen (wie z.B. Verbindungen über Fallen, klettern usw.), löschen. Die ideale Entfernung für die Verbindung zweier Checkpoints beträgt 6 bis 30 Meter. Die Anzahl der Checkpoints variiert mit der Größe der Mission. Normale Zahlen sind 300 bis 3000 Checkpoints pro Mission.
Gelbe Checkpoint-Gitter werden zum Finden von Wegen verwendet und müssen immer gleich sein: jeder gelbe Checkpoint muss mit dem Netz von anderen gelben Checkpoints verbunden sein. Grüne Checkpoints sind für Zielangaben (für die menschlich K.I., wie z.B. die Ziele Wachen und Patrouillen oder zum Definieren von zu gehenden Wegen).
Um eine Mission spielbar zu machen, muss man Kollisionen definieren. Die Geometrie des Terrains muss normalerweise feste Kollisionen direkt auf dem Terrain haben. Benutze die Property sheet (Eigenschaften-Seite), während die Visuals ausgewählt sind, um den Status der Static collision zu sehen.
Die meisten importierten Models beinhalten Kollisions-Volumen. Weiterhin solltest du auszuwählen, ob sich das Objekt bewegen soll oder nicht, und die Kollision des Objekts von Anfang an. Für statische Objekte solltest du alle collision volumes auf static schalten (was im Visualization-Modus gelb gekennzeichnet wird). Für Objekte, die sich bewegen, muss die Kollision auf non-static stehen (rot gekennzeichnet).
Schließlich musst du noch einen BSP-Kollisions-Baum (BSP collision tree) erstellen. Sobald du statische Kollisionen hinzufügst/entfernst/veränderst, wird der Editor dies bemerken und den BSP tree anpassen, so dass man alle Veränderungen wiederherstellen kann.
Du musst deine Mission außerdem mit einer nicht durchdringbaren Kollisions-Wand umschließen, um deine Spieler in der Mission zu halten und sie daran hindern, das Terrain zu verlassen. Wenn du hohe Berge oder andere Objekte, über die man nicht klettern kann, in die Mission gesetzt hast, so sind diese natürliche Grenzen. Auf jeden Fall musst du eine Grenze am Ende eines jeden Weges bauen, damit die Spieler nicht weiter können. Ideale Objekte für dieses Problem sind Kollisions-Volumen (collision volumes).
Das Setup der Materialien ist auch sehr wichtig. Zu Beginn bekommen alle Kollisions-Objekte den Standard-Material-Typ zugeteilt. Dieser kann aber verändert werden. Einige Material-Typen entscheiden nur über den Sound von z.B. Schritten, Schüssen, usw. . Andere verändern das Gameplay. Hier werden die wichtigsten Materialien aufgelistet:
- Ice, Snow die Menschen hinterlassen darauf Fußspuren
- Stairs anwendbar auf steep stair surfaces, um leichtere Kollisions-Abfragen zu ermöglichen
- AI Transparent für Objekte, durch die man nicht durch kann, die K.I. aber durchschauen kann (Glas, usw.)
- Border wird für den Rand der Maps gebraucht (wie eben beschrieben); man kann nicht hindurchgehen, aber Schüsse, Granaten usw. können durch
- Throw to pieces sobald ein Soldat damit zusammenstößt, geht es kaputt
- Killing water für tiefes Gewässer, wo die Soldaten ertrinken sollen
- Fence dasselbe wie AI Transparent, nur mit einem metallenen Sound
- Mine field zufällige Explosionen, die ein Minen-Feld simulieren sollen
- Killing spasm für heiße Objekte, bei denen man verbrennt, wie z.B. Feuer
Packe alle Texte des Spiels in eine Text-Datei, die als Text\AddOn.txt gespeichert werden sollte. Diese Text-Datei wird alle Texte enthalten, die in Verbindung mit dem Addon stehen. Das Format der Text-Datei ist: Text ID-Nummer, gefolgt von dem eigentlichen Text (alles in einer Zeile). Wenn also ein Text zu einer bestimmten ID soll, muss das alles in eine einzelne Zeile.
Wie man Text-ID-Nummern benutzt, wird später behandelt. Keine Text-ID, die in dieser Datei verwendet wird, kann den bereits vorhandenen IDs des Spiels Probleme bereiten. Die reservierten Nummern der Text-IDs für ein Addon sind nämlich 100000 bis 199999.
Um Text in mehrere Zeilen aufzuteilen (zum Formatieren in Menüs), musst du das \ Zeichen als Enter-Ersatz verwenden. So wird z.B. Line one\Line two zweizeilig dastehen.
Um Missions-Karten zu erstellen, nimm einfach eine vorhandene Karte, entferne alle Dinge auf der Map (wegen der Ladegeschwindigkeit) und speichere die Datei danach im Map\-Unterordner des Verzeichnisses der Mission. Erstelle dann ein Dummy Objekt, das map 00 heißt und dessen 2D Ausbreitung (in X- und Z-Richtung) dazu benutzt wird, die Karte im Map-Modus zugänglich zu machen. Anders gesagt: Erstelle ein Dummy-Objekt in 3D MAX und verändere es so, dass, wenn man von oben drauf schaut, seine Fläche die gesamte Fläche abdeckt, wo sich die Spieler später in der Karte bewegen dürfen.
Füge keine Models in die Szene der Map ein. Du kannst jedes beliebige Model in die Szene der Map einfügen, die später auf der Map erscheinen soll, indem du es (oder mehrere) auswählst und im Menü Game den Punkt Models on Map und dann Mark selection wählst. Dies bewirkt, dass die ausgewählten Models auf der Karte erscheinen werden, wenn man das Spiel spielt.
Die Ziele des Spiels sind die Aufgaben, die bewältigt werden
müssen, damit die Mission erfolgreich abgeschlossen wird. Du
solltest dem Spieler mehrere Aufgaben geben, die in einer Liste
aller Ziele aufgezählt werden. Um dies zu tun, erstelle einen detector
Actor auf jedes beliebige Objekt auf der Karte
(Dummies sind ideal für dieses Problem), und
================
Anmerkung der Übersetzer: FEHLT vermutlich ein Teil Text!!!!
================
Um deine Mission(en) in das Spiel einzubauen, brauchst du:
-
einen Screenshot in guter Qualität, um die Mission im
Auswahlmenü anzuzeigen. Speichere die Screenshots für bis zu 6
Missionen im folgenden Ordner:
Maps.mod\GameMenu\. Der Name des Screenshots lautet AddOn<x>.png,
wobei die Nummer 1 bis 6 statt dem x für das Bild der
jeweiligen Mission ist. Erstelle außerdem eine
Schwarz-Weiß-Version des Screenshots mit dem Namen AddOn<x>_bw.png,
welche angezeigt wird, wenn die Mission noch nicht aktiviert
wurde.
- einen kurzen Namen für die Mission - normalerweise der Name der Ortes, wo die Mission spielt. Die dafür vorgesehenen Text-IDs für bis zu 6 Missionen sind 100000 bis 100005.
- einen Beschreibungs-Text für die Mission, welcher erscheinen wird, sobald die Mission ausgewählt wird. Die dazugehörigen Text-IDs für bis zu 6 Missionen sind 100010 bis 100015.
Um dein AddOn abzuspeichern, benutze im Menü Debug die Funktion Scene validity check. Wenn die Meldung Scene is OK in der Statusleiste erscheint, hast du die meisten Bugs aus der Mission entfernt. Dies ist aber keine Garantie dafür, dass die Mission spielbar sein wird oder keine Probleme beinhaltet, es werden nur Fehler überprüft, die vom Editor selbst gefunden werden können.
Um dein GamePlay zu speichern, musst du in den Spiel-Modus im Editor wechseln. Benutze die Taste F6, um in den Spiel-Modus zu wechseln, und F5, um zum Editor zurückzugelangen. Versichere dich, dass du deine Arbeit speicherst, bevor du in den Spiel-Modus wechselst. Es ist nicht empfehlenswert, seine Arbeit nach dem Testen im Spiel-Modus zu speichern, da die Charaktere ihre Position verändern, das Spiel neue Sachen erstellt, usw. . Du musst die Mission immer neu laden, nachdem du sie im Editor getestet hast.
Um das aktuelle GamePlay schneller testen zu können, kannst du Dummy-Objekte in die Karte einfügen, deren Namen mit debug beginnen. So kannst du zum Beispiel ein Dummy mit dem Namen debug_on_bridge erstellen. Dann kannst du deinen aktiven Spieler zu diesen Positionen teleportieren, indem du den cheat debugport während des Spiels eingibst. Dieses Möglichkeit ist nur im Editor vorhanden.
Um zu sehen, was deine feindlichen Soldaten und andere NPCs (Non-Player-Characters, d.h. vom Computer gesteuerte Charaktere) tun, kannst du das Spiel durch ihre Augen betrachten. Tippe den cheat setfocus ein und wähle einen Charakter aus, den du anschauen willst.
Es ist empfehlenswert das AddOn mit allen Dateien in ihren Ziel-Ordnern zu designen und zu testen. Wenn deine Mission fertig ist, solltest du auf jeden Fall alles in eine einzige Datei packen. Dieser Absatz behandelt alle dafür notwendigen Schritte. Wie bereits oben erwähnt, sind die Dateien, die das Spiel benutzt, in einem unkomprimierten RAR-Archiv. Also musst du eine einzige Datei mit der Endung .add erstellen und diese in den Data\-Unterordner im Installations-Pfad des Spiels packen.
Alle Verzeichnisse mit Daten-Dateien für dein AddOn sollten mit eingepackt werden. Ideal wäre es, wenn du eine ausführbare Batch-Datei erstellst (.bat), welche die Dateien für dich packen würde, so dass du dir sich wiederholende Schritte (in die sich Fehler einschleichen können) ersparen kannst, während du abschließende Tests machst und dein AddOn speicherst.
Der Name deiner AddOn-Datei bleibt dir überlassen. Gib ihr einen einmaligen Namen, damit es keine Probleme mit AddOns anderer Designer gibt.
Dein AddOn sollte schließlich noch mit der normalen Installation geprüft werden, ohne dass irgendwelche Dateien extrahiert werden, sodass du dir sicher sein kannst, dass du nicht irgendwelche Dateien vergessen hast, und dass alle Spieler, die deine Mission spielen werden, alle Daten haben, die sie benötigen.
Um dein AddOn auf diese Weise zu testen, musst du darauf achten, dass alle extrahierten Dateien oder Dateien, die zum Arbeiten benötigt wurden, entfernt sind. Kopiere die AddOn-Datei in den Data\-Ordner, starte das Spiel (nicht den Editor) und versuche, es von dort aus zu spielen.
Copyright
(c) 2002 Lonely Cat Games.
Übersetzt von Joda, Tracker, HaDMaster und Lars