High velocity collision issues

Hey guys,

Currently I’m trying to deal with collision and high velocity but so far I didn’t achieve what I want to do so I hope you guys could help me out. In my game I have a static mesh (see figure below) where player have to go through the hole if he would hit a red part then he shall be destroyed. Important to note may be the fact that player control several actors (around 50) at the same time.

282598-buga.png

However, everything works fine when the player (and also the actor) move slowly. In this case collision will be recognized and the actors who hit the wall will be destroyed. The problems starts as soon as I increase the velocity of the player and the actors. When I do so collision is not detected anymore. Therefore, I tried several methods (which I will explain below) but none of them fix my problem.

My first attempt used the “Use complex collision as simple” in my static mesh. For this I placed a collision box which was slightly bigger than my actor around the actor. Then when I increased the velocity I also increased the size of my collision box. This worked somehow but not as I want since the actors only collide sometimes.

For my second attempt I tried to use the physics but this for some reason did not work at all.

Then I had the idea to place simple objects (which later shall be not visible for the player) on top of my static mesh (as child objects since my obstacle have to move in my map) as show in the figure below.

In this figure the blue parts are static meshes (in this case boxes). My idea was than to use the simple collision of the boxes to tell whenever an actor hit the box. Unfortunately this didn’t turn out well… The problem was that the objects where there in the Blueprint of my basic obstacle (the picture with the red borders) but where not shown in the game itself (and I am sure that I didn’t tell them to be hidden). Also since my obstacle have to move around in the map it is important that the boxes are child elements of the obstacle (otherwise I would need to move each box around as wel) but, then again I am not sure if I have to inherit the physics of the obstacle to the boxes.

I hope you guys understand my problem and can help me out somehow since I am running out of ideas. I was kind sure the attempt with the boxes should work but for some reasons it doesn’t…

Thanks a lot.

,

Thanks four answer. You are right I totally forgot to mention CCD. However, since I was googling a lot before I already found similar questions with this suggestion.

So I can say that I activated CCD (I tried every combination: only actor, only mesh and both) already but it doesn’t really seem to help.

I’m noticing you have a high velocity collision problem but not once have you mentioned enabling CCD.
Try to enable CCD (Continuous Collision Detection) on any object that has collision with a fast moving object and see if that improves your situation with high velocities.

Can you share your project so I can inspect it closer?
You are sure it only happen with a change in velocity?

I don’t think that I can share the whole Project (since it is to big) but I guess I could create a Showcase of the issue and share it with you. Yes I tried several times with a different Velocity and it happens only with a higher Velocity. However, I guess it is a combination of several Things. Since in my game following happens:

  • The obstacle itself is moving
  • The obstacle itself is also rotating
  • I have many small actors (at least 50)
  • The actors are Always moving and rotating
  • The Player Controllers a (invisible) pawn and the actors try to stay around the pawn. And the actors are child Elements of the pawn.
  • Actors/Player move with high Velocity
  • Several Actors can and most likely will hit the obstacle at the same time. In this case all obstacle that collide with the obstacle shall be destroyed. So for example 27 actors hit the obstacle in this case all of this obstacles Needs to be remove. For the Moment I try to this as shown in the figure below.
  • The obstacle itself is placed in a kind of floor and the obstacle is as big as the floor (at least on the X and the Y axis) which means that the obstacle is colliding with the walls of the Floor all the time.

The Problem is that every time only a few actors are destroyed. Never all of them. Even if at some Point only 4 or 5 are remaining. The collision will not destroy each Actor. Since UE4 is a powerful engine I guess I do not have to deal with concurrency. Or am I wrong ?

So actually my guess is that the combination of the above mentioned Points is causing the issue

You can try enabling Multi Body Overlap as well same place you enable CCD.
You can also try getting overlapping bodies every tick to see what shows up inside, if you have 4 objects going through add a check to see if the length of overlapping bodies every tick hits 4 or not.

Try reducing complexity and work your way up. Does it work when Obstacle itself is moving first, then add rotation, then add more objects, then increase speed, etc… until you find out where it breaks exactly.

Thanks again for you help and you suggestions. As soon as I am home I will try this out. Also I will create a showcase and upload it.