How do I select which particle effect to play in a level sequence dynamically?

Hello,

I’ve got a level sequence where I need to play one of two particle effects depending on the state of the player. I’d like to keep both visible when playing the level sequence in editor mode, so that animators can mute the tracks and see them, rather than controlling it all with event triggers where it will be invisible to animators.

So far I’ve gotten two tracks - one for each particle. They are Spawnable actors. I’ve turned on ActorHiddenInGame for both in the outliner. I am able to add a conditional to the Hidden_In_Game/Visibility track of the particle, through Edit Track → Condition. I set my custom conditional with “Director Blueprint Condition.”

image

I can see that the checkmark/x icon shows up on the track, indicating it’s got a condition set. However, I don’t see it working in PIE.

  • I’ve tried playing Visibility keyframes both at the beginning of the track, and after the particle actor is spawned
  • I’ve tried setting breakpoints on my conditional, but they don’t fire
  • I’ve tried adding a print text statement in my conditional, but it doesn’t fire
  • I’ve tried setting the conditional “Check Frequency” to “OnTick” - but it doesn’t change the behavior
  • If I turn on “Editor Force True”, on both conditions, both particles DO show up in PIE
  • Whether or not I have “Editor Force True” on, the particles both show up in edit mode when I manually scrub through the animation

  • If I turn off “Editor Force True” and replace my condition with the above always true condition, the particle does not play
  • If I switch this to return always return false instead, the particle still does not play.
  • However, If I use the “Invert” flag with the condition above - whether it returns true OR false, the particles do play.

What should I try next?

Okay, turned out to be that renaming the autogenerated functions: EvaluateCondition and EvaluationCondition_0, caused the problem. Even though it looked hooked up in the interface correctly with the renamed names, they weren’t actually firing.

Clearing the functions, asking it to generate two new points, and not renaming them made it work.