Download

Physics "sticking" during collision

I’m experimenting with physics for my flying game. Borrowing the Content Examples UFO mesh, I have managed to make a working, albeit very, very basic pawn. It can fly, it can roll, pitch and yaw… and that’s pretty much it.

I am experiencing an issue currently that I don’t really understand. Admittedly, I don’t really have all that much understanding of physics nor am I good with the relevant maths, so I might be missing the obvious here. During collisions, sometimes it works, but relatively often I end up getting stuck to the object I collide with, almost as if it is a magnet. Adding input to roll, pitch or yaw away doesn’t do much good either (I’ve added indicator for the axes at the bottom left of the HUD… Roll, Pitch and Yaw). It seems to try to apply the torque, but just can’t do enough of it.

Could anyone shed some light on why this is happening, and have any ideas on how to get around this issue?

Video
Quick video where I deliberately try to trigger the problem.

Blueprint
If it is of any help, here’s a post I made in a different thread which shows the blueprint. The only change I’ve made since then is adding basic functionality for taking damage and some HUD stuff (which is irrelevant for this).

&d=1444957472

Default values for preset variables (variables not mentioned simply start at 0 and are calculated along the way):

  • ThrustDigitalMultiplier: 0.005
  • AccelerationForceMin: 75632.0
  • AccelerationForceMax: 151265.0
  • TorqueBase: 150000.0

Other settings worth mentioning (on root Static Mesh component):

  • Simulate Physics: True
  • Mass in KG (overriden): 100.0 Kg
  • Linear Damping: 1.0
  • Angular Damping: 1.0
  • Enable Gravity: False

You could try taking the impact normal and doing a reflection - adding thrust in a direction that’s the impact normal with the velocity normal combined.

First of all, thank you for your response - I very much appreciate that - and apologies for a majorly late reply on my behalf.

I’ve tried a ton of combinations to try and resolve it to the point where I’ve forgotten half of what I have already tried. :stuck_out_tongue: For starters, is this anything like what you had in mind with your reply? If it is wrong, please do correct me.
9898c0c6d1250e8e8ce13a0d0e43be88e9068587.png

In its base form I still end up getting sticking to the ground like I did in the initial video. So to ensure the impulse wasn’t too weak, I also tested it with a flat 10000 instead of using Velocity Length like in the picture above. Doing that made physics even stranger - I didn’t stick, but would either simply go out of control, or I’d end up getting a wobblyness whilst sliding a bit back and forth along the surface (as if attempting to stick and unstick alternately) until it finally achieved an angle to break free from the sticking.

So I’m still at square one. Adding a little example drawing of what in my mind would be the “ideal” scenario during collision - probably not entirely 100% realistic, and oversimplified (seeing as the image itself is omitting the third dimension). Not sure if it is of any help to anyone, but I figured why not. Red arrow is the direction of movement, the angle of attack, before collision, the green arrow being the angle after collision.
10d0064afb85464876bf3d5f4e3e89d95caa5c91.png

Basically, keeping in mind that the ship has “constant-on engine” (so thrusters just keep adding forward force):

  • Nose hits surface
  • Constant thrust forces the nose into a slight “slide” along the surface whilst thrusters are trying to push the rest of the ship towards the surface
  • Being the first part to the hit the surface, the nose rebounds slightly upwards again (away from the surface), putting the ship at a minor but effective escape angle from the surface

This is at least how I’d imagine it happening. Again though, emphasizing that I know this is a simplified explanation. I doubt it is near as easy as I make it sound, but that is at least the basic feel I’m aiming for.

All help is majorly appreciated as this is something that halts my project early on.

Mirror vector by normal is what you are after. eg Set your offset vector to it’s mirror w hit normal.

Thank you for answering!

I hate saying this, but I think I need some spoon-feeding here so to speak. Considering I’m still getting stickyness and other weirdness, I presume this is not what you meant…? Would you mind giving me a bit more detail on the setup?

fcd69eef8217526b6e5f0a5bd97e1b08444090a1.png