
Баллистика в PUBG: пристрелка прицела, сопротивление воздуха и точка прицеливания
В PUBG стрельба на дистанции — это не «навёл и выстрелил». Пуля летит заметное время, теряет скорость и проседает по высоте, а прицел уже пристрелян на какую-то дальность. Разберём, из чего складывается точка, в которую нужно целиться.
Что вообще нужно посчитать
Три величины, и все три зависят друг от друга:
- время полёта — за него цель успеет сместиться;
- падение пули — на сколько она уйдёт вниз от линии выстрела;
- поправка на пристрелку — часть падения прицел уже компенсирует сам.
Сложность в том, что все три зависят от дистанции до точки прицеливания, а сама эта точка зависит от них. Круг размыкается только повторением.
Модель полёта
Игра описывает каждый ствол четырьмя числами: начальная скорость, коэффициент сопротивления, шаг подшага симуляции и множитель падения. По ним пуля и считается — шагами по 1/60 секунды:
dv/dt = −k · |v| · v + g
Сопротивление пропорционально квадрату скорости, отсюда |v| в формуле; гравитация добавляет свои 9,8 м/с² вниз, умноженные на множитель падения конкретного оружия.
Симуляция останавливается, как только пуля прошла нужную дистанцию: дальше берётся линейная интерполяция внутри последнего шага, чтобы не округлять результат до кадра. Предохранители простые — не больше 4 секунд полёта и не дальше 2000 метров; если пуля перестала продвигаться вперёд, цель недостижима.
Практический вывод: разные стволы требуют разной поправки на одной и той же дистанции. Начальная скорость у AWM и у Mini 14 отличается вдвое, а коэффициент сопротивления — ещё сильнее.
Пристрелка: падение и поправка — разные числа
Тут ошибаются чаще всего. Кажется, что достаточно посчитать падение и поднять прицел на столько же. Это неверно, потому что ствол уже смотрит выше линии прицеливания — ровно настолько, чтобы пуля пересекла её на дистанции пристрелки.
Компенсировать нужно не всё падение, а разницу:
поправка = падение(d) − падение(d_пристрелки) · d / d_пристрелки
Отсюда следствие, которое видно на графике: внутри дистанции пристрелки поправка отрицательная — пуля идёт выше линии прицеливания, и целиться нужно чуть ниже. При стрельбе на 50 метров с прицелом, пристрелянным на 100, попадание уходит вверх.
Переключение пристрелки на оптике меняет не траекторию, а именно это опорное число — и вся поправка пересчитывается.
Точка прицеливания ищется итерацией
Теперь соберём всё вместе. Нужна точка, в которой пуля и цель окажутся одновременно:
- За первое приближение берётся сама цель.
- По расстоянию до текущей точки считается выстрел — время полёта и падение.
- Точка сдвигается: цель уедет на скорость × время полёта, а прицел поднимается на поправку.
- Если новая точка отличается от прошлой меньше чем на сантиметр, решение найдено.
Предел — четыре прохода. На практике хватает двух-трёх: сдвиг на втором проходе уже измеряется сантиметрами.
Важная деталь: в расчёт идёт относительная скорость — разница между скоростью цели и нашей собственной. Стреляя из движущейся машины, вы уносите её скорость вместе с пулей, и без этой поправки упреждение уезжает вбок.
Что это даёт в бою
Ручная поправка на 300+ метрах — это всегда оценка на глаз: «на полголовы выше», «на корпус вперёд». Посчитанная точка встречи убирает обе оценки сразу — и вертикальную, и горизонтальную, — причём с учётом того, какой именно ствол в руках и на какую дистанцию пристрелян прицел.
Что из этого включать и насколько — настраивается отдельно; список модулей в описании чита для PUBG. Похожая задача в других играх решается иначе: в War Thunder снаряд тормозит сильнее и время полёта приходится искать численно, а в Rust скорость пули вообще задана таблицей по дистанции.
Если продукт не запускается, всё по шагам разобрано в инструкции по запуску.