Работаю над движением игрока в небольшом личном проекте. Чтобы было от чего отталкиваться, решил для начала реализовать физику как в хл1 с теми же настройками. В хл1 по дефолту:
sv_friction = 4
sv_accelerate = 10
Сделал у себя так же. С трением все замечательно - игрок тормозит и скользит с разбегу очень похоже на то, как это происходит в хл1. А вот с ускорением проблема - оно слишком резкое: чуть дотронешься до клавиши, а игрок уже отлетает на приличное расстояние. И на поворотах его заносит.
Реализация ускорения у меня такая же как в PM_Accelerate, поэтому у меня две версии происходящего:
1. Значение sv_accelerate прежде чем попасть в PM_Accelerate домножается на какое-то другое значение, которое делает его меньше.
2. cmd.forwardmove и cmd.sidemove изменяются при нажатии клавиш не резко, а плавно.
XaeroX
PM_FlyMove скопирована почти один в один, PM_Friction тоже работает как в хл1, включая влияние sv_stopspeed, только edge friction не учитывается. PM_WalkMove я не копировал - у меня своя реализация, но делает она по сути то же самое, с двумя отличиями: игрок ускоряется вдоль пола а не вдоль плоскости XY, и пока не реализовано хождение по ступенькам.
В целом игрок двигается очень похоже, только вот с ускорением проблемы.
В общем, разобрался - я дурак и перепутал pmove->friction и pmove->movevars->friction. В результате я перемножал sv_accelerate и sv_friction - при ускорении 40 неудивительно, что игрок был резким как понос...
Теперь все отлично работает
ЗЫ. Я же правильно понимаю, что pmove->friction это внешнее влияние, типа скользкости пола?
Government-Man а разве в УЕЧ СДК нет физики? o_O Или это эксперимент просто?
ЗЫ: в PM_Friction я год назад что-то фиксил. Но уже не помню. В ХЛ что-то было не доделано.
~ X ~ писал: ЗЫ: в PM_Friction я год назад что-то фиксил. Но уже не помню. В ХЛ что-то было не доделано.
Пофиксил или испортил? У меня до сих пор не выходят из головы модели игрока, которые в прыжке (в тестовых версиях XDM 3.0.3.8) играют анимацию "threadwater", потому что ты задумал заставить их воспроизводить её во время падения с большой высоты.
Что там фиксить надо-то, а? В кс 1.6 народ 15 лет играет и не жалуется на физику игрока. Там только один единственный момент есть, связанный с edgefriction, когда на некоторых картах (например, cs_mansion) невозможно по-быстрому вылезти в окно. Ну и ещё снижение скорости после прыжка, но это уже фишка мода. Там даже стамина есть, тратящаяся на прыжки.
Ну я так понял, ему надо чёб с халфой софпадало 1 в 1.
Цитата:
Ku2zoff писал: Что там фиксить надо-то, а?
Я помню, что в XDM при прыжке камера как-то хаатычна дёргалась и Скарж очень негодовал на это, а Хвидер негодовал еще больше, что его гениальную задумку никто не оценил
1) мне не нравится как по дефолту двигается игрок
2) в файле, в котором она реализуется, больше 10 тыс строчек кода, с которым мне лень разбираться
3) мультиплеер я не планирую
Так что чем расширять уечевскую физику я решил написать свою.
Секрет в том, что в pm_shared далеко не вся "физика"
А я вспомнил, что мы с Царём пилили год назад - скольжение. Т.е. чтоб нельзя было стоять неподвижно на скользкой наклонной поверхности. Кстати, это есть в Unreal, но нет в HL. Теперь есть в XDM. И ещё теперь есть разное трение у разных материалов.