Edit: A much more improved and stable version is now available as a Tier 2 reward on my Patreon: https://www.patreon.com/GhislainGir
Here's a particle system I created to learn Unreal Engine's Niagara particle system. Most of the techniques I used were inspired by this video that I strongly recommend: https://www.youtube.com/watch?v=CqXKSyAPWZY
Crabs were modelled and animated in Blender. Animations were baked into textures to use vertex animation. A custom state machine was built in Niagara to drive the crabs’ behaviours and animations. They flee the player (using a Niagara Parameter Collection to send the player’s location), avoid nearby obstacles (using Distance fields) and nearby crabs (using Grid 3D)
A cheap hack was used to make them stick to the ground (using virtual textures to project vertices onto the ground) because I couldn’t figure out how to do proper terrain collision. This issue is that a landscape in Unreal Engine automatically generates a Distance Field and so the nearest distance a crab will query is the ground underneath it and that completely messes up obstacle avoidance. I need to investigate a better solution but for now that trick works surprisingly well!
Niagara is insanely powerful and not that complicated when you take the time to really dive into it. I encourage everyone interested in it to give it a serious try :) A lot of great examples can be found and learned from in the Content Examples with UE 4.26. The future of particles is bright!