← Назад

Проблема крутого подъема и невидимая стена

2026-10-04 · 143 просмотров · ★ 5

Проблема крутого подъема и невидимая стена

Разбор проблемы невидимой стены, которая возникает на крутых подъемах.

В физическом движке есть проблема: при подъеме около 30 градусов и более возникает ошибка в расчете нормали поверхности.

В оригинальном физическом движке существует особенность, превращающая крутой переход дорожной поверхности в вертикальную collision-плоскость. Непосредственно на подъеме для возникновения проблемы также нужна небольшая Vy. Значения -0.3 м/с уже достаточно, поэтому расчеты проводились с этой величиной.

Также существует ложная стеновая реакция при проверке границ трассы.

Границы возникновения проблемы видны на графиках:

Условия возникновения проблемы

На 3D-графике показан процент потери скорости в зависимости от угла подъема. Видно, что после 30 градусов потеря становится довольно ощутимой и сохраняется примерно на одном уровне при различных углах и скоростях.

Рядом приведен отдельный график для 30-градусного подъема.

Скорости около 22 м/с уже достаточно для возникновения проблемы.

На эту проблему меня натолкнул pete9516.

У него есть временный компромиссный патч:

https://www.nfsaddons.com/downloads/nfshs/tools/11480/dynamic-uphill-crash-fix-crash-logger.html

Патч обнуляет три передние точки выборки при расчете коллизий.

Саму проблему он не решает, а просто отодвигает ее возникновение на более высокие скорости, одновременно создавая дополнительные проблемы с коллизиями:

pete9516-uphill-patch

Я попробовал сделать менее разрушительное исправление в uphill_fix.n4p.

Не вдаваясь в длинные рассуждения, суть исправления следующая: сохраняются все точки выборки, а убирается только ложный высотный признак границы.

Пока я не знаю, на что еще это может повлиять. Судя по коду, исправление не должно приводить к регрессиям реальной физики в других ситуациях, но его желательно дополнительно протестировать.

График сравнения оригинальной физики, pete9516-uphill-patch и uphill_fix.n4p:

Сравнение

3D-график для uphill_fix.n4p:

3D

На видео ниже я записал саму проблему и показал, что после исправления физики тот же replay воспроизводится без столкновения с невидимой стеной.

https://youtu.be/WrqSq-CH8ks

uphill_fix.n4p является частью работы по переносу патчей с прямого изменения EXE-файла на отдельные модули.

На данный момент список патчей пока невелик. Сначала я планирую перенести в новую систему все изменения, которые уже сделал непосредственно в EXE, а затем продолжить исправление ошибок и добавление нового функционала.

Но перед этим сделаю небольшой предварительный релиз с несколькими патчами. Это будет быстрее, чем пытаться сначала довести все существующие изменения в EXE до состояния полноценного релиза.

Сейчас доступны следующие модули:

Список патчей

race_again.n4p — добавляет кнопку "Race Again" в карьерные гонки.

replay_trace.n4p — отладочный модуль для трассировки во время воспроизведения replay.

telemetry.n4p — сбор телеметрии во время гонки.

uphill_fix.n4p — исправление проблемы с крутыми подъемами.

© 2026 nfs4.com. Копирование материалов без письменного разрешения запрещено.

Правила цитирования и использования

Комментарии

★ 5 · 2 комментариев
Свернуть ветку от lnikonl за 2026-10-04
Аватар пользователя lnikonl lnikonl
2026-10-04

I found another problem with this "Dolphin Coaster" while testing the uphill fix.

With the rear-view mirror enabled, the game could crash before even reaching the problematic uphill section. It seems to be caused by some invalid texture-related data in the track. I added an extra check so the game falls back to the normal "no texture" path when the texture pointer is invalid.

Although this isn't directly related to the uphill problem, I've included the fix in uphill_fix.n4p for now.

Аватар пользователя lnikonl lnikonl
2026-10-04

I managed to fix the track geometry, so the game no longer crashes when the rear-view mirror is enabled.

Fixing the track geometry itself is probably the more correct approach, so I'm still thinking about whether to keep this check in the patch or make uphill_fix.n4p handle only the uphill problem.

They're really two separate issues. The uphill problem is in the game's physics engine and needs a patch, while the rear-view mirror crash is caused by the track geometry itself.

Войдите, чтобы оставить комментарий и оценить. Войти