Typische Anfängerfehler und wie man sie vermeidet

Als Grundregel solle zunächst gelten: Immer auf dem Grid bleiben. Dieses kann man zwar mit diesen Schaltflächen grid.jpg feiner machen, aber die minimale Größe ist 1 Unit. Hammer kann zwar auch Brushes verarbeiten, deren Ecken auf 1/3 oder 1/7 Unit liegen. Aber der Kompiler kann das nicht. Daher ist die Gefahr groß, dass man sich durch unsauberes Mapping ein sogenanntes Microleak erzeugt, wo in Hammer die Brushes noch scheinbar bündig aneinanderstießen.

(Ist korrekt so!)

Unkontrolliertes Carven

Dies ist ein Klassiker der Dinge, die man als Neuling falsch machen kann. Carven ist an sich eine sehr bequeme Methode, um Löcher in Brushes zu bekommen. Der Nachteil ist aber, dass die Carve-Funktion von Hammer dies selten so tut, wie man das gerne haben möchte.

Sobald man nämlich etwas komplexeres als einen simplen Block zum Carven nimmt, schneidet Hammer willkürlich an den Ecken entlang und produziert so eine Menge Brushes, die nicht auf dem Grid liegen.

Größe mehrerer Brushes ändern

Wenn man mehrere Bruhes in einer Dimension verändern möchte, dann sollte man darauf achten, dass diese vorher die gleiche Länge haben. Haben sie das nicht, dann landen die Eckpunkte der kürzeren Brushes nicht mehr auf dem Grid. Dabei können winzige Spalte entstehen, die, falls es sich um die Außenwände des Levels handelt, unweigerlich zu einem Leak führen.

Und nicht immer ist der Spalt so sichtbar wie unten im Beispiel. Diese Lücken können auf beiden Seiten des Brushes auftreten.

Daher gilt als Richtwert, dass man mehrere Brushes lieber einzeln auf die neue Größe zieht. Die Fehlersuche nach Microleaks verbraucht selbst mit der Pointfilemethode ein Vielfaches der Zeit, die man durch unsauberes Arbeiten vermeintlich eingesprart hat.

Brushwork Grundlagen

Die Grafik zeigt zwei verschiedene Ansätze, einen Gang zu bauen. Links zwei Wände, die zwischen sich Boden und Decke haben. Rechts die Boden- und Deckenmethode. Noch sind diese beiden Möglichkeiten absolut gleich. Es ist Geschmackssache, welche Art man bevorzugt.

Anders sieht es aus, wenn man Gänge baut, die in einem Winkel verlaufen. Im Beispiel verlaufen beide Gänge nun schräg nach oben. Links wurde die Wand lediglich vergrößert. Das hat wichtige Vorteile, wir werden gleich sehen, warum.

Sobald man nämlich die Wände des Ganges weiter bearbeitet zeigt sich die Schwäche der rechten Konstruktion: Das Fenster verursacht rechts nun Brushes, die nicht auf dem Grid liegen und damit eine potentielle Gefahr für Microleaks darstellen. (Siehe Vergrößerung) Links ist alles im grünen Bereich. Wenn man später das Fenster an einer anderen Stelle haben möchte, stellt das kein Problem dar. Rechts müsste man die gesamte Wand neu machen.

Leaks durch Origin-Helper

(Nur für Source)

In Source wurden die Origin-Brushes abgeschafft, welche in Goldsource noch dazu dienten, zum Beispiel die Drehachse eines func_rotating zu bestimmen. An ihre Stelle traten die Helper. Man kann sie sich mit anzeigen lassen. (Der kleine weiße Kreis in der Mitte)

Das Vertrackte an den Helpern ist aber, dass sie nur dann angezeigt werden, wenn aktiviert ist UND der entsprechende Brush markiert ist. Ein Origin außerhalb der Map verursacht genau wie ein Pointentity außerhalb der Map ein Leak. Und die sind ganz besonders schwer zu finden, wenn man die Helper ausgeschaltet hat und nicht weis, wonach man suchen muss.

Es gibt zwei Möglichkeiten, wie ein Origin auf die Außenseite der Map gelangen kann.

Möglichkeit 1: Versehentliches verschieben

Leicht kann es passieren, dass man das Brushentity nur ein Stück verschieben will, aber aus versehen stattdessen den Origin-Helper erwischt. Setzt man den Helper nicht wieder zurück, kann es passieren dass das Entity leakt, obwohl der Brush komplett innerhalb der Map ist.

Dagegen hilft am besten, die Helper ausgeschaltet zu lassen, wenn man sie nicht gerade benötigt.

Möglichkeit 2: Komplexe Entitys

Im Beispiel ein trigger_hurt aus zwei Brushes, das um die Ecke geht. Obwohl beide Brushes in der Map liegen, platziert Hammer den Origin automatisch an die Stelle im Bild. Da hilft nur, ihn manuell wieder in die Map zurückzuschieben. Am besten vermeidet man so etwas, indem man bei solchen Konstruktionen kurz die Helpers anmacht und den Origin zurechtrückt, sodass man sich nicht nachträglich auf die Suche begeben muss.

Die Sicherste Möglichkeit, nach deplazierten Origins ausschau zu halten, besteht darin, sowohl die Helper anzuschalten, als gleichzeitig die gesamte Map zu markieren. Im 3D-Fenster werden Origins dann als blaue Kugeln dargestellt und sind so relativ leicht auffindbar.

Displacements

(Nur für Source)

Displacements sind eine feine Sache, aber man sollte stets darauf achten, nur die Brushseiten zu einem Displacement zu machen, die man auch haben möchte.

Ich illustriere das einmal an folgendem Beispiel:

Diese 4 Brushes sind markiert. Wenn man nun das Texture-Application-Tool aufruft und auf Displacement wechselt, sind ALLE Brushseiten markiert. Ein Klick auf 'Create' erzeugt dann das hier:

Zur Verdeutlichung habe ich einen der Brushes einmal herausgehoben. normalerweise ist oberflächlich kein Unterschied zu sehen.

Wie man sieht sind nicht nur die Oberfläche, sondern auch die Seiten und der Boden der Brushes zu einem Displacement geworden. Das bedeutet, dass man nicht nur überflüssigerweise die Engine mit dem Sechsfachen an Polygonen belastet, sondern es verursacht auch Fehler in der Beleuchtung der Displacements, wie zum Beispiel schwarze Kanten.

Deswegen bitte grundsätzlich beachten: Erst das Texture-Application-Tool aufrufen, dann die richtigen Flächen mit Strg+Linksklick markieren und erst dann auf Create klicken.

Die Fit-Funktion des Texture-Application-Tools

Hier gilt ähnliches wie für die Displacements, außer dass diesmal schlimmstenfalls ein bad_surface_extends Error entsteht. Und diese sind nicht leicht zu finden und zu beheben.

Aber alles Schritt für Schritt:

Angenommen man möchte ein dünnes Objekt erstellen und texturieren, zum Beispiel ein Schild: In der mehrzahl der Fälle ist die Textur noch nicht korrekt ausgerichtet. Man öffnet also das Texture-Application-Tool und drückt auf „fit“. Aber halt! Wieder waren alle 6 Seiten des Brushes markiert. Fit hat die Textur auf allen Seiten angepasst und das Ergebnis sieht man hier:

Diese extreme Verzerrung kann der Kompiler nicht verarbeiten, erst recht nicht, wenn der Brush nicht wie im Beispiel 16 Units, sondern nur 1 Unit dick ist. Also vorsicht mit dem Fit-Button. Immer erst die Seiten auswählen, auf die Fit wirklich wirken soll.

Das gilt übrigens nicht nur für Schilder, sondern für alle möglichen Objekte, die in einer Dimension sehr kurz/flach sind. Leitern, Türen und Fenster sind ebenfalls Kandidaten für den unsachgemäßen Umgang mit der Fit-Funktion. Und dementsprechend auch die erste Stelle, wo man nachschauen sollte, wenn man einen bad_surface_extends Error bekommt.

Die Verwendung aller Dokumente einschließlich der Abbildungen ausschließlich zu nichtkommerziellen Zwecken. Verbreitung des Dokuments auf Speichermedien, (insbesondere auf CD-ROMs als Beilage zu Zeitschriften und Magazinen oder sog. "Mission-Packs" etc.) ist untersagt.
 
half-life_2/tutorials/haeufige_anfaengerfehler.txt · Zuletzt geändert: 2015/02/26 08:36 von 77.20.93.202