Приступим к теории, которую я взял с одного русского проекта по игре DoD:S
Попадания в DOD:S. Хитбоксы и их глюки.
Как известно, фиксация попаданий происходит в том случае, если траектория пули (в ДОДС это прямая) пересекается с телом противника. Все бы хорошо, но при просчете используется не сама модель и анимация, которую видит игрок, а ее прототип - набор хитбоксов - параллелипипедов, с целью экономить процессорные ресурсы.
Хитбоксы в статике(у меня установлен "русский" мод, авторства Rus_Ivan, если у вас оригинальные модели, не смущайтесь, отличие только в текстурах) :
Можно увидеть, что в даже в неподвижном состоянии они довольно далеки от модели - охватывают пустые области, а некоторые части тела торчат. Особенно четко это видно по ногам: если стрелять модели в пустое пространство между сапогами, стоя сзади и справа, то хитбоксы зафиксируют попадание в обе(!) ноги, что приведет к сами понимаете к чему.Но это ещё ерунда. Давайте рассмотрим как ведут себя хитбоксы в движении:
1 Бег вперед 2 Бег назад 3 Бег в сторону 4,5 Прыжок
При беге хитбоксы начинают двигаться чуть раньше, чем моделька. По пробуйте посмотреть на все это сами на своем сервере.
Код
cоздать listen server sv_cheats 1 /читы bot /добавляем бота одна штука bot_mimic 1 / все боты повторяют ваши действия дальше выведите бота на ровное место bot_mimic_yaw_offset 180 /боты развернуты на 180 градусов - смотрят на вас sv_showhitboxes 2 - показывать хитбоксы первого бота, если ввести 1 - увидите фрагмент своих хитбоксов
Побегав с ботом, можно заметить следующее: Когда противник бежит вперед, они двигаются перед ним. И наоборот - при движении назад хитбоксы оказываются позади модельки. Аналогично при боковом движении. При передвижении сидя довольно большое отличие движения вперед от движения назад: при движении вперед хитбокс почти идеально повторяет модельку, назад же они с моделькой попадают в "противофазу" - когда модель качается влево, хитбокс вправо. В прыжке амплитуда рассогласования наиболее велика: хитбоксы значительно отличаются как в начале прыжка так и во при приземлении. Немного другая ситуация при приседании: приседание модельки начинается в момент, когда вы уже полностью пригнулись,а хитбокс меняется моментально от стоячего положения до положения сидя в момент, когда моделька присела наполовину. Здесь мало того, что и модель и хитбокс не сходятся друг с другом, так в данном случае ещё и модель опаздывает от положения ваших "глаз" в игре. Вот такой замечательный движок Source.
Стоит также обратить внимание, на то, что данные результаты получены на локалхосте, а во время игры по сети будет влиять задержка, из-за которой наблюдаемая вами, другими игроками и сервером обстановка игры вообще говоря отличаются, следовательно и положение хитбоксов/моделек и их поведение могут отличаться от исследованного в данной статье.
|