Дядя Миша писал:
Кстати вот эта расстановка нодов только лишь кажется простейшим делом.
Особенно если учесть что все эти ноды расползлись от позиции info_player_start.
А что будет если игрок телепортируется вначале из другой никак не связанной комнаты?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: А что будет если игрок телепортируется вначале из другой никак не связанной комнаты?
Можно добавлять произвольные начальные точки, откуда будут генерироваться ноды, в данном случае - info_teleport_destination.
Или место спавна монстра можно тоже обозначить такой точкой.
Для больших брашевых моделей точка должна по имени быть с нею связана, тогда AI-карта построится и для брашевой модели тоже. Ну или необязательно брашевых, главное что не статичных.
Давно не было, чтобы я был прямо вот так вот доволен, но здесь именно тот самый случай. В моушен-симуляторе есть несколько очевидных трудностей, связанных с тем, что под ногами у монстра может быть какая угодно геометрия и мы должны просто и надёжно определить, что там такое, а в некоторых случаях - апрроксимировать её. Какие трудности нам могут встретится?
1. Это конечно же обрыв. Из-за того что сетка регулярная, хулл монстра, может зацепить её краешком, но монстр фактически парящий над пропастью - это некрасиво. И тем более, если подобная сетка была рассчитана в оффлайне.
2. Полигональный мусор. Самый простой пример полигонального мусора - костры в сталкере. Разумеется можно каждый костёр окружить func_mosnterclip, но как вы понимаете - это не наш метод. Да и зачем, если эта задачка решается чисто аналитическими методами.
3. Ступеньки большие, нереалистичные. На эти ступеньки обычно нода навигации ложиться целиком. Самый простой кейс.
4. Ступеньки маленькие, реалистичные. С ними жопа, потому что такие ступенькие обычно захватывают двойную высоту максимально разрешённого шага, из-за чего построение сетки всё время норовит прерваться. Плюс их вообще логичнее "сглаживать", т.к. центр монстра, находящийся как бы под статичной геометрией позволяет нормально работать инверсной кинематике и монстры ставят ноги точно на ступеньки (т.е. монстр ходит по нодам, а инверсная кинематика трейсит реальную геометрию).
Ну и вот ниже на скрине результат того, что у меня получилось.
Чтож, система получилась сверх-чувствительной к полигональному мусору, это именно то, что надо. Даже если монстр будет игнорировать мировую геометрию для навигации, ничего хорошего в том, что он полезет прямо в нагромождение полигонов - нету. Однако в том же сталкере довольно много такого мусора, типа маленького камушка, который тоже детектируется и нода туда не ставится. Такие мелкие вещи, я полагаю стоит игнорить.
Впрочем надо будет всё же попробовать взять колоизацию из оригинальных карт, её там ручками делали.
Дядя Миша писал: 1. Это конечно же обрыв. Из-за того что сетка регулярная, хулл монстра, может зацепить её краешком, но монстр фактически парящий над пропастью - это некрасиво. И тем более, если подобная сетка была рассчитана в оффлайне.
Я не очень понимаю, но зачем делать приоритет навмеш агенту перед физикой? В чём сакральный смысл этих парящих/проваливающихся NPC?
Цитата:
Дядя Миша писал: Ну и вот ниже на скрине результат того, что у меня получилось.
Выглядит хорошо
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Я не очень понимаю, но зачем делать приоритет навмеш агенту перед физикой?
Это многоцелевая сетка. Она может служить лишь навигатором пути, т.е. высота будет игнорироваться, а может и навмешем. Я её специально делал именно такой. И с рассчётом на IK.
Так же в нодах заключена карта укрытий, чтобы монстр выбирал пути отхода. Но этим я ещё не занимался.
К тому же понадобится еще дополнительный проход, исправляющий разные косяки и в целом сглаживающий пути. На стерильной брашевой геометрии старых игр он не нужен, но на полигональной непременно понадобится.
Сетка на кордоне. Расползлась от единственной ноды под info_player_start и осталась точно в границах, очерченных колючей проволокой.
14 мегабайт занимают эти ноды. В принципе немного.
Осталось проверить две вещи: как будет строиться сетка, если взять коллизию из оригинальных карт сталкера (её там руками сглаживали) и проверить как всё это строится на карте ai_test из Lost Alpha, которая специально была сделана для тестирования навигации.
Дядя Миша
С ходячими монстрами понятно, а как дела с летающими и плавающими?
В анриле там просто ставишь навмеш на весь уровень потом идет генерация пару сек и забываешь об этом ) Летающие летают, а ходячие ходит )
__________________
Kiss my ass if you don't like my Ford!
------------------------------------------ Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.
(_-=ZhekA=-_) писал: С ходячими монстрами понятно, а как дела с летающими и плавающими?
С плавающими в принципе тоже несложно, брашы воды - это и есть навмеш для плавающих монстров. Ну и так же легко сделать переход из воды и обратно. А летающим придётся расставлять некие контрольные точки в воздухе, иначе никак.
Цитата:
(_-=ZhekA=-_) писал: В анриле там просто ставишь навмеш на весь уровень
Но ведь его сперва надо сделать. А это явно не две секунды.
Добавлено 10-04-2023 в 10:24:
Впрочем я не исключаю варианта, что когда-нибудь поэкспериментирую и с навмешами тоже, т.к. формат уровней XashNT позволяет добавлять туда какие угодно данные, без нарушения совместимости.
Дядя Миша писал: Но ведь его сперва надо сделать. А это явно не две секунды.
Перетащил на уровень, растянул, как нужно, выравнил и вася кот )))
__________________
Kiss my ass if you don't like my Ford!
------------------------------------------ Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.
__________________
Kiss my ass if you don't like my Ford!
------------------------------------------ Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.
3. Как эти островки соединятся с основным навмешем?
Если у монстра есть логика забираться на что-то, то когда он заберется то будет юзать этот навмеш, который создается сверху
Добавлено 10-04-2023 в 11:41:
Цитата:
Дядя Миша писал: 1. почему вокруг аксиальных препятствий возникли такие неровные вырезы. Это похоже работу солвера комплексных чисел, типа Eigen.
Я не разбирался, но может для этого есть настройки, чтобы было более точнее, хз
__________________
Kiss my ass if you don't like my Ford!
------------------------------------------ Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.