Попробую развить теорию бесконтактной подвески для лучевой модели отталкивания.
Учавствующие в модели детали:
эффекторы "Антиграва" (сокр. гравики)
"Джамп-Концентратор"
толкун (мнимый объект отталкивания, связанный с точкой на поверхности)
Расстояние от гравика до толкуна (точки отталкивания) будет обозначаться буквой r, сила отталкивания на этом расстоянии - Fr. Общая формула, связывающая расстояние r и силу отталкивания Fr имеет вид:
Fr = k / (r*r)
где k - некий коэффициент пропорциональности. Чем он выше, тем сильнее будет отталкивание при том же расстоянии. К примеру, если на расстоянии r метров, сила отталкивания составляет Fr Ньютонов, то значение коэффициента k может быть найдено так:
k = Fr * (r*r)
Исходя из наших с Вадимом интегрирований и моей скурпулёзной проверки в Excel'е, могу с уверенностью заявить, что энергия взаимодействия гравика с толкуном при расстоянии между ними r будет равна:
Er = r * Fr
или, что эквивалентно:
Er = k / r
Замечу, что сия энергия - эта работа, которую совершит поле при отталкивании толкуна с расстояния r на бесконечно большое расстояние.
Другими словами, если расстояние между гравиком и толкуном изменилось с r1 до r2, то поле совершит вот такую работу:
Aполя = E1-E2 = (k/r1) - (k/r2)
Как видно из формулы, при неизменном коэффициенте k поле совершает положительную работу, когда расстояние увеличивается (глайдер слетает с обрыва или прыгает) и отрицательную, когда расстояние уменьшается (глайдер налетает на бордюр или падает с высоты). Соответственно, эквивалентную работу противоположного знака совершает гравик, поглощая/выделяя при этом джамп-энергию.
Изменение коэффициента k - единственный способ непосредственного регулирования Антигравом силы отталкивания каждого индивидуального эффектора. Предельное значение этого коэффициента можно назвать "макс. мощностью" эффектора. Чем она выше, тем выше максимальная высота парения при том же весе глайдера, а также сильнее толчок при прыжках. С другой стороны, механическая прочность эффектора и его креплений ограничивает максимальную силу отталкивания F.
Теперь подробнее об энергиях. В модели учавствует 3 вида энергий: электрическая (аккумулятор глайдера), потенциальная/джамп (джамп-концентратор) и энергия взаимодействия толкуна с гравиком (активная). Активная (энергия отталкивания, или энергия поля) и потенциальная (джамп) могут свободно переходить друг в друга, за счёт чего регулируется сила отталкивания (чем больше активной энергии, тем выше k, т.е. сильнее отталкивание при том же расстоянии). В игре, в интерфейсе, соответственно, нужна полоска джамп-энергии наравне с полосками брони, щита и глайда. Антиграв пытается держать джамп-энергию на определённом уровне, потребляя/выделяя электрическую энергию аккумулятора, что есть не такой уж быстрый процесс.
При нажатии прыжка джамп-энергия резко переходит в активную форму, увеличивая k, т.е. повышая мощность гравиков до максимума (насколько позволяет их лимит прочности, т.е. Fmax и/или мощности kmax). При этом может быть затрачена вся или часть джамп-энергии. Результатом будет ускорение в сторону, зависящую от текущей ориентации грави-эффекторов. В конечном итоге, даже при стрефе, джамп-энергия, скорее всего, будет возвращена (при прыжке уж точно - когда падающий обратно глайдер замедлит скорость до нуля, Антиграв снизит мощность эффекторов обратно, предотвратив отскок вверх, при этом переведя излишек активной энергии обратно в джамп-концентратор).
Теперь о технической реализации модели и манипуляциях с энергиями при полёте над неровным ландшафтом. Ответить на вопросы, кто совершил работу и кто затратил энергию нам поможет мнимый толкун. Сий призрачный объект якобы управляется Антигравом, который перемещает и связывает толкуна с той точкой поверхности, от которой планируется отталкивание. Работа, которую совершает Антиграв, валтузя толкуна с места на место, определяется лишь изменением расстояния между ними, ибо толкун не имеет массы и подвержен действию лишь отталкивающего поля. Перемещение толкуна мгновенно.
Итак, каждый цикл обсчёта физики, после перемещения всех объектов (включая поверхность с приклееным к ней толкуном), с каждым из опорных гравиков происходит следующее:
1) активная энергия всех гравиков временно переводится в джамп. Количество собранной энергии с каждого из гравиков равно:
E = k1 / r1,
где r1 - текущее расстояние между толкуном и гравиком, а k1 можно рассматриваь как текущую мощность гравика;
2) направление гравика, при необходимости, меняется и вычисляется новая точка отталкивания (пересечение луча направления с треугами моделей и ландшафта). Толкун перемещается туда и жёстко связывается с соответствующей моделью/ландшафтом (т.е. перемещаться толкун в следующем цикле будет вместе с ней).
3) в зависимости от требуемой силы отталкивания (F2) и нового значения расстояния (r2) вычисляется неообходимое значение мощности гравика:
k2 = F2 * (r2*r2)
4) снова торги с учётом максимальной мощности (kmax) и силы (Fmax) гравика, в результате чего k2 может быть снижен, если выходит за предел возможностей гравика; плюс такой же обсчёт других гравиков тоже может повлиять; после торга мощностей, когда значение k2 выбрано, можно посчитать, сколько джамп-энергии необходимо затратить:
E = k2 / r2
После того, как энергии, необходимые всем гравикам, просуммированы, полученное значение (Es) может оказаться большим, чем есть в джамп-концентраторе (Emax). В таком случае мощность каждого гравика пропорционально нормируется:
k2 = k2 * (Emax/Es)
и джамп-энергия обнуляется.
Хух, я просто Винни-Пух.
