So I’ve started working on fleshing out my Advanced-VFX Plug-in for the Marketplace, which currently comprises of some cool new Cascade Modules. After spending some time with the source code I think I can find a solution to most of these ideas, and some are already integrated and working but not in plug-in format. The trick is, I’d like it to be fully compatible with other peoples plug-ins too and integrate seamlessly, I’m having some difficulties with the plug-in integation at the moment that I’ll bring up as I go! I’d rather get the functionality all working first.
Current List of Planned Cascade Modules
Audio-Driven Spawn - Generate particles based on a waveform, set the spawn threshold, delay and whether to loop the audio
Spawn-Driven Audio - Play-Back audio based on particle spawning, I’m not sure this one is possible yet!
Size By Velocity - Already complete, scale a CPU particle size by it’s velocity, Cap Min and Max values
Mesh Initial Location - Similar to Initial Location, but allows you to emit particles based on a mesh. Similar options for mesh position and whether to use the surface or volume of the mesh! Also enables you to add velocity based on the surface normals!
Random Uniform Velocity - Emit particles with a uniform random velocity that changes over time, allows for more controlled random velocity
Angular Camera-Facing Particles - Different algorithm for Particle Camera alignment, rotates them on all Axis’ similar to how you see in the Math Hall demo
Rotation Rate by Camera Direction - Rotate particles based on their offset from the centre of the screen.
Velocity By Wind Direction - Allow Wind Actors to influence particle velocity
Particle Projection Collision - Allow particles to project a complex collision and move around it. MAY be too expensive for real-time simulations
Mesh Convergence/Attraction - Allow particles to converge to a meshes shape based on a strength, similar to current attraction modules
Velocity Turbulence - Self-Explanatory!
Is there anything anybody particularly wants to see, or if there’s something that they know isn’t possible off-the-cuff?
Seems like that plugin will be cool :). Just a quick note, it is possible to play back sounds based on particle spawn/impact/death. This is done by adding events to the Cascade tracks, and then listening for those event names in a blueprint. There will be some demo content coming soon that will show this off :).
The waveform-based idea would be cool- looking forward to checking it out.
Best-
Zak
The first thing that comes to mind is “destroy on location”
Basically if you look at point gravity/particle attractor, a particle goes to a certain location… kill it when it reaches it. (maybe with radius control) (though could perhaps do that with event/killbox)
Color by velocity.
Color over time.
Location over life. (basically an alternative for vector field)
Thanks, most of these are actually already possible. Rotation around location can be achieved by offsetting particle pivots, Location over life has a location module which can directly set the location over time or lifespan, Scale Colour can be checked to use Emitter time to scale the colour.
Colour By Velocity would certainly be a new one, a few alternative ways to implement that too.
Offsetting pivots doesn’t work for mesh particles though. (sadly)
Pivot offset itself doesn’t have a Z-axis. (and can contain only a constant, would be nice to have a univorm)
Location over life has a location module? where can i find the location over life? or do you mean direct location?
Scale color can be checked to use emitter time yes, but if the emitter shoots out particles with a variable lifetime, the colors will differ between them (which can look good, but id prefer to have both options)
Forgive me if i missed anything though
Edit: oh, another one popped in my head:
There is basically “Global space” and “Local space” for particles.
what if there was a screen position option? where the particle stays on the position of the screen (with its velocity etc working from that location)
<nitpick>
Size By Velocity - since velocity is speed and direction, unless you want to scale each axis of the particle by each component of the velocity, maybe it should be called Size By Speed.
(Though that might be neat, too - could give particles a sort of stretching effect when they go fast)
</nitpick>
But that’s exactly what it does You can cap the min and max size though to prevent it getting too high. We also already have size by speed, but it’s GPU-only and has fairly limited options.