Unusual and Invisible collision on modular pieces

I have some weird collision problem:

As you can see, when there are end-faces on my models, the ball will bounce off like there is a wall. There is absolutely no height difference between the top faces so the ball should usually roll smoothly over the surface.

When there are no end faces on my segments, the ball occasionally behaves like there are some bumps even though there are none at all.

When I use the same pieces as one segment, everything works as expected. But I’d like to work with segments for the sake of better lightmaps. Is there anything I can do?

1 Like

What do the collision surfaces look like in the viewport? Also, aside from the collision issue, you can use bigger chunks of meshes and lightmaps will still look good. Those meshes arent anything complicated so it wont be a problem.

The collision surfaces look as expected - smooth. I’m using per-poly collision by the way.

I know these pieces are simple but they will get more complicated and I’d like to provide evenly detailed lightmaps across the whole level.

Hello,

Thank you for your report. We were not able to investigate this on the engine version you reported, but there have been many version changes to UE4 since this question was first posted. With a new version of the Engine comes new fixes and it is possible that this issue has changed or may no longer occur. Due to timetable of when this issue was first posted, we are marking this post as resolved for tracking purposes.

If you are still experiencing the issue you reported in the current engine version, then please respond to this message with additional information and we will investigate as soon as possible. If you are experiencing a similar, but different issue at this time, please submit a new report for it.

Thank you.

Hi,

I am also getting weird collision issues on steps. I have a kerb, 400x20x20 (as in the Maya screenshot below) and the character refuses to walk up it.

I have a box collision setup in Maya at the same sizes and even if I let UE4 generate the collision its like running into a brick wall.

I can get up a height of 40 if I stack two 400x400x20 floor pieces on top of each other, thats the strange thing. I can get up the step on the left (40 high) but not the right (20 high)

Hello GruntosUK,

There are a few things you can try in order to address the issue you are experiencing. The first solution would be to go into your Character Blueprint within the project you are working. Click on the components tab, and within the Class section select “CharacterMovement.” There you will see a bunch of options with different values that you can change, one of which is called “Walkable Floor Angle.” This will allow you to change the angle in which your character can step up onto object with collision. The angle goes all the way to 90 degrees as well as the “Max Step Height.” Try shifting these values and testing your curbs to see if this fixes the issues you are having.

The second work-around would be to change the collision on your curbs within Maya so they are triangulated in order for the default values to work within your project. Try giving the documentation on .FBX Static Meshes a read in order to optimize your collisions on your models. Let us know if either of these options resolve the issues you are having.

.FBX Static Mesh Documentation

Thanks!

Hi Andrew!

Thank you for replying. I didn’t touch the project since I posted this question so I had to take a look if it still occurs. Unfortunately it still does with the 4.5 preview. It doesn’t matter if I use complex collision or a simple cube collision.

I stripped all the content that’s not needed and uploaded the project here: Dropbox - File Deleted

Just hit play and you should occasionally see the ball jumping when it moves from one segment to another.

Just to check, are you using standard physics simulation on the ball? Or is it some other/custom movement code?

Standard physics. The ball (no collision) is attached to a sphere with a custom physics material with the following settings:

Friction = -1
Restitution = 0.3
Density = 100.

The sphere slides across the surface and the ball rotation movement is faked via blueprint.

Hello DasMatze,

Thank you for sending us the assets to test, and we were in fact able to reproduce the issue you were experiencing with the assets you provided. What is occurring when the ball jumps between each modular piece is that there are minut float point errors in between each modular piece being “connected.” This is currently a limitation of the engine and is not an actual bug with collision.

One suggestion as a work-around would be to use splines to create the shape of the course you would like, and the spline tool will take the modular mesh piece and conform it to that specific path. Another suggestion would be to set the collision on the static mesh within the modeling program a bit offset from it’s exact bounds and import that onto the model within UE4. We do appreciate the insight on this matter as it gives us more to improve upon and investigate. Hope this helps!

Thank you,

Here’s an update on this situation, for future viewers. This would not require any changes to your geometry or static meshes and is more of a fix than a work-around.

There is an option in the Project Settings called Contact Offset (supposedly from 4.13). Project Settings → Engine-Physics → Simulation. There are three settings for contact offset. Contact Offset Multiplier, Min Contact Offset, and Max Contact Offset. I lowered the min and max offset values to get a much better response in the collision behavior.

Here are my settings:

  • Contact Offset Multiplier = 0.02
  • Min Contact Offset = 0.01
  • Max Contact Offset = 0.05

My settings are just a shot in the dark. They may not be the most optimal settings, since I actually do not completely understand what the meaning behind each value is. The matter of the fact is that they will eliminate this ugly bouncing on collision mesh seams that happens by default.

Thanks to some lovely folks on the forum for discussing a good solution: Rolling ball jumps on flat surface - Physics - Unreal Engine Forums

1 Like