Hi guys! I’m working with Unreal Engine 5.1.1, and I have an Actor with only a StaticMesh as Root Component. I need to just apply some Forces in that mesh so the Actor starts to move.
Let’s say, for example, that I need to apply only a 30N force in the Z axis (3,000 kg.cm/s²) in a 3,000 kg mesh, as follow:
FVector Force = FVector(0.f, 0.f, 3000.f);
FVector Location = Mesh->GetCenterOfMass();
Mesh->AddForceAtLocation(Force, Location);
Following the equation F = m.a, the acceleration should be 1cm/s². However, my Actor practically not move. I computed the average of acceleration over time ((currentVelocity - PreviousVelocity) / DeltaTime), and at the end of the day, the acceleration is much smaller then the 1 cm/s².
However, if I increase the force to 300,000 (or even if I decrease the mass to 30kg instead), the acceleration should be 100cm/s², and the average of acceleration computed is preatty close to it. So, I understand that the problem occurs only with forces that result in small accelerations (right?)
The physics is enabled and the gravity is disabled, and both linear and angular damping are set to 0.0.
I know that this is a very small acceleration, but I need to simulate the real-world physics with high fidelity. Is there any solution or workaround for the problem?