Cascade: Use SkelVert/SurfLocation with specific bones

I am trying to make a wall emit GPU particles in sections. I’ve been Trying to keep things as streamlined as possible which might be the source of my issue. Basically, if I use the SkelVert/SurfLocation module in Cascade it works great until I remove some joints from the “Valid Associated Bones” list. As soon as I remove any joints that are influencing a given mesh that has other joint influences a percentage of the particles are emitted from the base emitter location.

A little more info:
I made a single mesh in Maya and skinned it with joints and painted the weights so that each vert is only weighted to a single joint. The sections are key for the effect I am going for. I planned to enable each section at specific times.
If I use all the joints it works, but as soon as I remove 1 or more of the joints affecting a given surface then some particles start emitting from the emitter world position.

It seems to work if the mesh is separated and each is just affected by a single joint. And this will work I guess.
Just a bummer that I can’t get it to work any other way.
Anyone have any thoughts?

I am using version 4.5.1.

You can recreate the bug in the Example Content Effects Level. Using the guy on fire setup, just remove the Bone/SocketLocation Module and Add as SkelVert/SurfLocation Module. Autofill the bones. Update the parameters on the particle actor in the scene and play. All should be working perfectly. Now pop into cascade and delete a few indices from the list of Valid Associated Bones and after one or two you will see particles starting to be emitted from the particle actor in the scene as well as the Skeletal Mesh.
Is it really an all or none setup?
That is a bummer.
Any help would be greatly appreciated.
Thanks
~Ben

Hey animatedfox -

I have been trying to reproduce this issue with your instructions above in Content Examples, but haven’t been succesful as of yet. I did want to check to make sure that you are turning off the secondary emitter or adding the second Skel/Vert module by not doing that I was able to reproduce the effect but on correcting that mistake it worked as expected.

Could you possible send a sample asset and particle system that exhibits this problem for us to test?

Thank You

Eric Ketchum

Thanks for getting back to me. Yeah, I am sure my explanation could have been much clearer. Indeed you also need to remove the other Location Modules and emitters to clearly test the issue. So yeah, with a single emitter in the particle system and the only Location module existing being Skel/Vert module you will see the issue. Autofill all the joints and setup the particle actor in level. Then just delete any Valid Joint entries on the SkelVert module. (Note that removing b_Root joint doesn’t cause the bug because I believe it isn’t weighted to any verts)

I am not quite sure the best way to pass around assets, but here is a test. This is a level and emitter that are based on assets from Content Examples.
EffectsTest.umap and P_spawn_from_boneTEST.uasset.
The map and particle system reference the Man on fire skeletal mesh.
Let me know if you need things in a different format.
Thanks so much for your help on this issue.
~Ben

Uasset Files Here

Hey animatedfox -

Thank You for that setup that cleared up the reproduction for me. I believe that this is associated with an earlier reported bug, but I updated and also reported and included your information into it. I will keep you informed as we move forward toward a solution, for reference it is UE-5189.

Thank You

Eric Ketchum