Траектория гранаты — это не «ощущение», а геометрия. Патчи меняют коллизионную сетку и параметры гранат, поэтому дефолтные линии приходится перерисовывать, опираясь на нормали и трение.
Многие считают, что траектория гранаты — это «ощущение», но на самом деле это геометрия. Стоишь на банане на Inferno перед бочкой, кидаешь дефолтную дымовую. Угол вылета, позиция, высота прицела — если хоть одно из трёх сместится на полшага, точка отскока соскользнёт с края бочки на бок, и дым улетит на метр. Патчи меняют коллизионную сетку и параметры гранат, а не твою мышечную память, поэтому после каждого обновления «дефолтную линию» приходится перерисовывать.
Отскок — это произведение нормали и трения
Когда граната касается стены, направление вылета определяется нормалью контактной поверхности. Нормаль — это вектор, перпендикулярный поверхности. Чем плотнее коллизионная сетка, тем ближе нормаль к реальной поверхности; чем грубее, тем больше нормаль «скачет» между несколькими дискретными направлениями. Опытные игроки замечают, что от некоторых углов граната «отскакивает предсказуемо», а от других «скользит» — разница часто не в тебе, а в плотности сетки и ориентации нормалей этого участка геометрии.
Коэффициент трения определяет затухание касательной скорости. Одна и та же граната при ударе в стену лоб в лоб и при скользящем ударе под углом может дать заметно разную скорость вылета. При скользящем ударе касательная составляющая велика, трение съедает часть, и дистанция отскока короче; при лобовом ударе нормальная составляющая велика, и отскок более «резкий». Дефолтная линия стабильно воспроизводится потому, что фиксирует точку контакта в маленькой области, где нормаль почти не меняется — например, на фиксированной высоте кирпича или на фиксированном ребре ящика.
Так что «дефолтная линия» — не мистика, а инженерное решение с минимумом переменных. Чем больше переменных ты убрал, тем меньше параметров придётся перенастраивать после патча.
Почему патчи ломают старые линии
Один патч может изменить три вещи: гравитацию и начальную скорость гранат, коллизионную сетку и радиус взрыва отдельных гранат. Первые две напрямую меняют траекторию, последняя — «допуск по точке падения».
Если меняется гравитация или начальная скорость, вся парабола масштабируется: дым, который раньше цеплялся за край бочки, приземлится раньше или позже, и число отскоков изменится с одного на два или с двух на один. Если меняется коллизионная сетка, меняется направление нормали, а значит, и угол вылета: то, что раньше скользило по стене, отразится в другую плоскость. Если меняется радиус взрыва, даже при той же траектории край дыма сместится, и щель, которую ты закрывал, откроется.
Всё это вместе даёт результат: тебе кажется, что руки одеревенели, а на самом деле изменились геометрия и параметры. Про-команды переучивают дефолтные гранаты после каждого крупного патча не ради показного трудолюбия, а потому что иначе в матче останутся щели.
Практический порядок переучивания линий
Шаг первый: проверяй точку падения, а не ощущение. Найди пустой сервер, брось старую линию десять раз как есть и запиши направление смещения края дыма относительно ориентиров (угол стены, ребро ящика, текстура пола). Направление смещения важнее величины: оно подсказывает, где переменная. Общий сдвиг вперёд — начальная скорость или гравитация; сдвиг влево-вправо — нормаль; сужение края — радиус.
Шаг второй: зафиксируй точку контакта и настрой параметры броска. Считай позицию и высоту прицела двумя ручками и двигай по одной за раз. Сначала высотой прицела найди точку отскока, потом позицией найди угол падения. Не меняй обе в одном цикле, иначе не поймёшь, что сработало.
Шаг третий: оставь допуск. У перерисованной линии должен быть записан «приемлемый интервал»: полшага вперёд-назад по позиции, два пикселя вверх-вниз по прицелу — и дым всё ещё закрывает нужную щель. Линия без допуска — это выставочная линия, в матче её не применишь.
Шаг четвёртый: проверь в противостоянии. Идеальная линия на пустом сервере деформируется, когда кто-то держит угол и кто-то давит шаги. Попроси тиммейта оказать давление с противоположной стороны и брось ещё десять раз, посмотри, сколько допуска осталось. Только остаток можно нести в матч.
Последняя фраза
Отскок гранат — одна из самых честных систем в этой игре: она не смотрит на скины, не смотрит на ранг, только на нормали, трение и начальную скорость. Патч меняется — меняется и ответ. Переучивание — не повторный труд, а перенос нового ответа в свой блокнот. В следующий раз, когда выйдет обновление, не спеши ругать ощущения — подойди к углу и брось десять гранат, посмотри, куда отклонилась нормаль.