Это скорее не баг, а особенность обработки видимости объектов.
Видимо решение стрелять или не стрелять принимается в зависимости от того, видит ли игрок противника, а не наоборот :)
Видимо решение стрелять или не стрелять принимается в зависимости от того, видит ли игрок противника, а не наоборот :)
раскрыть ветку (1)
Я ни разу не играл в HL2 (только в первую, Black Mesa, во вторую не довелось), так что могу только строить догадки:
1) Алгоритм атаки врагом простейший, если опустить детали, задача: стрелять только когда игрок появляется в зоне видимости.
2) Реализовывать зону видимости врага не нужно: это слишком ресурсоёмко. Проще брать за основу поле видимости игрока (360 гр) и в зависимости от того, попадает ли враг в это поле (а скорее даже полигоны глаз врага, что было бы логично), принимать решение о стрельбе.
Ну, это в теории.
1) Алгоритм атаки врагом простейший, если опустить детали, задача: стрелять только когда игрок появляется в зоне видимости.
2) Реализовывать зону видимости врага не нужно: это слишком ресурсоёмко. Проще брать за основу поле видимости игрока (360 гр) и в зависимости от того, попадает ли враг в это поле (а скорее даже полигоны глаз врага, что было бы логично), принимать решение о стрельбе.
Ну, это в теории.
показать ответы
Наиболее логичнее использовать бочку с бензином для прикрытия.
Я НПС-БОТ из стрелялок, я всегда так делаю.
Я НПС-БОТ из стрелялок, я всегда так делаю.
раскрыть ветку (1)
Я ни разу не играл в HL2 (только в первую, Black Mesa, во вторую не довелось), так что могу только строить догадки:
1) Алгоритм атаки врагом простейший, если опустить детали, задача: стрелять только когда игрок появляется в зоне видимости.
2) Реализовывать зону видимости врага не нужно: это слишком ресурсоёмко. Проще брать за основу поле видимости игрока (360 гр) и в зависимости от того, попадает ли враг в это поле (а скорее даже полигоны глаз врага, что было бы логично), принимать решение о стрельбе.
Ну, это в теории.
1) Алгоритм атаки врагом простейший, если опустить детали, задача: стрелять только когда игрок появляется в зоне видимости.
2) Реализовывать зону видимости врага не нужно: это слишком ресурсоёмко. Проще брать за основу поле видимости игрока (360 гр) и в зависимости от того, попадает ли враг в это поле (а скорее даже полигоны глаз врага, что было бы логично), принимать решение о стрельбе.
Ну, это в теории.
раскрыть ветку (1)
Дело не совсем в этом. Для того, чтобы определить стрелять или нет, проводится линия от врага к игроку. Если на пути нет пересечений с другими объектами, то враг стреляет. Не все объекты проверяются на пересечение с этой линией, в Source для этого у моделей есть свойство "blockLOS <bool>". По некоторому недоразумению баночка из видео имеет значение этого свойства true. Исправляется это очень просто перекомпиляцией модели, так что это не недостаток AI, просто никто из тестеров не додумался это проверить и сообщить о забавном баге.
раскрыть ветку (1)
Либо есть еще какие-то тонкости, либо я чего-то не понимаю, либо это действительно порождает косяки с группировкой объектов. Например, стена без просветов, выстроенная из баночек, имеющих true в blockLOS, не будет являться преградой для ИИ.
показать ответы
Либо есть еще какие-то тонкости, либо я чего-то не понимаю, либо это действительно порождает косяки с группировкой объектов. Например, стена без просветов, выстроенная из баночек, имеющих true в blockLOS, не будет являться преградой для ИИ.
раскрыть ветку (1)
Господи, какой же бородатый ролик -_-
я его смотрел еще в далеком 2004, с диска Игромании
но нет! горячее, все дела..
я его смотрел еще в далеком 2004, с диска Игромании
но нет! горячее, все дела..
раскрыть ветку (1)
Прости, если лезу не в своё дело.
Я тут зашел в твой профиль и увидел пост, созданный полтора года назад.
С братом всё хорошо?
Я тут зашел в твой профиль и увидел пост, созданный полтора года назад.
С братом всё хорошо?
показать ответы