Для данного автомобиля я применил систему подвески на четырех колесах. Система основана на Законе Гука.Физика [UE4]: выполнить «максимальное сжатие» для подвески транспортного средства
Проблема: транспортное средство не должно касаться земли. При движении в сферическом контейнере (внутри) подвеска сжимается до 100%, заставляя шасси автомобиля касаться метро, что приводит к нежелательным столкновениям, которые бросают автомобиль.
Несмотря на это маи являясь realistical поведения, наша игра нацелена на аркадном чувство, поэтому я ищу формулу для реализации максимального сжатия, так что шасси автомобиля не могут подойти ближе к метро чем X процентов от размера подвески в любой данный момент,, фактически не моделируя физический контакт между двумя жесткими кузовами. Таким образом, мне нужно применить поддельную силу к подвескам.
Мой текущий подход: Если шасси транспортного средства будет фактически касаться подвески базы, а (К сожалению, я не знаю, правильное слово, чтобы описать это, я имею в виду, когда подвеска при максимальном сжатии.) сила, равная по величине и противоположная по направлению относительно силы, нажимающей на подвеску, будет приложена к шасси транспортного средства, заставляя его перестать двигаться вниз.
Таким образом, я получаю свою скорость передвижения по всему миру V. Чтобы получить скорость вниз, я получаю DotProduct скорости и BodyUpVector.
float DownForceMagnitude = DotProduct(VelocityAtSuspension, BodyUpVector);
FVector DownForce = DownForceMagnitude * BodyUpVector;
FVector CounterForce = -DownForce * WeightOnSuspension;
Хорошо, это псевдо-код работает несколько отлично, даже под землей, когда транспортное средство попадает на плоскость после прыжка. Однако вождение на растущем склоне (например, движение по внутренним стенкам сферы) делает подвеску максимально сжатой, поэтому, по-видимому, мой подход неверен.
Теперь я задаюсь вопросом, в чем причина. Мой расчет веса моделируется только VehicleWeight/4, так как Unreal Engine 4 не имеет функций для получения веса в определенном месте. Я не физик-профессионал, так что простите меня, если это легко вычислить. Это может быть проблема?
Мне не нужно физически 100% правдоподобное решение, мне просто нужно решение, которое работает, и в достаточной степени останавливает движение вашего транспортного средства вниз.
Любая помощь приветствуется. Привет,
Очень сложно заставить такой код работать без хорошего понимания основной физики. Работает ли ваш подход на наклонной плоскости? – Beta
Визуально кажется да, но я еще не выполнил 100% -ную отладку для этого. –