Anfang

 

 

 

Zu einem großen Aussenlevel gehören meist ganze Dörfer oder Städte. Leider berechnet die Engine auch sämtliche Geometrie die sich in einem Haus befindet. Sie ist für Aussenlevel nicht so sehr geeignet. Außerdem werfen Blöcke mit A5 noch keinen Schatten auf das Terrain sondern nur die Modelle. Deshalb erstelle ich die Gebäude nicht hohl und fertig eingerichtet sondern massiv. Nur hinter der Eingangstür ist ein kleiner Hohlraum. Wird die Tür geöffnet betritt man ein neues Level, das den Innenraum enthält. Die Gebäude werden als "Map Entities" ausgeführt. Das ist nichts anderes, als das ein Gebäude in einer neuen WED Datei erstellt, mit passendem Namen abgespeichert und als "Entity Map" gebuildet wird. Am besten diese aus Gründen der Übersichtlichkeit in ein anderes Arbeitsverzeichnis ablegen als dem eures Spieles. Durch das Speichern und Builden entstehen eine Reihe Dateien von denen die WMB, WMP und die RAW Datei gebraucht werden. Die anderen werden für eine Map Entity nicht unbedingt benötigt. Deshalb auch das abspeichern in einem anderen Verzeichnis. Ich brauche nur noch die 3 Dateien in mein Spieleverzeichnis kopieren. So bleibt die Übersichtlichkeit in diesem Verzeichnis gewahrt. Die WMP Datei ist nötig um die Map Entity im WED sichtbar zu machen. Fehlt sie, ist nur ein kleines blaues Kästchen zu sehen. Aber auch ohne diese Datei ist die Map Entity später im gebuildeten Level voll funktionsfähig und sichtbar. Nach ein paar Stunden hatte ich das Haus im Level. Leider erwies es sich als zu groß. Das Größenverhältnis zum Terrain und zum Playermodell stimmte nicht. Also skalierte ich das Haus dementsprechend kleiner. Aber nun waren die Texturen nicht mehr richtig platziert. In Handarbeit alles wieder in Ordnung gebracht. Fehlte nur noch die Tür. Beim Einsetzen derselben passte wieder nichts mit der Türöffnung zusammen. Durch das Skalieren des Hauses waren alle Raummaße "krumm" geworden. Ich hatte sie vorher nach dem Gitternetz ausgerichtet. Also noch mal von vorn angefangen. Es scheint also wichtig zu sein das Haus von Anfang an in der richtigen Größe zu bauen, es nicht mehr nachträglich zu skalieren und erst danach alles zu texturieren.

 

Folgende Überlegung. Mein Player soll das Haus betreten können. Er ist ungefähr 64 Quants hoch. Daraus resultiert die Größe der Tür. Diese wiederum bestimmt die Abmaße des Gebäudes. Ich habe mit kleinen Größen des Players experimentiert und bin zu dem Schluß gekommen das die Standardmodellgröße des "Guard.mdl" aus den Conitec Beispielleveln die Idealgröße für die Engine ist. Ich hatte große Probleme mit kleinen Playermodellen von 12 Quants Höhe in Bezug auf Kollisionserkennung, Kamera und Darstellungsqualität des Terrains. Außerdem gibt es eine Mindestgröße der Blöcke. Diese sollen nicht kleiner als 2x2x2 Quants sein. Damit ist klar das detaillierte Gestaltung mit Blöcken bei einer Playergröße von 12 Quants nicht möglich ist.

 

Also zuerst die Tür gestalten. Ihre Größe beträgt 48 x 96 Quants.

 

Zurück im Terrainlevel. Die Tür steht hinter dem Player. Genau auf das Gitter ausgerichtet.

 

Der Witz ist, daß jetzt das Haus um die Tür gebaut wird. Die Größenverhältnisse schaue ich mir auf Hausfotos im Internet an. Damit die später aufgebrachten Texturen gleich so gut wie möglich passen, setze ich bei jedem Gebäude eine Hauskante auf den WED Mittelpunkt. Alle Texturen beginnen an diesem Punkt XYZ = 0 und setzen sich von da in diese 3 Richtungen fort. Je weiter ein Block vom Mittelpunkt des WED entfernt ist, desto ungenauer wird es bei der Zuweisung der Texturen. Die Blöcke bekommen dann unter Eigenschaften das "TEXTURE LOCK" Flag zugewiesen und können dann problemlos verschoben und ins Level eingesetzt werden.

 

Falls das gesamte Gebäude im Level verdreht eingesetzt wird steigt die BUILD Zeit kräftig an. Bei diesem Haus vervierfachte sich die Zeit zur Berechnung des Levels. Also wenn optisch möglich nur in 90° Schritten drehen oder das Haus so gut es geht, gedreht konstruieren.

 

So, die Zeilen ab hier sind eine Woche später entstanden. Das erste Haus bestand eigentlich nur aus je einem Block für jede Etage. Eine Fenstertexture z.B. wurde 3x wiederholt und ergab somit eine Hauswand. Das sieht auf Dauer etwas öde aus. Deshalb hatte ich Texturgrößen von 384x128 Bildpunkten um eine Hauswand mit 3 verschiedenen Elementen (je 128 x128) zu gestalten. Auf Dauer wird so aber wertvoller Texturspeicher verbraucht. Deshalb habe ich die nächsten Häuser aus kleineren Blöcken zusammengestellt. Das folgende linke Bild zeigt das Prinzip. Diese Art läßt mehr Gestaltungsmöglichkeiten mit kleineren Texturgrößen. Das rechte Bild dient zur Berechnung der Skalierung der Texturen im MED Editor. Ich empfehle alle Texturen soweit dies möglich ist auf diese Art genau anzupassen. Es vermeidet mögliche Fehldarstellungen bei "krummen" Maßen.

 

 

Nicht vergessen unter "properties" (Eigenschaften) die Texturen mit "Texture Lock" an die Quader anzubinden. Sie bewegen sich damit mit dem Quader mit. Das rechte Bild zeigt das Einstellen der Skalierung. Nach der obigen Formel ausgerechnet.

 

 

Der nächste Schritt ist im Bild schon erklärt. Lieber gleich durchführen als später. Da das Haus aus zwei Etagen bestehen soll kann nach der Fertigstellung des Erdgeschoßes dieses kopiert und oben darauf gesetzt werden. Alle Texturen und ihre Eigenschaften werden mitkopiert. Das "none" Flag, für alle Blockseiten die nie zu sehen sind, spart Texturspeicher. Leider passiert es manchmal das kleine Risse zwischen den Blöcken entstehen. Ist dann dort keine Textur sieht man den Himmel hindurch. Alternativ kann all den nie sichtbaren Blockseiten eine einfache dunkle Textur gegeben werden (z.B. ein 64x64 Pixel großes braunes Bitmap). Mittlerweile favorisiere ich diese zweite Methode. Benutzt auch tex_share = 1; vor dem Levelstart um Texturspeicher zu sparen falls Map-Entities verwendet werden.

 

 

Nun müssen nur die Texturen der zweiten Etage geändert werden. Da die Skalierung genau ausgerechnet ist kommen auch bei einer möglichen Offsetverschiebung der Texturen meist Maße heraus die der Texturgröße entsprechen.

 

 

Nächster Schritt, das Dach.

 

 

Nun folgt das Ausstanzen des Türrahmens. Die Tür selber wird in einer eigenen Datei erstellt. Die Drehachse (Scharnier) der Tür liegt auf dem Nullpunkt in den Ansichtsfenstern.  Das rechte Bild zeigt den Punkt "Entity Map". Dieser wird im BUILD Fenster angeklickt. Die entstehenden WMB, WMP und RAW Dateien sollten dann in dem Verzeichnis liegen in dem sich auch die Leveldateien WMP und die WDL Dateien befinden. Bei mir lagen sie in einem anderen Verzeichnis und ich konnte beim Levelbau deshalb nicht darauf zugreifen.

 

 

Hier der Screen eines anderen Hauses.