Particles using Skeletal Vert/Surf Location aren't on character surface

Issue:

Particles in systems using Skeleteal Vert/Surf Location don’t spawn on the surface of most models.

When I assign a skeletal mesh or character to the exposed Parameter of my particle system, I’m getting inconsistent results. more often than not, the particles are spawning at points well off the model. This gets even worse as the characters animate.

I’ve demonstrated the issue int he following video:

I have tested this with the Mixamo charactrers and they all have this issue as well as characters from our game. The default UE4 BlueMan does NOT have this issue. Also, several Skeletal Meshes I have brought in from MAX have been okay.

Repro steps:

  1. Create a Cascade Particle system and give the emitter a Skeletal Vert/Surft Location parameter
  2. Add the particle system to your level
  3. Add a Skeletal mesh actor to the level
  4. expose the parameter on the particle system
  5. Assign the Skeletal mesh actor to the exposed Skeletal Vert/Surf Location

optional: Add an animation to the skeletal mesh and simulate or play the level

Build info:

I’ve seen this issue in 4.4.x and the 4.5 preview builds obtained from the launcher as well as a custom build from GitHub of 4.4.0

I’m running on Window 7 Pro x64

Hey Tom -

Thank You for your report. I was able to reproduce this internally and have added a bug report for our engineers to begin to look into, TTP# 349593.

I will keep you informed as we work toward a solution to this issue.

Thank You

Eric Ketchum

I have the same issue in 4.7.1

After some experimentations, I noticed that it only happens to particles that are supposed to spawn on vertices (and tris) weighted to only one bone. So, trying to clean up the weights tables (or using the Remove Zero Weights function in Max) is a really bad idea, in this case.

I dirty-fixed it by weighting other bones to the vertices that were set to 100% on one joint. The minimum seemed to be either :

  • One bone at 95%, an other at 5% (under 0.05, it didn’t seem to work). Not a good solution as it mess with the original skinning.
  • One bone at 100%, at least two at 0%. Doesn’t change the skinning, but you have to be careful when applying the empty weights, as it’s unlikely that you have two unused bones sitting there for this purpose.

I hope this help to pinpoint the issue !

Hey gustm -

Thank you for the additional information. I have given it to our engineers who are investigating the issue. And to update the reference number is UE-3222.

Eric Ketchum

Still experiencing this, and it’s a major part of my interaction model.Has anyone found a solution?