Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Rust — Кривой предикшн для лука (Hunting Bow Prediction Logic)

Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
429
Реакции
10
Здарова, форумчане. Пытаюсь допилить аим в своем проекте под Rust и столкнулся с классической бедой — кривым предикшном на луках. Спастил логику изменения скорости от дистанции, но результат так себе.

Ситуация следующая: когда челик бежит прямо на меня или от меня, предикшн отрабатывает четко, летят одни хедшоты. Но как только цель начинает стрейфить влево-вправо или двигаться по диагонали — всё, стрелы улетают в молоко.

Сам кусок кода, который юзаю для определения скорости:

Код:
Expand Collapse Copy
else if (WeaponName == xorstr_("bow.hunting") || WeaponName == xorstr_("legacy.bow"))
{
 if (Distance <= 41.0f) BaseSpeed = 60.0f;
 else if (Distance <= 82.0f) BaseSpeed = 58.0f;
 else if (Distance <= 127.0f) BaseSpeed = 57.0f;
 else if (Distance <= 255.0f) BaseSpeed = 52.1f;
 else BaseSpeed = 50.0f;
}

Я так понимаю, проблема в том, что этот хардкод BaseSpeed не учитывает реальное замедление стрелы (drag) или я где-то косячу в расчете Travel Time для Velocity цели. В Расте баллистика специфическая, и простым затыканием констант по дистанции тут, похоже, не обойтись, особенно когда дело касается стрейфов.

  1. Кто как рассчитывает время полета снаряда для лука?
  2. Нужно ли учитывать гравитацию отдельно для каждой дистанции в этой формуле?
  3. Может есть у кого валидный метод экстраполяции позиции для Unity-баллистики?

Буду признателен за любые наводки, кто уже ковырял эту тему.
 
Назад
Сверху Снизу