Spline Mesh Component maxes out disk usage

The Problem

I have encountered a situation when using the spline mesh component that results in the computers disk usage getting maxed out to 100%.

Specifically, the situation happens when you have a spline mesh WITH collision enabled, and you update the splines positions and tangents EVERY tick/frame.

I realize that updating a spline mesh with collision enabled every frame may be less than ideal towards performance. However, the fact that this situation completely maxes disk usage has me wondering if this is simply a limitation of the engine, or if this is an actual bug.

Steps to Reproduce

This can easily be reproduced within the Content Examples project available from the Epic Games Launcher’s Learn tab.

  1. Open the Content Examples project.
  2. Open level (Ctrl+O): Blueprint_Splines.
  3. Navigate to the display with the fish (2.4 Spline mesh for pawn animation).
  4. Select and open the fish (BP_Spline_Pawn) blueprint.
  5. Under the list of components, select the “Spline mesh body” component that is utilizing the S_Fish_Body static mesh.
  6. Within the details panel, scroll down to the collision settings, and change the collision profile to “Block All.”
  7. Compile and Play the level.
  8. Navigate to the fish and begin controlling it.

As long as the blueprint logic that updates the fish spline mesh is executing every frame, you should notice the hit to performance. If you open up your computers Task Manager, you should see that the disk usage maxes out.

Hopefully someone could let me know if this is simply a situation that I should avoid, or if it’s a bug that can potentially be fixed.

Sure thing. I’ve attached my [dxdiag][1]

Here is a “before and after” of the task manager. Where the “before” is playing with the collision profile on the spline mesh component set to “No Collision.” And the “after” is playing with the collision profile set to “Block All.”

###Before

###After

Since it’s a spline mesh component, there is only the two spline points (Start and End). In my personal project where I first encountered this situation, I was updating only the start spline point position and tangent. In this content examples project with the fish, it looks like the start tangent, the end tangent, and the end position, are all being updated every tick.

It is a very basic setup. You just need to update the start or end spline point of a Spline Mesh Component every tick, with collision enabled. The Content Examples project provided from the learn tab in the Epic Games Launcher already has everything you need to showcase the issue. You just need to follow my “steps to reproduce” in the original post.

Here is a google drive link to the test project I just made.

I made a blueprint that moves the spline end position up and down. Left Click with the mouse to toggle between collision and no collision. When collision is enabled, disk usage should start to max out in a couple of seconds.

I have also gone ahead and installed UE4 on an older laptop of mine, and im also getting the same results there. Just in case it helps, here is the Dxdiag for my laptop. Like I said it’s a bit older, and I don’t use UE4 on it, so it may not be of much use.

Hi RO10,

Sorry for the delay.

After looking at your system specs, that seems to be the issue. You are using an integrated graphics card which reserves some of your 8 GB of RAM for other things. Here is what we recommend:

  • Desktop PC with Windows 7 64-bit or a Mac with Mac OS X 10.9.2 or later

  • 8 GB RAM

  • Quad-core Intel or AMD processor

  • DX11 compatible video card

Anytime you are doing something like setting a location on tick, it can be pretty taxing on your system. We tested your project on our PC’s but the max disk usage was 14%.

-TJ

Hi RO10,

I’m going to need some additional info:

  • Your Dxdiag saved as a text file.
  • Some screenshots of your Task Manager while this is happening?
  • How many spline points are you updating on tick to get this behavior?
  • If it’s more than a basic setup, please post a test project that showcases the issue.

We did some more testing on a Win10 machine, but I’m still unable to get any performance change. Could you provide a test project that we can test internally?

I know this question is old, but I wanted to check it out. I followed reproduction steps and enabled collision:

Then I saved, compiled, run game and started controlling fish:

As you can see, disk usage stays at 0%. I didn’t notice any lag or low framerate, however iGPU is maxed out (this is expected, no matter if collision enabled).

Note: I am using latest UE4 version: 4.22.1