EasyCrowds - Create Massive Crowd in Unreal Engine

The function of bullets also depends on the PBD grid, so when the upper limit of the grid is exceeded, the bullets will also fail.

You can activate the display function of the PBD grid in the visualize section of the manager for debugging. When the grid turns red, it indicates that the current grid has exceeded its load capacity.

@Simple.B Thank you! Adjusting the PBD grid bounds solved my issues.

Why does the character in the example level, which moves spirally upwards along the spline, not follow the spline perfectly but instead drifts further and further outwards? Is it inertia? How can I make them follow the spline perfectly?

The character uses the tangent direction of the nearest point sampled on the spline as the moving direction. Your character’s deviation from the direction may be due to sampling another point on the curve that is closer to the character.

Because it’s like that in the example level, is this a bug? Or? One by one, they move upwards in a spiral nicely along the spline, but it doesn’t work when there are too many people. How can this be resolved?

It might be possible to give the character a traction force towards the curve while it is moving along the curve, making the character move closer to the curve. I will try it out, and if it works, I will update it into the system.

1 Like

Hi, where can I find the documentation for this plugin? Already bought it and can’t seem to find any on the Fab page. Thanks!

Awesome, thanks for your hard work! Looking forward to him being controllable in the new version!

Since this system was just developed recently, it doesn’t have complete documentation yet. I will supplement this part of the content as soon as possible. Thank you!

Hi @Simple.B thanks for the document! Been using the plugin and it has been great so far. 2 questions:

  • How do you set to only spawn x amount of crowd only? I want to spawn per session/wave
  • When projectile has really quick velocity, it tends to pass through the particle. Any idea how to improve this? I’m testing with 30000unit/s and a lot of the time it just skips entirely

In CrowdGenerator, the generation methods of GridSpawn, RingSpawn, and SplineSpawn can spawn a fixed number of characters at once. For BoxRandomSpawn and RingRandomSpawn, you can set the Upper Limit value to control the maximum number of continuously spawned characters.
Regarding the issue where an excessively fast bullet speed may cause particles to be ignored: I think if your bullet is already that fast, you could skip the bullet’s flight process entirely. Instead, directly generate a Trigger at the detected enemy position to inflict damage.

Thanks for the reply!
Regarding the 2nd point, to generate a trigger at the detected enemy position, I need to have a way to trace it for every shot. Right now line trace does not work, so what is your suggestion?

I think it might be possible to implement logic similar to line-box ray casting in Niagara. The blueprint passes in the starting point, direction, and length of the ray, after which Niagara performs the ray detection. Each GPU particle character can act as a bounding box for intersection testing against the ray, and the nearest detected enemy is transmitted back to the blueprint via NDC.

1 Like