Доброго времени суток Виктор!
Большое спасибо за ваши труды, мне они нравятся и я использую их в своем проекте.
В частности реализация MMTSuspensionStack, я учусь программировать на С++, путем изменения вашего кода, добавления своих алгоритмов, вроде вполне неплохо получается.
В основном я взял за основу функцию CalculateAndApplySuspensionForce, что бы переделать и оптимизировать под свой проект, получилось то что нужно, хороший “Антиграв”.
Меня интересует этот алгоритм из той-же функции, я все никак не могу понять принцип его работы в деталях, вроде-бы напоминает ПИД-контроллер, только без Интегрирующей и Дифференциальной составляющих, только Пропорциональный и какой-то свой алгоритм затухания.
Проблема в том, что я хотел обобщить этот алгоритм и вынести в библиотеку как независимую функцию выполняющую роль “Стабилизатора”, чтобы ее можно было применить и для “Антиграва” и для стабилизации поворотов, удержания нужного угла.
Обобщить и вынести отдельно получилось, в Антиграве прекрасно работает, но, для стабилизации поворотов путем удержания нужного угла, работает только в одну сторону, я так понимаю что этот алгоритм не хочет воспринимать отрицательные значения на входе, в итоге он либо рассчитывает не правильную силу, либо вообще не работает.
П.С. Не знал как назвать этот эффект удержание объекта в воздухе над землей, но в моей игре эту функцию выполняет “Антиграв”, в случае вашего плагина это Suspension Stack.
Kind time of the day Victor!
Thank you very much for your work, I like your work and I use them in my project.
In particular, the implementation of MMTSuspensionStack, I’m learning to program in C ++, by changing your code, adding your algorithms, it seems to be quite good.
Basically, I took as a basis the function CalculateAndApplySuspensionForce, which would be redesigned and optimized for my project, it turned out that what is needed is a good “Antigrave”.
I’m interested in this algorithm from the same function, I still can not understand the principle of its operation in detail, sort of like a PID controller, only without an Integral and Differential component, only Proportional and some kind of its own damping algorithm.
The problem is that I wanted to generalize this algorithm and put it in the library as an independent function that plays the role of “Stabilizer”, so that it can be used both for “Antigrava” and for stabilizing the turns, keeping the right angle.
Generalize and render separately, it works fine, but in Antigrave works fine, but to stabilize the turns by holding the right angle, it works only in one direction, so I understand that this algorithm does not want to take negative values at the input, in the end it either calculates not the correct strength, or does not work at all.
P.S. I did not know how to call this effect an object holding in the air above the ground, but in my game this function is performed by “Anti-Gravity”, in the case of your plug-in this is Suspension Stack.