Регистрация - или - Войти
FaceOff PaintballFaceOff Paintball

Техно-демо возможностей web-камеры и игры....

31/12/2010
Heart of Evil: SourceHeart of Evil: Source

Порт замечательного мода!!...

18/08/2007

Метод борьбы с ошибкой утечки пространства на BSP-карте игры


  • Описание
  • Ссылка и установка

Метод борьбы с ошибкой утечки

Метод борьбы с ошибкой утечки пространства на BSP-карте игры


Автор / ы урока : ObaGlaza
Просмотров : 1164 ( +2 )
Скачиваний : 0
Прислал / (а) : SlaY_61
Дата создания : 17.10.2011 16:31:47
Рейтинг :
 ( 5 ) 
Поделиться :


Имеются следующие переводы : | русский |

Допустим компиляция в hlbsp прошла плохо и вместо BSP generation successful выдала ошибку вроде такой:

Warning: === LEAK in hull 0 ===

Entity light_spot @ (2520,-1533, 13)

Error:

A LEAK is a hole in the map

Проблема в деталях

В движках игр, родственных Quake (в т.ч. Half-Life), предварительно просчитывается невидимая непроходимая и непростреливаемая структура стен, короче говоря — каркас границ столкновений (clip hull). Этих каркасов в Half-Life создаётся по четыре (в Quake по 3) для просчёта

столкновений с точечным объектом нулевой размер "hull 0"
столкновений с игроком в полный рост размер цилиндра 32x32x72 "hull 1"
столкновений с крупным объектом размер цилиндра 64x64x72 "hull 2"
столкновений с игроком на корточках размер цилиндра 32x32x36 "hull 3"

Ошибка "LEAK in hull 0" означает утечку пространства в каркасе границ столкновений для точечных объектов (в игре есть малосущественное исключение: когда задаёшь "размер точки" объекту типа func_pushable, то вместо точечного там обсчитывается минимальный объём 16x16x16). Очевидно, что самым подробным будет каркас для просчёта реакции на точечные объекты, а чем крупнее объект берётся, тем более грубой будет объёмная структура и сильнее будут срезаться некоторые углы, потому что, например, не везде, где пролезет точечный объект, пройдёт и игрок на корточках. Иначе говоря, в место утечки может завалиться точечный объект, а возможно даже более крупный. И тогда при просчёте падения или движения свободного полёта он улетит опасно далеко для работы игрового движка — для того это и отслеживается при компиляции карты.

Способ исправления:

Смотришь на виде сверху — в плоскости осей X0Y — положение обозначенного в ошибке объекта (в нашем примере с x=2520, y=-1533), до которого добежала утечка. Одну половину уровня временно закрываешь огромным брашевым параллелепипедом. И компилируешь только первыми двумя компиляторами hlcsg и hlbsp. Т.к. их работа проходит быстро, то секунд через 5, на крайний случай минуты через полторы уже решаешь по принципу "недолёт-перелёт" что делать дальше: если нет утечки, уменьшаешь параллелепипед, если есть — увеличиваешь. И продолжая так сканировать гранями временного блока, не проходит и пятнадцати минут, как ты уже смотришь на источник заморочек и обрадованно думаешь: "Попался, который скрывался!"

Ещё как вариант можете попробовать программку LeakMarker, которая рисует красный блок в месте утечки. Хотя она тоже не панацея.

Дописывая статью, узнал, что метод перекрытия параллелограммами маппер Skaarj тоже давно использует и всем рекомендует.


Похожие1. Звук на карте - Как поместить звуковые файлы на карту
2. Создание - Техника может быть любой: танки, броневики, грузовики, автобусы и тд...
3. Создание земли и холмов. - Ну конечно, можно просто сделать гигантский браш и закрасить его текстурой травки и всё. Но....!
4. модель в VHE может двигаться - Как можно сделать чтобы модель в VHE двигалась, а не стояла на месте? например вставить модель человека и чтобы он ходил по карте
5. multisource и глобальные переменные - Как же функционирует Мультисорс? Первым делом, он создаёт себе список всех энтить, нацеленных на него. Каждой энтите в этом списке он проставляет в соответствие некий мнимый статус, который может принимать такие же значения, как и обычный статус — ON или OFF. Изначально все мнимые статусы выключены.
6. Создание сценария - Урок по созданию сценария для начинающих
7. Загадка размера юнита. Реалмаппинг - Небольшое такое исследование
Вы не можете комментировать, т.к. вы не зарегистрированы.
    VCTF-Fortress
    Unreal Tournament 2004VCTF-Fortress
    1on1-Pack
    Unreal Tournament 20041on1-Pack
    CTF-DarkAges
    Unreal Tournament 99CTF-DarkAges
    AS-Annihilation
    Unreal Tournament 99AS-Annihilation

Время --------- ___ALL___ --------- : 0.67437 секунд