|
Leak |
Eine Leak - Meldung im MBuilder ist so ziehmlich das erste, was ein Anfänger bei seinem ersten Compile sieht. Nun, dies passiert selbst erfahrene Mapper und das Übel lässt sich meistens schnell beseitigen oder man beachtet ein paar Grundregeln, die ein Leak erst garnicht entstehen lassen. |
Was ist ein Leak ? |
Was ein Grid ist und das man sich beim Mappen innerhalb dieses Grids bewegen sollte, wissen wir schon. Denn das Gitternetz in unseren Radianten und alles was dort drinnen ist, stellt unsere Welt da. Alles was über den Grid hinaus gemappt oder auch ausversehen verschoben wird, ruft eine Fehlermeldung hervor. Genau so verhält es sich auch mit der kompletten Umgebung. Mit der Skybox grenzen wir unsere Map vom eigendlichen Void oder dem Nirwana ab. Der MBuilder erkennt hier sofort eine eventuelle Lücke und gibt somit eine Fehlermeldung aus und bricht den Compilevorgang ab. Sagen wir mal ganz simpel, durch ein Leak kann der Compiler seine Grenzen nicht abstecken und landet sozusagen im Nimmerland....den grenzenlosen .........in der Mapperwelt Void genannt. Das gleiche passiert, wenn man ohne Skybox eine Interrior - Map erstellt hat. Also eine Map, die sich nur im Innenbereich abspielt und keine Außenwelt wie Terrain oder Himmel notwenig macht. Dort reicht dann schon eine kleine Lücke in einer Wand oder Decke aus, um einen Leak zu verursachen......und oft ist es sehr schwer, diesen wieder zu finden. Nun würden viele sagen.........ich mache trotz allem und grundsätzlich eine Skybox um meine Map. Dies ist eigendlich auch richtig, weil man so, vorausgesetzt die Skybox schließt wirklich dicht ab, nicht mehr auf eventuelle Lücken und Spalten achten muss, die man dann mit seinem Gebäuden usw. erzeugen könnte. Diese verursachen dann nämlich unseren Leak. Sicherlich ist es bei kleinen Maps immer ratsam eine Skybox darum zu ziehen, auch wenn sie nur im Innenbereich spielt. Aber bei großen Maps und vielen Details, geizt man am Ende doch um jeden FPS Punkt. Und eine Skybox, gerade wenn sie eine große Map umschließen soll, erfordert viel Rechenaufwand. So erstellen und setzen so manche erfahrene Leveldesigner nur Skyboxen an Stellen, wo es wirklich Notwenig ist. Egal wie ihr euch entscheidet, eine Lücke in der Skybox oder in Wand und Decke bei Interrior Bereichen verursachen einen Leak und somit eine Lücke im System. Eine andere Ursache, wenn eine Leak Meldung angezeigt wird, kann ein gesetzes Entity oder Model wie z.B. Licht oder func_door im Außenbereich sein. Also außerhalb unserer Skybox ......sprich im Void. Wie finde ich einen Leak am besten und beseitige diesen ? |
Zuerst einmal bekommen wir die allbekannte Meldung im Compiler : |
******* leaked ******* |
Was ist zu tun ? Hier könnt ihr getrost den Compile Vorgang abbrechen. Die Map wird eh nicht mehr richtig Compilt, der Vis Compile wird abgebrochen und allenfalls läuft nur die Light Berechnung. Kurz und gut......abbrechen. Und wenn ihr es noch nicht getan habt, den Radianten öffnen, sowie eure Map rein laden. Die meisten von euch werden sicherlich mit dem externen MBuilder compilen, was auch richtig ist. Aber um uns die Leaks anzeigen zu lassen, müssen wir den Radianten und unsere Map laden. |
Hier wollen wir den internen Compiler des Radianten nehmen. Dückt auf der oberen Navileiste auf Bsp und dann auf eine Compilevariante euer Wahl. Dies ist auch egal, weil der Compiler einen Leak gleich am Anfang des Compilevorgangs in seiner Console anzeigt. Wenn ihr die Leak Meldung gesehen habt, könnt ihr den Compile abbrechen. Nur, wenn die Map schon etwas größer ist. Denn wir brauchen nicht so lange warten. Jetzt könnt ihr schon im Radianten im Konstruktionsfenster eine rote Linie erkennen, die uns den Verlauf des Leaks anzeigt. Manchmal sind das ziehmlich wirre und verschlängelte Linien, die uns nicht weiter stören sollten. Siehe auch Bild. Denn unser Hauptaugenmerk gelten den Außenwänden von unseren Gebäuden ( nur Interrior ) oder ebend der Skybox. An dieser Stelle, wo die Linie austritt, ist unsere Schwachstelle. Schließe dort die Lücke und drücke erneut auf Bsp........solange, bis kein Leak mehr angezeigt wird. Erst dann kannst du deine Map abspeichern und mit dem externen MBuilder compilen. |
Zusammenfassung |
- Die Skybox muss absolut dicht sein - Sämtliche Außenwände, die euere Map vom Void abgrenzen oder den freihen Raum blocken, sollten dicht sein. ( gilt nur für Innenmaps ohne Skybox ) - eine func_door oder rotationsdoor sollte nicht in Außenwänden eingebaut werden, die unsere Map vom Void abgrenzen. - Die Skybox oder Brushes dürfen nicht zum Make Detail gemacht werden. Dies deutet der Compiler als Leak. - Wenn ihr Wasser mappt, solltet ihr zuerst eine "Wanne"bauen....also Flussbett oder einen Grundboden für das Gewässer - Löcher im Terrain, die eine direkte Verbindung zur unteren Ebene haben, sollten dicht ( mit Brushes verkleiden usw.) sein oder ihr solltet kontrollieren, ob der untere Boden der Skybox vorhanden ist. - Brushes mit Texturen, die nicht solid sind (notsolid), z.B. Wasser, Schlamm usw. könnt ihr nicht als Abgrenzung zum Void nehmen. Diese müssen einen Behälter haben......("Wanne") - immer die richtigen Texturen ( Skytexturen ) für die Skybox verwenden, z.B. clips, Decals durchsichtige notsolide Texturen kannst du nicht nehmen. - Achte darauf, das nicht versehendlich Entitys, Nodes o.ä. im Void stehen |
Zum Thema Compilen und dessen verschiedene Einstellungen, kannst du unter Bsp nachlesen. Weitere Fehlermeldungen und dessen Bedeutung, sowie die Beseitigung, kannst du unter Compile Fehlermeldung nachlesen. |
Hier haben wir ein kleines Beispiel. Zwei Räume ohne Skybox. Somit sind die Außenwände unserer Räume auch gleichzeitig die Begrenzung zum Void. In diesen Falle ist eine Lücke in der Außenwand und dadruch auch ein Leak. Die Lücke muss geschlossen werden und die Map neu compilt. Erst wenn keine rote Linie mehr zu sehen ist, haben wir alle leaks beseitigt. |