__________________ Иван Топорышкин пошел на охоту,
С ним пудель пошел, перепрыгнув забор,
Иван, как бревно провалился в болото,
А пудель в реке утонул, как топор.
Я и делаю статичный граф. Динамический во время игры проверяется, очевидно же.
Посмотрел как в том же сталкере всё это устроено. Навскидку что могу сказать - калечная трасса. Там есть проверка на ббоксы, но она не использовалась, видимо слишком часто давала недостоверные результаты.
Поэтому все тесты - через луч. Ессно, там куча нодов попадает куда не следовало бы.
Добавлено вчера в 11:33:
Я исхожу из того, что трасса в игре и трасса в компиляторе навигации должна быть идентичной. Мы же вычисляем в оффлайне всё то, что можно проделать в реалтайме, но не нужно. т.к. можно рассчитать предварительно.
Эх, опять куча подготовительной работы, загрузи то, загрузи это.
Дядя Миша писал: Динамический во время игры проверяется, очевидно же.
Расскажи подробнее как навигация работает у динамических объектов.
__________________ Иван Топорышкин пошел на охоту,
С ним пудель пошел, перепрыгнув забор,
Иван, как бревно провалился в болото,
А пудель в реке утонул, как топор.
FiEctro писал: Расскажи подробнее как навигация работает у динамических объектов.
Цитата:
Дядя Миша писал: Я абсолютно ничего не знаю о построении графов, ну только про алгоритм A* кое-что слышал.
На данный момент времени ты в этом шаришь лучше меня. Я понятия не имею как там всё устроено. Я могу только рассказать, как сделал бы лично я. Но не буду. Сначала надо разобраться со статикой. Мне эта задача представляется куда более сложной. Потому что динамики - мало. В том же сталкере может быть одна-единственная дверь на гигантском уровне.
А вот статики там дохрена и пойди найди ещё путь среди всех этих йолок и сосен.
Дядя Миша писал: На данный момент времени ты в этом шаришь лучше меня.
Честно говоря - не шарю вообще. В Юнити с этим тоже проблема, и каких то универсальных решений для динамики я не видел. Разве что как то прибивать гвоздями к ним статичный навмеш что тоже задача нетривиальноя. По поводу дверей я думаю тоже стоит разделять навмеш на какую то сетку или сегменты чтобы их можно было отключать если туда разместили какое то препятствие, наверное в сталкере такая сетка из точек для этого и нужна. Но это чисто мои догадки, как на самом деле, я не знаю.
__________________ Иван Топорышкин пошел на охоту,
С ним пудель пошел, перепрыгнув забор,
Иван, как бревно провалился в болото,
А пудель в реке утонул, как топор.
Для начала надо загрузить колоизацию, которую рассчитал makebsp.
Когда у нас есть колоизация, то мы можем вытворять разные интересные штуки (в штанах).
Дядя Миша
Мне кажется что навмеш вообще сомнительная фигня. Он слишком избыточен на больших дистанциях, где этого не требуется, а на вблизи наоборот очень грубый где наоборот требуется большая точность. Кажется что для поиска по всей карте достаточно использовать обычные точечные ноды которые просто показывают нам что они друг друга видят, что то вроде регулярной сетки лайтгрида (это можно использовать и для летающих нпц), а вот в области видимости нпц уже строить в реальном времени детальную сетку навигации включая динамические объекты. Причем с дистанцией можно детализацию этой сетки уменьшать.
__________________ Иван Топорышкин пошел на охоту,
С ним пудель пошел, перепрыгнув забор,
Иван, как бревно провалился в болото,
А пудель в реке утонул, как топор.
У регулярной сетки есть один большой минус - она иногда промахивается мимо дверных проёмов и прочих узких мест. Подгонять геометрию под сетку тоже весьма сомнительное дело.
Дядя Миша писал: У регулярной сетки есть один большой минус - она иногда промахивается мимо дверных проёмов и прочих узких мест. Подгонять геометрию под сетку тоже весьма сомнительное дело.
Это как пример, возможно есть более эффективный способ расстановки этих нодов, главное чтобы они видели друг друга, так то их много не нужно.
__________________ Иван Топорышкин пошел на охоту,
С ним пудель пошел, перепрыгнув забор,
Иван, как бревно провалился в болото,
А пудель в реке утонул, как топор.
Дядя Миша писал: Потому что динамики - мало. В том же сталкере может быть одна-единственная дверь на гигантском уровне.
А вот статики там дохрена и пойди найди ещё путь среди всех этих йолок и сосен.
У меня сложилось впечетление что динамики в сталкере мало потому что ИИ не умеет их обходить и как-то взаемодействовать, что видно по модам на машины всякие, НПС просто прут в них если поставить ее на пути. Тоже самое если через какой-то спавнер спавнить большие пропы. Есть мелкие пропсы на локациях где полтергеи, но опять же, они такие что НПС столкнут их просто с пути.
Если не ошибаюсь они то и не шибко аномалии обходят, кроме статичных расставленных маппером, и не редко мододелы делают НПС неуязвимыми к ним и огню чтобы они не дохли в них и в кострах. С кострами вообще рофл, но там правда чуть другой баг, там НПС просто спавнятся в центре лагера когда игрок на локацию переходит, а это костер и сгорают, хотя с другой стороны оно создавало свою особую атмосферу в ТЧ, будто сталкера такие суровые челы что провинившегося просто сжигают в костре травя анекдоты, бедный Волк, сколько играл, он всегда оказывался сожжённым в костре на Армейских Складах.