8
« : 19 Марта 2009, 22:33:30 »
Техника идеального лонгджампа(longjump, lj) автор .HEAD; идея, расчёты Lt.RAT
Данный текст является интеллектуальной собственностью авторов. Публикация и перевод текста на другие языки допускается только по согласию авторов.
Для начала немного теории для тех, кто услышал о lj впервые.
Техника лонгджампа основывается на особенностях физики КСа и заключается в увеличении скорости игрока при синхронном выполнении стрейфа и поворота мыши в сторону оного. Причём ускорение(темпы набора скорости), максимальная скорость и расстояние, которое преодолевает игрок напрямую зависят от угловой скорости поворота игрока, соответственно и от умения точно и быстро управлять мышью.
Добавлю, что все последущие величины будут измеряться в условленных единицах – юнитах(unit).
Сам лонгджамп включает в себя три основных момента:
- разбег с максимальным ускорением – престрейф(prestrafe)
- выполнение стрейфов в полёте.
- приседание максимально близко к концу полёта.
Начнём с первого пункта. Престрейф служит для набора начальной скорости. Простой разбег по прямой позволяет развить скорость около 250 юнитов в секунду. Правильно выполненный престрейф позволяет набрать скорость к моменту прыжка, равную чуть больше 278 юнитов в секунду. Существует несколько методик разбега, описывать все не будем, самая распространённая основывается на зажатии правого(левого) стрейфа в совокупности с бегом вперёд и одновременным движением мыши в сторону стрейфа. С зажатием кнопок проблем обычно не возникает, и вся техника упирается в правильный поворот мыши. Максимальная скорость 278 юнитов в секунду достигается при угловой скорости движения мыши в пределах 116-120 градусов в секунду. Такие выводы можно сделать на опыте, прописав в консоли команду cl_yawspeed “118” и поварировав значением квара. Квар отвечает за скорость поворота игрока при выполнении команд +right и +left. Чтоб выполнить программный престрейф после введения квара зажмите один из стрейфов и стрелку поворота в сторону стрейфа. Чтоб наглядно оценить скорость, рекомендую использовать амхх-плагин ljstats со включенным режимом спидометра.
Естественно, что при прыжке на блоке всё придётся выполнять вручную. Данная методика лишь позволяет оценить пределы престрейфа. Также постоянная угловая скорость не обеспечивает быстрого разбега, она должна непрерывно изменяться от некоторого большего значения, стремящегося к указанному значению в момент выполнения прыжка.
Об этом будет рассказано дальше.
В итоге можно сказать, что престрейф играет ключевую роль в выполнении прыжка. К примеру на одном престрейфе 278 юнитов в секунду можно выполнить прыжок 236 юнитов. На престрейфе 273 юнита в секунду прыжок уменьшится до 232 юнитов. В итоге имеем разницу 4 юнита, которые могут играть огромную роль при установке новых рекордов. На момент написания статьи рекорд мира принадлежит прыгуну Bibo:
-> Details: 255.260 units (255) / 273.05 prestrafe / 333.605 topspeed
На основе сделанных выводов можно заявить, что рекорд может быть побит с неплохим запасом.
Перейдём ко второму пункту – стрейфам, выполняемым в полёте после отрыва от поверхности земли.
Новичкам, чтоб понять, как выполнять стрейфы в полёте, можно прибегнуть к следующему способу. Выбирается карта, где присутствует довольно много свободного места. Выставляется нулевая гравитация sv_gravity “0”. Не используя команды +forward начните комбинировать правые и левые стрейфы с одновременным поворотом мыши как указано в начале статьи. Если вы смогли развить скорость до 1000 юнитов в секунду(исп. плагин ljstats), считайте, что представление о методике стрейфа в полёте вы уже получили.
Теперь опять вернёмся к опытам. По итогам нескольких опытов использования квара cl_yawspeed при нулевой гравитации выведена следущая закономерность. Если мы увеличиваем скорость поворота игрока, то процесс набирания скорости происходит значительно быстрее, нежели с меньшей угловой скоростью, но есть одно НО. Чем выше темпы набора скорости, нем ниже максимальная развиваемая скорость при данных условиях. Соответственно, если мы используем низкую скорость поворота игрока, можем достигнуть гораздо большего ускорения, но время разгона может очень сильно затянуться.
По итогам исследований выведено несколько примерных сопоставлений «угловая скорость|максимальная скорость»:
Значение yawspeed | Максимальная скорость
300 | 490
250 | 570
200 | 720
150 | 950
118 | тут золотая середина, когда набираемое ускорение максимально превышает трение земли. (максимальная скорость больше тысячи)
В идеале при значениях yawspeed < 10 получится огроомный радиус движения, и очень постепенно можно развить максимальную скорость в КСе. Заметим, что на практике максимальная скорость которую вы можете развить как при стрейфах, так и при падении – это 2000 юнитов в секунду. Обусловлено это значением квара sv_maxvelocity “2000”.
Теперь перейдём к теории нелинейности поворота. В данной области физика исследована не до конца, однако есть идеи подходов, которыми спешу поделиться, с надеждой, что кто-то уйдёт дальше меня.
По итогам предыдущих абзацев, имеем несколько вариантов угловой скорости вращения. Для каждой угловой скорости есть предел ускорения. Чем выше скорость, тем ниже её максимальное ускорение. Точно можно сказать, с большой скоростью поворота мыши при медленном движении игрока, ускорение набирается быстрее, однако при таком ускорении максимальная скорость невелика. При таком раскладе можно предположить о реализации лонгджампа подходом «коробки передач».
Первая передача - максимальное ускорение, предел максимальной скорости низкий.
Вторая, ускорение ниже, максимум скорости возрос.
Третья, Четвёртая, Пятая аналогично, пока не дойдём до максимальной. Максимальная передача соответствует максимуму развиваемой скорости при минимальной угловой скорости. Но, как уже сказано, максимальная скорость достигается при yawspeed 117.8. Однако же это будет самым длинным по времени разбегом.
Используя подход коробки передач, можно воспользоваться принципом, используемым в драг-рейсинге. Т.е. передачу доводим до предела, который она может развить, и переключаем на следущую, при этом следущая передача уже находится не на начальном этапе, а на отрезке резонации, что облегчает набор скорости на этой и последущих передачах.
В итоге, увеличивая количество передач, мы всё чётче выполняем интерполяцию идеального графика движения мыши для лонгджампа.
Единственное НО, это всё описано для кругового бега по окружности, радиус которой может постепенно увеличиваться с возрастанием скорости. Однако, вывести всё для переходного процесса со стрейфами труда не составит.
Выведение зависимости ускорения от угловой скорости поворота выходят за пределы написания этой статьи, тем более руками выполнить это всё гораздо сложнее, но теоретически возможно.
По третьему пункту – при завершении прыжка приседать следует как можно позже, ближе к приземлению. Общая частая ошибка, особенно у новичков – это зажимание приседания на последнем стрейфе, а то и в середине полёта. Приседание нужно выполнять за несколько миллисекунд до приземления.
В итоге имеем по сабжу темы:
118 - минимальное значение угловой скорости поторота только на земле, до которого надо будет опуститься при престрейфе, в полёте в зависимости от скорости возможно замедление мыши до 0, в переходных моментах между стрейфами.
Сама техника идеального лонгджампа авторам представляется следующим образом:
При престрейфе выполняется некоторый разбег по прямой для достижения скорости 250 юнитов в секунду, дальше идёт зажатие стрейфа с началом движения мыши(возможен также разбег только командой +forward, или только на стрейфе). Начальная скорость поворота должна ПРЕВЫШАТЬ значение 120 градусов в секунду, постепенно убывая, и к моменту прыжка должна попадать в диапазон 116-120 градусов в секунду.
Значения идеального престрейфа должны попадать в диапазон 277-278 юнитов в секунду.
В полёте каждый новый стрейф должен начинаться с резкого движения мыши в сторону стрейфа и уменьшаться до нулевой скорости поворота в соответствии с описанным выше методом «коробки передач». График уменьшения угловой скорости не должен представлять линейную зависимость, скорее должен описывать кривую, соответсвующую гиперболе или параболе.
В теории авторам представляется три варианта общего выполнения стрейфов:
- начальные стрейфы широкие, к концу прыжка сужаются;
- начальные стрейфы по амплитуде равны стрейфам в конце прыжка;
- начальные стрейфы узкие, с расхождением амплитуды к концу прыжка.
В конце прыжка за несколько миллисекунд до приземления выполняется приседание +duck.
Авторы не гарантируют описанные методы как технику идеального прыжка, и допускают наличие других техник, а также возможные ошибки в описании данной техники, статья лишь выражает авторское мнение.
Указанная методика не обрабатывается плагином amxx ljstats by Numb до версии 2.17 включительно, в виду того, что плагин считает престрейф 277+ невозможным. Все опыты проводились на плагине ljstats 2.17 с модифицированным исходным кодом.