Ku2zoff, а саму навигацию улучшал как-то? Я у себя для поиска пути вместо триангуляции (расчёт обхода препятствия по одной промежуточной точке) делал расчёт по двум и трём дополнительным точкам. Проблема в том, что это оказалось довольно затратно. Может, есть другой более оптимальный способ.
А в плане фичей для ИИ монстров, я добавлял восстановление здоровья монстрам, когда те кушают трупы врагов (буллсквиды, агрунты и т.д. Хаундаи тоже стали кушать), возможность ученым лечить своих союзников (как медики в опфоре).
Отступление, как ты описал, тоже было бы неплохо.
Дядя Миша писал: В ксаш-моде посмотри, я исправлял вроде.
По-моему нет. Или я плохо смотрел. Кажется StudioFrameAdvance, ResetSequenceInfo и DispatchAnimEvents идентичны халфовским. Намекни, что сравнивать.
Цитата:
FreeSlave писал: а саму навигацию улучшал как-то?
Пока не трогал. Я ковырял поиск пути по нодам. Там всего одна нода ищется, и если её невозможно достичь - весь таск фейлится. В сорсе есть выбор из целевой ноды и её линков. Какой путь ближайший и свободный - тот и выбирается. У меня барник с тыщей жизней минут 15 бегал по карте от зомбаков с 10 тыщами жизней и стрелял в них. В итоге застрял в неудачном месте и подох.
Добавлено 18-11-2020 в 22:33:
Цитата:
FreeSlave писал: восстановление здоровья монстрам, когда те кушают трупы врагов (буллсквиды, агрунты и т.д. Хаундаи тоже стали кушать
Да это чисто фичи, либо вырезанные, либо недописанные, это не сложно. Я про исправления/улучшения, чтобы монстры не тупили. Касаемо хаундаев, на гитхабе есть хороший пуллреквест, исправляющий им сон и пробуждение.
thambs писал: Прямо без застреваний и протоптываний ножкой?
Раз на раз не приходится, зависит от того, в каком месте укроется. Всё сильно зависит от геометрии и грамотной расстановки нодов. Ну и ещё может быть, что его весьма удачно блокируют противники. Но даже если затупит, то с большой вероятностью выберется.
Ku2zoff писал: Да это чисто фичи, либо вырезанные, либо недописанные, это не сложно. Я про исправления/улучшения, чтобы монстры не тупили.
В свен купе ещё монстры могут спрыгивать вниз. Хотя в теории это может иметь печальные последствия в виде застрявшего внизу ученого, который нужен был для открытия какой-нибудь двери. Но как опциональная фича может пригодиться.
Из общего по ИИ, что сделано у меня, помимо выше названного, и что было бы полезно:
В поиске укрытия от опасности монстры пытаются просто убежать подальше, если укрытие не найдено. В HL монстры пытаются именно найти то, что считают укрытием, и фейлят, если ничего такого не нашли. В том же Свен Купе монстры довольно резво бегают от гранат. Хотя именно резвость там скорее от увеличенной скорости поворота.
Проверки на наличие на линии огня и в области поражения гранаты союзников не только из своего сквада, но и вообще любых, в том числе игрока (если игрок союзник для монстра). В HL барники не проверяют на friendly fire и поэтому могут попадать в игрока. Особенно больно получать от отисов
Ku2zoff писал: немного переписаны GetSequenceInfo и GetAnimationEvent
вот там-то и бага.
Тебе бы освоить механизмы анимации из сорса, благо теперь полный набор доступен, вот если бы это всё подключить, чтобы не было деревянности в перемещениях. Множественные блендинги, поз-параметры.
Ku2zoff Отличная новость, из фитч - если барник с пистолетом разрывает дистанцию с меллишными монстрами, то против ренжовых ему бы научиться сейвиться во время перезарядки или когда мало хп - за ближайшим непрозрачным(для трассы?)укрытием. Браш или енв_статик.
Lev писал: против ренжовых ему бы научиться сейвиться во время перезарядки или когда мало хп - за ближайшим непрозрачным(для трассы?)укрытием
SCHED_TAKE_COVER_FROM_ENEMY именно так и работает. Сначала монстр пробует использовать FindLateralCover - спрятаться за углом слева или справа. Если это не срабатывает, используется FindCover - попытка уйти из поля зрения m_hEnemy. Если и это не работает, то FindCover использует последний доступный алгоритм, который юзается в SCHED_TAKE_COVER_FROM_ORIGIN - свалить к ближайшей от собственной позиции ноде. Что и видно на моём видео, т.к. место открытое.
Цитата:
Дядя Миша писал: вот там-то и бага.
А что, есть принципиальная разница между 256.0 и 256.0f? Или там ещё что-то?
Мне кажется, достаточно будет плавно блендить анимацию движения и стрельбы, чтобы монстров не дёргало. Можно не морочиться и оставить гейт, но выглядит он, мягко говоря, убого.
Дядя Миша писал: Может убрать из эвентов m_fSequenceFinished, я просто уже не помню.
Так оно исправлено в ксашмоде или нет? Я пробежался поиском по проектам - количество строк с m_fSequenceFinished одинаковое. Вызовы DispatchAnimEvents и ResetSequenceInfo тоже совпадают во всех общих файлах. Ладно, буду посмотреть в сорс сдк, искать в чём там отличие.
FreeSlave писал: В HL барники не проверяют на friendly fire и поэтому могут попадать в игрока.
Кстати да. В свене это исправлено. Надо тоже починить. А то барники у меня и перезаряжаться умеют, и пистолет в кобуру убирают, но стреляют в спину игроку. Если найду подходящие анимации, вооружу их ещё до кучи дробовиками. Но сначала навигация и укрытия.