Spline Mesh Collision Bug in Standalone

Spline mesh components do not behave consistently between PIE and Standalone when they can collide.

Steps:

  1. create a new actor. Leave its root as a scene root.

  2. in its Construction Script, use an Add Spline Mesh Component node

  3. configure this node to use any mesh (I’ve used two separate meshes of my own and S_Pipe_Spline from content examples).

  4. Set the spline mesh to be created to MOVABLE, not static

  5. Set the collision preset to BlockAll

  6. Grab the output of this node and connect it to a Set Start and End node for spline mesh components.

Play in STANDALONE (not PIE) and you will note that you can walk right through the spline mesh. The one place it will block you is the place where the spline mesh WOULD have been, had you not set its start and end.

NOTE, you MUST deform the spline mesh to experience this. Because the collision improperly ignores the Spline Mesh’s start and end, if you leave them at their default locations it will appear nothing is wrong.

Also NOTE, A Spline Mesh component which is part of the actor by default does not exhibit this behavior, even if set to movable, and a Spline Mesh component added by the construction script does not exhibit this behavior if it is set to static. It must be a movable spline mesh created with a construction script node.

Also note that when in PIE mode, the collision works fine, and even in Standalone mode the collision visualizer command will SHOW the collision in the correct place, even though the game doesn’t treat it as such.

Hi RhythmScript,

Thank you for the report. I was able to reproduce the issue in 4.9.2, however it is now working correctly again in our latest internal build. You should see it working properly in a future update.

As for a workaround, it seems to only effect the Standalone version. An actual packaged project is not affected.

Cheers,

TJ

So, we’re at 4.11.1, and this is still not working the way it should… I don’t know if whatever fix you had in your internal build got broken again?

This is becoming something of a showstopper for me because with level streaming now built into my game, PIE is no longer viable for testing (the engine runs out of memory any time you try to start a PIE session) and the only way to iterate through playtesting is with standalone. You are correct that packaging resolves the issue but I SOOOO don’t have the patience to cook my game every time I want to tweak the placement of a rail or something in my game.

Any sort of ETA on when this fix will come around?

Hi RythmScript,

I followed the repro steps above and just tested this in a new 3rd Per template in 4.11.1, but I couldn’t get your results. The issue is fixed for me.

Could you try this in a new project in 4.11.1 and see if you still see the issue? It could be confined to your project.

I’ve got the exact same problem.
In the standalone version, the collision doesn’t work when I change the spline mesh dynamically.

Will you ever eliminate this bug?

If needed, I can provide my test project (UE ver. 4.12.3).

Hi Konata_Yuki,

I tested this by using OP’s repro steps from above but I couldn’t reproduce the issue in 4.12.3. Please feel free to post your test project and I will look into it further.

I found the problem. When I choose ‘use complex collision as simple’ as ‘Collision Complexity’ the collision doesn’t work in the standalone version.

Also see my test project. Zippyshare.com -

Could you upload the project to either Google Drive or Dropbox? That site seems to be blocked by our firewall.

In the meantime, I attempted to reproduce this issue again but this time using a static mesh that used Complex as Simple instead of imported collision. I still was unable to reproduce this behavior in 4.12.3.