Particle blood flow

I’m working on a VR demo, where we are inside of a blood vessel. I’m a bit new to particles in UE4, so I’m asking for some advice.

  1. There is no way to have particles follow a spline (as far as I know), so I’ve created collision tubes for the inside of the vessel, and I’m pushing the red blood cell particles down the tube and letting collisions handle keeping them on track. Is this the only way to handle this? I’m building some modular vessel wall parts that I can connect a bunch together to create a larger cave-like system, so using forces to control it, seemed difficult. Opinions?

  2. I’ve gotten a steady stream of particles to flow, but what I really want is pulsing. Based on the heartbeat, there should be a strong surge of particles, then a pause where things slow, then surge again. I can’t find a way to do this with cascade. Any help would be appreciated.

Thanks for reading!

Andrew

After reading a bit, it looks like the pulsing might work if I generate a Static Vector Field from Maya to represent constant acceleration along the directions of the vessel. Then animate a drag force with a sin wave or some expression. Or maybe someone will mention something better? :wink:

There was something about liquids and physics particles announced at the NVidia event coming to UE4 soon. I’m not sure if its ideal in your case but might be worth looking into.

Is the process of creating a simple wind (single direction) vector field really the best way to handle this? It seems like I’m over-complicating things, and I should just be able to have a constant acceleration on the particle, and animate my drag in and out… but I’m not getting it.

Just use vectors to give them some more force in areas. Even script to animate that vector global. That would be my approach.

How do I add a vector to a particle system in UE4?

It has to be a GPU particle, YOu will then see Vector field as an option in modules. After that you just assign your vector to the module it self. Or global vectors are ones you place in your level.

Ahh, well that’s why I can’t use that solution. I’m using the mesh particle type (as they have to be red blood cell models). So that means I can’t use vector fields at all? Any other ideas? Thanks for your help.

Render an depth mask in your DCC Tool for alpha, Also render a normal map for it. Use those for some GPU particle sprites.
Do the same on a side view as well and spawn some that are on side for GPU again.
Guide some geometry 3d ones that spawn along the path. Spawn some in one place, Then spawn some more in another place. Those should be geometry, The gpu ones should be like fillers that go on and on in the background while the closest ones are the mesh ones that spawn and spawn, You can fake it (Will leave that to you) and those 3d ones by spawning and spawning in some sort of checkpoints will never disappear.

How is that for an idea?

It’s an idea, but I find it difficult to believe that there is no way of doing this properly. I feel like I’m just too new at this to see the obvious answer.

Do you really need a particle system, or do you want a bunch of separate mesh actors that move along splines?
If you’re showing, say, 50 blood cells, the actors may be easier to control than a particle system.
If you want thousands, the performance won’t be good enough.

It’s currently working fine. I have many hundreds… maybe a thousand. The particle system I have working now is fine, except that it all moves steadily, instead of pulsing. It might be possible to animate elsewhere with non-particles. I may look into that. Thanks.

If UE4 could load Alembic or other geocache files, that would be great!

They work on that.

Indeed. I’ve voted for it, as I have many FX-related uses for it. But I’d like to get this to work today;)

The Spline Component might do the trick for you. You would setup a timeline to match your heartbeat. There is a content example of this which has some blue particles that trace the outline of the Unreal U logo.
https://docs.unrealengine.com/latest/INT/Resources/ContentExamples/Blueprint_Splines/index.html#dynamicexamples

Warmak! Thanks for digging that up! Everywhere I looked, I’ve read or been told that there is no way to get particles to follow a spline. A dev even told me this is a requested feature that is not possible right now. But that doc certainly hints at it being possible. Time to dig in! Thanks!