Best option for flocking? (AI / Homing Projectiles / BP ?)

Hey all, I’m attempting to create a flocking mechanism and I’m unsure how best to approach it.

I’m looking for something similar to this: Abzu schooling fish example

Objectives: Point following, avoidance of other flock members, avoidance of other objects.

AI seems promising with its senses, but I don’t know enough about it. Also, I don’t know how to allow the AI to path in 3 dimensional space.
Homing Projectiles work, but is it possible to allow them to collide with one another?

I think maybe the flock in abzu in kind of mesh particle effect with parameters to control the direction of each fish. I am not capable to make one myself, so just a guess, hoping pro answers to come:)

I found the twitter of Abzu, they said something about the flocking(I haven’t fully got it), the saying goes:“instanced meshes with shader morph targets, and a background simulation thread. we can get up to 100K at a time :)”

That sounds awesome! I’m thinking of using boids ( and this sounds like they will go together well.

I know what a morph target is, but what do you think a shader morph target is? That sounds interesting. I’m assuming that their “background simulation thread” is something like the boids program that is controlling each boid?

Oops, posted this on my other, more official account. (seems like people don’t reply to me when my name is NukeyDukey69)

The doc(Static Mesh Morph Targets | Unreal Engine Documentation) says Static Mesh Morph Targets could work through material, maybe this is how abzu make fish animation, my early thought is skeleton animation

I only know ism could make static walls, it would be great if it can make moving things. But actually how all this is done is still beyond my knowledge~~

But it is strange that as far as I know, all isms share only one material

Today I observed the flock of Abzu and found some features:

A. almost all kinds of fish contains 2 animations:

1.swim action(the swing of tails) that working all the time. and close mouse that flip Every few seconds(I forgot to check whether the interval is fixed)

The swim animation of each fish in 1 flock is not in the same pace(some swing left while some right, but there do have several are in the same pace). That’s my previous question:How can 1 morph mat handle this delay if the fish comes from 1 ism

B. The flock is not fixed

flock A could break into B & C, C may merge into D…the species is fixed, but 1 kind of flock could contain several kinds of fish

so the “background simulation thread” maybe something not only control boid, but also the flocks

The two features confused me, too. Have you found the answers to them?