Move objects in arc to multiple targets

Hello everyone,

I’m currently trying to set up a system that moves objects (drones) between a varying amount of points.

The finished interaction should look like this:

  1. The player can choose between 2, 4, 6, 8 (positional fixed) landing points.
  2. The drones should start to move between the points, basically fly in an arc to a target point.

So each point sends drones to each other point.

I thought about different approaches:

  1. create splines between all the points to easily get the desired arc and animate objects along those splines → a lot of splines to create by hand
  2. create splines programmatically and animate objects along those splines → not sure how easy it is to create those splines via BP
  3. create some kind of particle system on each point with varying targets

Now I’m kind of lost what the best approach would be.
My first impulse was to use particle systems, though im kind of lost on how to create those, letting particles fly along an arc and with multiple targets (or would you just spawn different emitter for different targets?)
Also they should avoid hitting each other if possible :smiley:

Any input from you guys regarding the best setup & so on, would be appreciated :slight_smile:

Cheers,
Daniel

  1. create splines programmatically and animate objects along those splines →
    not sure how easy it is to create
    those splines via BP

This ^^^ probably; you place an actor with a spline at one landing point and place the target for the spline (here, a billboard but any scene component will do) at the other.

It can be all updated dynamically, and also allows you to easily draw the trajectory using spline mesh components, and fancy it up with particles if you must.

323502-screenshot-2020-11-30-164111.jpg

It would be a matter of providing the spline actor with 2 coords - the starting and landing point.

Image from Gyazo

Thanks for your response.
That’s the way I went yesterday. My BP is checking for other Actors of the same class and creates a spline component for each of them using the self position as start, the “other” Actor as target and the in between point gets calculated. Works well!
I also started implementing a Niagara Particle System with a Niagara Script that attaches the particles to the spline.

The only problem now is that the Niagara User.Parameters only allow for float, vector, bool, color and actor variables to be passed none of which an actor component belongs to…
I opened another question for this though: https://answers.unrealengine.com/questions/998465/